> ## 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 Flash Listings

> Retrieves an artist's flash listings with pagination (public endpoint)



## OpenAPI

````yaml GET /flash/artist/{id}/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:
  /flash/artist/{id}/paginated:
    get:
      summary: Get Artist Flash Listings
      description: Retrieves an artist's flash listings with pagination (public endpoint)
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: ID of the artist
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 50
          description: Number of flash listings to return (max 50)
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for pagination
      responses:
        '200':
          description: Flash listings retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                  - flash
                  - hasMore
                  - total
                properties:
                  flash:
                    type: array
                    items:
                      $ref: '#/components/schemas/FlashListing'
                    description: Array of flash listings
                  hasMore:
                    type: boolean
                    description: Whether there are more results available
                  nextCursor:
                    type: string
                    description: Cursor for the next page of results
                  total:
                    type: number
                    description: Total number of flash listings in the current page
        '400':
          description: Bad request - invalid artist ID or limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    FlashListing:
      type: object
      required:
        - id
        - artistId
        - artistName
        - artistUsername
        - price
        - size
        - styles
        - isAvailable
        - isVisible
        - order
        - createdAt
        - updatedAt
        - source
        - sourceData
      properties:
        id:
          type: string
          description: Unique identifier for the flash listing
        artistId:
          type: string
          description: Reference to artist who owns this flash
        artistName:
          type: string
          description: Denormalized artist name for performance
        artistUsername:
          type: string
          description: Denormalized artist username for discovery feeds
        price:
          $ref: '#/components/schemas/FlashPrice'
          description: Flash price information
        size:
          $ref: '#/components/schemas/FlashSize'
          description: Flash size information
        sessionDuration:
          $ref: '#/components/schemas/SessionDuration'
          description: Optional session duration estimate
        styles:
          type: array
          items:
            type: string
          description: Array of tattoo styles
        isAvailable:
          type: boolean
          description: Whether this flash is currently bookable
        isVisible:
          type: boolean
          description: Whether this flash is visible in listings
        viewCount:
          type: number
          description: Number of times this flash has been viewed
        bookmarkCount:
          type: number
          description: Number of users who bookmarked this flash
        createdAt:
          type: number
          description: Timestamp when flash was created
        updatedAt:
          type: number
          description: Timestamp when flash was last updated
        order:
          type: number
          description: Display order in artist's gallery
        tags:
          type: array
          items:
            type: string
          description: Optional tags for discovery/filtering
        notes:
          type: string
          description: Optional notes added by the artist
      allOf:
        - oneOf:
            - $ref: '#/components/schemas/InstagramSourceData'
            - $ref: '#/components/schemas/UploadSourceData'
            - $ref: '#/components/schemas/UrlSourceData'
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    FlashPrice:
      oneOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - fixed
              description: Fixed price type
            amount:
              type: string
              description: Fixed price amount (string for input handling)
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - range
              description: Range price type
            minAmount:
              type: string
              description: Minimum price amount (string for input handling)
            maxAmount:
              type: string
              description: Maximum price amount (string for input handling)
      description: Price can be either a single fixed amount or a range
    FlashSize:
      type: object
      required:
        - unit
      properties:
        minSize:
          type: string
          description: Minimum size (string for input handling)
        maxSize:
          type: string
          description: Maximum size (string for input handling)
        unit:
          type: string
          enum:
            - in
            - cm
          description: Size unit (inches or centimeters)
      description: Size dimensions in inches/cm
    SessionDuration:
      type: object
      required:
        - blocks
      properties:
        blocks:
          type: number
          description: Number of 30-minute blocks (e.g., 1 = 30min, 2 = 1hr)
      description: Session duration in 30-minute increments
    InstagramSourceData:
      type: object
      required:
        - source
        - sourceData
      properties:
        source:
          type: string
          enum:
            - instagram
          description: Source type
        sourceData:
          type: object
          required:
            - instagramId
            - permalink
            - mediaType
            - url
          properties:
            instagramId:
              type: string
              description: Instagram media ID
            permalink:
              type: string
              description: Instagram permalink URL
            caption:
              type: string
              description: Instagram media caption
            mediaType:
              type: string
              enum:
                - IMAGE
                - VIDEO
                - CAROUSEL_ALBUM
              description: Instagram media type
            url:
              type: string
              description: Instagram CDN URL (compliant with Meta's platform policy)
            thumbnailUrl:
              type: string
              description: Optional thumbnail URL
            urlRefreshedAt:
              type: number
              description: Timestamp when Instagram URL was last refreshed
            storageRef:
              type: string
              description: Legacy Firebase Storage reference
            fileSize:
              type: number
              description: Legacy file size in bytes
    UploadSourceData:
      type: object
      required:
        - source
        - sourceData
      properties:
        source:
          type: string
          enum:
            - upload
          description: Source type
        sourceData:
          type: object
          required:
            - originalFileName
            - fileSize
            - storageRef
            - url
          properties:
            originalFileName:
              type: string
              description: Original uploaded file name
            fileSize:
              type: number
              description: File size in bytes
            storageRef:
              type: string
              description: Firebase Storage reference
            url:
              type: string
              description: Firebase Storage URL
            thumbnailUrl:
              type: string
              description: Optional thumbnail URL
    UrlSourceData:
      type: object
      required:
        - source
        - sourceData
      properties:
        source:
          type: string
          enum:
            - url
          description: Source type
        sourceData:
          type: object
          required:
            - originalUrl
            - url
          properties:
            originalUrl:
              type: string
              description: Original source URL
            url:
              type: string
              description: Processed/cached URL
            thumbnailUrl:
              type: string
              description: Optional thumbnail URL

````