> ## Documentation Index
> Fetch the complete documentation index at: https://docs.traza.com.au/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Artist Gallery Photos (Paginated)

> Retrieves an artist's gallery photos with pagination (public endpoint)



## OpenAPI

````yaml GET /gallery/artist/{artistId}/paginated
openapi: 3.1.0
info:
  title: Tatu API
  description: API documentation for Tatu's booking and artist management system
  version: 1.0.0
servers:
  - url: http://localhost:3000/api
    description: Development server
security: []
paths:
  /gallery/artist/{artistId}/paginated:
    get:
      summary: Get Artist Gallery Photos (Paginated)
      description: Retrieves an artist's gallery photos with pagination (public endpoint)
      parameters:
        - name: artistId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the artist
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
          description: Number of photos per page
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Pagination cursor
      responses:
        '200':
          description: Gallery photos retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGalleryResponse'
components:
  schemas:
    PaginatedGalleryResponse:
      type: object
      required:
        - photos
        - hasMore
        - total
      properties:
        photos:
          type: array
          items:
            $ref: '#/components/schemas/GalleryPhoto'
          description: Array of gallery photos
        hasMore:
          type: boolean
          description: Whether there are more photos available
        nextCursor:
          type: string
          description: Cursor for fetching the next page
        total:
          type: number
          description: Total number of photos in the current page
    GalleryPhoto:
      type: object
      required:
        - id
        - artistId
        - artistName
        - url
        - source
        - order
        - uploadedAt
        - isVisible
      properties:
        id:
          type: string
          description: Unique identifier for the photo
        artistId:
          type: string
          description: Reference to artist who owns this photo
        artistName:
          type: string
          description: Denormalized artist name for performance
        artistUsername:
          type: string
          description: Denormalized artist username for discovery feeds
        url:
          type: string
          description: Primary image URL (Instagram CDN, Firebase Storage, etc.)
        thumbnailUrl:
          type: string
          description: Optional thumbnail URL for performance
        source:
          type: string
          enum:
            - instagram
            - upload
            - url
          description: Source of the photo
        sourceData:
          $ref: '#/components/schemas/GalleryPhotoSourceData'
          description: Additional data specific to the photo source
        order:
          type: number
          description: Display order (higher numbers = newer photos = displayed first)
        uploadedAt:
          type: number
          description: Timestamp when photo was added to gallery
        isVisible:
          type: boolean
          description: Whether the photo is visible in the gallery
        tags:
          type: array
          items:
            type: string
          description: Optional tags for discovery/filtering
    GalleryPhotoSourceData:
      type: object
      properties:
        instagramId:
          type: string
          description: Instagram media ID (when source is 'instagram')
        permalink:
          type: string
          description: Instagram permalink URL (when source is 'instagram')
        caption:
          type: string
          description: Instagram media caption (when source is 'instagram')
        mediaType:
          type: string
          enum:
            - IMAGE
            - VIDEO
            - CAROUSEL_ALBUM
          description: Instagram media type (when source is 'instagram')
        urlRefreshedAt:
          type: number
          description: >-
            Timestamp when Instagram URL was last refreshed (when source is
            'instagram')
        originalFileName:
          type: string
          description: Original file name (when source is 'upload')
        fileSize:
          type: number
          description: Size in bytes (for instagram and upload sources)
        storageRef:
          type: string
          description: Firebase Storage reference (for instagram and upload sources)
        originalUrl:
          type: string
          description: Original URL (when source is 'url')

````