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

# List Videos

> List videos for the authenticated API key with optional pagination.

- Filters by the calling user's ID (and org if present)
- Ordered by creation time ascending or descending
- Supports cursor pagination using the `after` video ID



## OpenAPI

````yaml /help/docs/fr/api/openapi.json get /v1/videos
openapi: 3.1.0
info:
  title: Mirage Video API
  description: API for AI-powered video generation
  version: 0.0.1
  x-generated-by: export_openapi.py
  x-generated-note: >-
    Auto-generated from FastAPI routes and Pydantic models. Do not edit manually
    - run 'make export-openapi' to regenerate.
servers:
  - url: https://api.mirage.app
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /v1/videos:
    get:
      tags:
        - Videos
      summary: List Videos
      description: |-
        List videos for the authenticated API key with optional pagination.

        - Filters by the calling user's ID (and org if present)
        - Ordered by creation time ascending or descending
        - Supports cursor pagination using the `after` video ID
      operationId: list_videos_v1_videos_get
      parameters:
        - name: after
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Return items strictly after this video ID
            title: After
          description: Return items strictly after this video ID
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Max number of items to return
            default: 20
            title: Limit
          description: Max number of items to return
        - name: order
          in: query
          required: false
          schema:
            enum:
              - asc
              - desc
            type: string
            description: Sort order by creation time
            default: desc
            title: Order
          description: Sort order by creation time
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MAVideo'
                title: Response List Videos V1 Videos Get
components:
  schemas:
    MAVideo:
      properties:
        id:
          type: string
          title: Id
          description: Video generation job ID
          examples:
            - video_abc123def456
        object:
          type: string
          const: video
          title: Object
          default: video
        status:
          type: string
          enum:
            - PROCESSING
            - COMPLETE
            - FAILED
            - CANCELLED
          title: Status
          description: Current state of the video
          examples:
            - COMPLETE
        created_at:
          type: integer
          title: Created At
          description: When the video was created (unix timestamp)
          examples:
            - 1730822400
        completed_at:
          anyOf:
            - type: integer
            - type: 'null'
          title: Completed At
          description: When processing completed (unix timestamp)
          examples:
            - 1730822520
        progress:
          anyOf:
            - type: integer
            - type: 'null'
          title: Progress
          description: Progress percentage (0-100)
          examples:
            - 100
        error:
          anyOf:
            - $ref: '#/components/schemas/MAVideoError'
            - type: 'null'
          description: Error details if status is FAILED
          examples:
            - null
        model:
          anyOf:
            - type: string
              const: mirage-video-1-latest
            - type: 'null'
          title: Model
          description: Model used for generation (only for source='generation')
          examples:
            - mirage-video-1-latest
        source_video_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Video Id
          description: The input video that was captioned (only for source='caption')
          examples:
            - video_abc123def456
        caption_template_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Caption Template Id
          description: Caption style template used (only for source='caption')
          examples:
            - ctpl_123456789abcdefg
        video_id:
          type: string
          title: Video Id
          description: '[Deprecated] Use "id" instead.'
          deprecated: true
      type: object
      required:
        - id
        - status
        - created_at
        - video_id
      title: MAVideo
      description: >-
        Represents a video object.


        A video can be created via generation (image+audio) or captioning
        (adding captions to an existing video).
      examples:
        - completed_at: 1730822520
          created_at: 1730822400
          model: mirage-video-1-latest
          progress: 100
          status: COMPLETE
          video_id: video_abc123def456
        - caption_template_id: ctpl_123456789abcdefg
          created_at: 1730822600
          progress: 50
          source_video_id: video_abc123def456
          status: PROCESSING
          video_id: video_xyz789
      x-mint:
        content: >
          ## The Video Object


          Represents a video object.


          A video can be created via generation (image+audio) or captioning
          (adding captions to an existing video).


          ### Attributes


          **id** `string` *required*
            Video generation job ID

          **object** `string` *optional*


          **status** `"PROCESSING" | "COMPLETE" | "FAILED" | "CANCELLED"`
          *required*
            Current state of the video

          **created_at** `integer` *required*
            When the video was created (unix timestamp)

          **completed_at** `integer` *optional*
            When processing completed (unix timestamp)

          **progress** `integer` *optional*
            Progress percentage (0-100)

          **error** `MAVideoError` *optional*
            Error details if status is FAILED

          **model** `string` *optional*
            Model used for generation (only for source='generation')

          **source_video_id** `string` *optional*
            The input video that was captioned (only for source='caption')

          **caption_template_id** `string` *optional*
            Caption style template used (only for source='caption')

          **video_id** `string` *required*
            [Deprecated] Use "id" instead.
    MAVideoError:
      properties:
        code:
          type: string
          title: Code
          description: Error code
          examples:
            - rate_limit_exceeded
        message:
          type: string
          title: Message
          description: Error message
          examples:
            - Rate limit exceeded. Please try again later.
      type: object
      required:
        - code
        - message
      title: MAVideoError
      description: Error payload that explains why generation failed, if applicable
      x-mint:
        content: |
          ## The VideoError Object

          Error payload that explains why generation failed, if applicable

          ### Attributes

          **code** `string` *required*
            Error code

          **message** `string` *required*
            Error message
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication.

````