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

# List Video Jobs

> Lists the authenticated account's jobs, newest first. Results contain summaries; use Get a Video Job for download links. Video reads remain available when creation is disabled, as long as video access remains configured.



## OpenAPI

````yaml /openapi/video-open-api.json get /video-jobs
openapi: 3.0.3
info:
  title: Spatius Video API
  version: 1.0.0
  description: >-
    Generate an MP4 from an existing Avatar and an audio URL. Submit a job, poll
    its status, and download the result. Video API access requires separate
    account enablement. See the [Video generation
    guide](/api-reference/video-generation) and
    [Authentication](/api-reference/authentication).
servers:
  - url: https://console.spatius.ai/v1/open
    description: Spatius Console API (global)
security:
  - AppId: []
    ApiKey: []
tags:
  - name: Videos
    description: Submit asynchronous video generation jobs.
  - name: Video Jobs
    description: Read video job history and get fresh MP4 download links.
paths:
  /video-jobs:
    get:
      tags:
        - Video Jobs
      summary: List Video Jobs
      description: >-
        Lists the authenticated account's jobs, newest first. Results contain
        summaries; use Get a Video Job for download links. Video reads remain
        available when creation is disabled, as long as video access remains
        configured.
      operationId: listVideoJobs
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageToken'
        - name: statuses
          in: query
          required: false
          style: form
          explode: true
          description: >-
            Optional status filter. Repeat the parameter for multiple states,
            for example statuses=queued&statuses=processing. Omit to include all
            states.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/VideoJobStatus'
      responses:
        '200':
          description: A page of video job summaries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVideoJobsResponse'
              example:
                jobs:
                  - id: 6f1e2b3c-9a1d-4e5f-8b0a-2c4d6e8f0a1b
                    status: succeeded
                    avatarId: d385dd22-9200-4806-94a0-dce464ca916d
                    name: Welcome video
                    progress:
                      stage: completed
                    createdAt: '2026-09-12T09:00:00Z'
                    updatedAt: '2026-09-12T09:01:00Z'
                    completedAt: '2026-09-12T09:01:00Z'
                    expiresAt: '2026-09-19T09:00:05Z'
                pagination:
                  nextPageToken: ''
                  totalCount: 1
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    PageSize:
      name: pagination.pageSize
      in: query
      required: false
      description: >-
        Maximum number of items to return. Defaults to 20; the maximum is 99. A
        value above 99 falls back to the default of 20 rather than being capped,
        so request at most 99.
      schema:
        type: integer
        format: int32
        default: 20
        maximum: 99
        minimum: 1
    PageToken:
      name: pagination.pageToken
      in: query
      required: false
      description: >-
        Opaque token from the previous page's `nextPageToken`. Omit for the
        first page. Pass back exactly what the previous response returned rather
        than constructing a value. A token is only valid for the
        `pagination.pageSize` it was issued with; keep that value stable while
        paging, or start again from the first page.
      schema:
        type: string
  schemas:
    VideoJobStatus:
      type: string
      enum:
        - queued
        - processing
        - succeeded
        - failed
        - expired
      description: >-
        New jobs start queued. Successful output becomes expired after its
        retention deadline. Failed jobs remain failed.
    ListVideoJobsResponse:
      type: object
      required:
        - pagination
      properties:
        jobs:
          type: array
          items:
            $ref: '#/components/schemas/VideoJob'
          description: Newest first. Summaries never include download URLs.
        pagination:
          $ref: '#/components/schemas/Pagination'
    VideoJob:
      type: object
      required:
        - id
        - status
        - avatarId
        - name
        - createdAt
        - updatedAt
      description: >-
        Account-owned job summary. Source URLs, storage keys, service
        credentials, and internal task identifiers are not returned.
      properties:
        id:
          type: string
          description: Console job ID.
          format: uuid
        status:
          $ref: '#/components/schemas/VideoJobStatus'
        avatarId:
          type: string
          description: Avatar used for this job.
          format: uuid
        name:
          type: string
          description: Job name.
        progress:
          $ref: '#/components/schemas/VideoJobProgress'
        error:
          $ref: '#/components/schemas/VideoJobError'
        createdAt:
          type: string
          description: Job acceptance time.
          format: date-time
        updatedAt:
          type: string
          description: Last saved job update.
          format: date-time
        completedAt:
          type: string
          description: Terminal-state timestamp, when available.
          format: date-time
        expiresAt:
          type: string
          description: >-
            Output retention deadline, when known. Currently seven days after
            render submission, rather than completion. Job history remains
            available after expiry.
          format: date-time
    Pagination:
      type: object
      properties:
        nextPageToken:
          type: string
          description: >-
            Pass as `pagination.pageToken` to fetch the next page. Empty when no
            more pages exist.
        totalCount:
          type: integer
          format: int32
          description: Total number of matching items.
    Error:
      type: object
      description: The single public error envelope returned by every Spatius API endpoint.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable machine-readable error code.
              enum:
                - unauthorized
                - forbidden
                - invalid_request
                - not_found
                - conflict
                - rate_limit_exceeded
                - service_unavailable
                - internal_error
            message:
              type: string
              description: Human-readable explanation specific to this occurrence.
            requestId:
              type: string
              description: >-
                Unique identifier for this request. Quote it when contacting
                support.
    VideoJobProgress:
      type: object
      properties:
        stage:
          type: string
          description: >-
            Current progress stage. This is not a percentage or a
            completion-time estimate.
          enum:
            - queued
            - downloading
            - uploading_assets
            - submitting
            - driving
            - rendering
            - encoding
            - uploading
            - completed
            - failed
            - expired
    VideoJobError:
      type: object
      required:
        - code
        - message
        - retryable
      description: A terminal job failure, separate from an HTTP request error.
      properties:
        code:
          type: string
          description: >-
            Stable failure code. See [Video job
            errors](/api-reference/video-generation#job-errors).
          minLength: 1
          maxLength: 128
        message:
          type: string
          description: Safe, human-readable explanation.
          minLength: 1
          maxLength: 1024
        retryable:
          type: boolean
          description: >-
            Whether a new job may succeed after addressing the cause. A terminal
            failure does not automatically start another render. Use a new
            requestId when creating the replacement job.
  responses:
    InvalidRequest:
      description: The request has invalid fields, settings, or pagination.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: invalid_request
              message: Invalid video request or presentation settings.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
    Unauthorized:
      description: Missing or mismatched App credentials, or an inactive owner account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Unauthorized.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
    Forbidden:
      description: >-
        Video access is absent, creation is disabled, or Avatar access is
        denied. Disabling creation alone preserves reads.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: forbidden
              message: Video API access is not configured.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
    RateLimited:
      description: >-
        An independent video request limit was exceeded. Back off before
        retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: rate_limit_exceeded
              message: Open API rate limit exceeded.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
    InternalError:
      description: >-
        Unexpected server failure. Use bounded backoff and retain the creation
        requestId when retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: internal_error
              message: An internal error occurred.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
    ServiceUnavailable:
      description: >-
        Temporary service or download-link availability failure. Retry with the
        same requestId and body for creation, or retry the detail read. A link
        refresh failure preserves saved success.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: service_unavailable
              message: Video generation is unavailable; retry later.
              requestId: b3f0c2d1-4a5b-4c6d-8e9f-0a1b2c3d4e5f
  securitySchemes:
    AppId:
      type: apiKey
      in: header
      name: X-App-ID
      description: Your Spatius App ID.
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: The API key bound to the App ID.

````