> ## 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 videos

> List videos across your brands, newest first.

<Note>This feature is in beta. During beta, endpoint schemas and behavior may change or be removed.</Note>


## OpenAPI

````yaml https://www.trybloom.ai/api/v1/spec.json get /videos
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: Uploads
    description: >-
      Stage private local files for brand sources, the Library, and other
      supported operations.
  - name: Account
    description: >-
      Inspect the authenticated account — profile, credit balance, and
      accessible workspaces.
  - name: Brands
    description: Manage brands and brand identity.
  - name: Library
    description: Add, list, and remove a brand's images, video, and audio.
  - name: Images
    description: Retrieve and manage images.
  - name: Videos
    description: Retrieve and manage video files.
  - name: Audio
    description: Retrieve and manage audio files.
  - name: Briefs
    description: Get brand guidance and selected assets for a specific task.
  - name: Models
    description: Find available models and check their inputs.
  - name: Generations
    description: Create and retrieve model generations.
  - name: Reviews
    description: >-
      Check an asset against a brand's color, typography, logo, and copy
      guidance.
paths:
  /videos:
    get:
      tags:
        - Videos
      summary: List videos
      description: List videos across your brands, newest first.
      operationId: videos.list
      parameters:
        - name: brandSessionId
          in: query
          schema:
            type: string
            format: uuid
            description: Only this brand.
          allowEmptyValue: true
          allowReserved: true
        - name: workspaceId
          in: query
          schema:
            type: string
            description: Only this workspace.
          allowEmptyValue: true
          allowReserved: true
        - name: source
          in: query
          schema:
            enum:
              - uploaded
              - scraped
              - generated
            type: string
            description: Only files from this source.
          allowEmptyValue: true
          allowReserved: true
        - name: inLibrary
          in: query
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
            description: Only files in (true) or not in (false) the Library.
          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
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Media ID.
                            type:
                              type: string
                              description: >-
                                Media family: image, video, or audio. More
                                values may be added.
                            source:
                              type: string
                              description: >-
                                How the file entered Bloom: uploaded, scraped
                                (collected from a brand source), or generated.
                                More values may be added.
                            brandSessionId:
                              type: string
                              format: uuid
                              description: Brand that owns the file.
                            workspaceId:
                              anyOf:
                                - type: string
                                - type: 'null'
                              description: >-
                                Workspace that owns the brand. Null for a
                                personal workspace.
                            mimeType:
                              type: string
                              description: The file's MIME type.
                            url:
                              type: string
                              format: uri
                              description: >-
                                Stable link to the file. Stops working when the
                                file is deleted.
                            fileSize:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                              description: Size in bytes.
                            durationMs:
                              anyOf:
                                - type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                - type: 'null'
                              description: Duration in milliseconds, when known.
                            width:
                              anyOf:
                                - type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                - type: 'null'
                              description: Width in pixels, when known.
                            height:
                              anyOf:
                                - type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                - type: 'null'
                              description: Height in pixels, when known.
                            description:
                              anyOf:
                                - type: string
                                - type: 'null'
                              description: >-
                                Description of the file's contents, when Bloom
                                has one.
                            inLibrary:
                              type: boolean
                              description: Whether the file is in its brand's Library.
                            addedToLibraryAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                - type: 'null'
                              description: When the file was added to the Library, or null.
                            generationId:
                              anyOf:
                                - type: string
                                  format: uuid
                                - type: 'null'
                              description: Generation that produced the file, or null.
                            createdAt:
                              type: string
                              format: date-time
                              description: When the file was stored.
                          required:
                            - id
                            - type
                            - source
                            - brandSessionId
                            - workspaceId
                            - mimeType
                            - url
                            - fileSize
                            - durationMs
                            - width
                            - height
                            - description
                            - inLibrary
                            - addedToLibraryAt
                            - generationId
                            - createdAt
                      nextCursor:
                        anyOf:
                          - type: string
                          - type: 'null'
                      hasMore:
                        type: boolean
                    required:
                      - items
                      - nextCursor
                      - hasMore
                required:
                  - data
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideosList401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideosList403ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideosList429ErrorResponse'
          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:
    VideosList401ErrorResponse:
      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
    VideosList403ErrorResponse:
      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:
                      const: BETA_ACCESS_REQUIRED
                    status:
                      const: 403
                    message:
                      type: string
                      default: >-
                        Selected-model generation is not enabled for this
                        account.
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    VideosList429ErrorResponse:
      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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.