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

# List images

> List images for one brand or across all brands, with cursor-based pagination and filters for status and action type. Returns short redirect URLs such as `/img/{id}` for completed images by default. When you provide `ids`, pass `wait=true` to hold the connection until every referenced image reaches a terminal status. Use this to collect results from a batch of asynchronous generations.



## OpenAPI

````yaml https://www.trybloom.ai/api/v1/spec.json get /images
openapi: 3.1.1
info:
  title: Bloom API
  version: 1.0.0
servers:
  - url: https://www.trybloom.ai/api/v1
security:
  - apiKey: []
  - bearer: []
tags:
  - name: Account
    description: >-
      Inspect the authenticated account — profile, credit balance, and
      accessible workspaces.
  - name: Brands
    description: Manage brands and brand identity.
  - name: Images
    description: Generate, edit, and retrieve images.
paths:
  /images:
    get:
      tags:
        - Images
      summary: List images
      description: >-
        List images for one brand or across all brands, with cursor-based
        pagination and filters for status and action type. Returns short
        redirect URLs such as `/img/{id}` for completed images by default. When
        you provide `ids`, pass `wait=true` to hold the connection until every
        referenced image reaches a terminal status. Use this to collect results
        from a batch of asynchronous generations.
      operationId: images.list
      parameters:
        - name: ids
          in: query
          schema:
            type: string
            description: >-
              Comma-separated image IDs to filter by (max 50). Returns only the
              specified images.
          allowEmptyValue: true
          allowReserved: true
        - name: workspaceId
          in: query
          schema:
            type: string
            minLength: 1
            description: >-
              Team workspace ID. Scopes results to that workspace. Omit to list
              across every workspace the caller can see.
          allowEmptyValue: true
          allowReserved: true
        - name: brandSessionId
          in: query
          schema:
            type: string
            format: uuid
            description: >-
              Brand ID (from GET /brands). Omit to list images across all
              brands.
          allowEmptyValue: true
          allowReserved: true
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
            description: Results per page (1–100, default 50)
          allowEmptyValue: true
          allowReserved: true
        - name: cursor
          in: query
          schema:
            type: string
            description: Pagination cursor from a previous response's nextCursor
          allowEmptyValue: true
          allowReserved: true
        - name: source
          in: query
          schema:
            enum:
              - generated
              - uploaded
              - scraped
            type: string
            description: >-
              Filter by image source. "generated" = AI-created, "uploaded" =
              user uploads, "scraped" = website images from brand onboarding
          allowEmptyValue: true
          allowReserved: true
        - name: status
          in: query
          schema:
            enum:
              - pending
              - generating
              - completed
              - failed
            type: string
            description: >-
              Filter by generation status (only applies to generated images —
              uploaded/scraped images are excluded when this filter is active)
          allowEmptyValue: true
          allowReserved: true
        - name: actionType
          in: query
          schema:
            enum:
              - generation
              - edit
              - resize
              - variant
              - recreate
              - remove-background
              - vectorize
            type: string
            description: >-
              Filter by action type (only applies to generated images —
              uploaded/scraped images are excluded when this filter is active)
          allowEmptyValue: true
          allowReserved: true
        - name: includeUrls
          in: query
          schema:
            anyOf:
              - type: boolean
              - enum:
                  - '0'
                  - '1'
                  - 'true'
                  - 'false'
                type: string
            description: Include signed download URLs for completed images
          allowEmptyValue: true
          allowReserved: true
        - name: wait
          in: query
          schema:
            anyOf:
              - type: boolean
              - enum:
                  - '0'
                  - '1'
                  - 'true'
                  - 'false'
                type: string
            default: false
            description: >-
              Hold the connection until every image referenced by `ids` reaches
              a terminal status. No-op when `ids` is omitted.
          allowEmptyValue: true
          allowReserved: true
        - name: timeout
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 295
            default: 120
            description: Max seconds to wait (default 120, max 295)
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      images:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                            source:
                              enum:
                                - generated
                                - uploaded
                                - scraped
                              type: string
                            brandSessionId:
                              type: string
                              format: uuid
                            prompt:
                              anyOf:
                                - type: string
                                - type: 'null'
                            description:
                              anyOf:
                                - type: string
                                - type: 'null'
                            aspectRatio:
                              anyOf:
                                - enum:
                                    - '1:1'
                                    - '2:3'
                                    - '3:2'
                                    - '3:4'
                                    - '4:3'
                                    - '4:5'
                                    - '5:4'
                                    - '9:16'
                                    - '16:9'
                                    - '21:9'
                                  type: string
                                - type: 'null'
                            width:
                              anyOf:
                                - type: number
                                - type: 'null'
                            height:
                              anyOf:
                                - type: number
                                - type: 'null'
                            actionType:
                              anyOf:
                                - enum:
                                    - generation
                                    - edit
                                    - resize
                                    - variant
                                    - recreate
                                    - remove-background
                                    - vectorize
                                  type: string
                                - type: 'null'
                            variantGroupId:
                              anyOf:
                                - type: string
                                  format: uuid
                                - type: 'null'
                            status:
                              anyOf:
                                - enum:
                                    - pending
                                    - generating
                                    - completed
                                    - failed
                                  type: string
                                - type: 'null'
                            failureReason:
                              anyOf:
                                - enum:
                                    - content_safety
                                    - rate_limited
                                  type: string
                                - type: 'null'
                            imageUrl:
                              anyOf:
                                - type: string
                                - type: 'null'
                            workspaceId:
                              anyOf:
                                - type: string
                                - type: 'null'
                            workspaceName:
                              type: string
                            createdAt:
                              type: string
                              format: date-time
                              x-native-type: date
                          required:
                            - id
                            - source
                            - prompt
                            - description
                            - aspectRatio
                            - width
                            - height
                            - actionType
                            - variantGroupId
                            - status
                            - failureReason
                            - workspaceId
                            - workspaceName
                            - createdAt
                      nextCursor:
                        anyOf:
                          - type: string
                          - type: 'null'
                      hasMore:
                        type: boolean
                    required:
                      - images
                      - nextCursor
                      - hasMore
                required:
                  - data
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesList401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesList403ErrorResponse'
        '422':
          description: '422'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesList422ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImagesList429ErrorResponse'
          headers:
            Retry-After:
              description: >-
                Seconds until the API-key request limit resets. Present only
                when the request-rate limiter can calculate the delay.
              schema:
                type: integer
                minimum: 0
components:
  schemas:
    ImagesList401ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: UNAUTHORIZED
                    status:
                      const: 401
                    message:
                      type: string
                      default: Invalid or missing API credentials
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ImagesList403ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: ACCOUNT_BANNED
                    status:
                      const: 403
                    message:
                      type: string
                      default: This account has been suspended.
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      const: FORBIDDEN
                    status:
                      const: 403
                    message:
                      type: string
                      default: Plan upgrade required
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ImagesList422ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: BRAND_NOT_FOUND
                    status:
                      const: 422
                    message:
                      type: string
                      default: Brand session not found
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ImagesList429ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: TOO_MANY_REQUESTS
                    status:
                      const: 429
                    message:
                      type: string
                      default: Rate limit exceeded
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ApiError:
      type: object
      properties:
        code:
          type: string
        status:
          type: integer
        message:
          type: string
        data: {}
      required:
        - code
        - status
        - message
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Bloom API key, for example `x-api-key: bloom_sk_...`.'
    bearer:
      type: http
      scheme: bearer
      description: Bloom API key (`Bearer bloom_sk_...`) or Bloom OAuth access token.

````