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

> ## Agent Instructions
> Five API is a video generation REST API. Base URL: https://api.fiveapi.ai. Authenticate with the header Authorization: Bearer <API key>; read the key from the FIVEAPI_API_KEY environment variable and never hard-code it.
> Every generation is an asynchronous task: POST /v1/{brand}/{version}/{task} returns a queued task, then poll GET /v1/tasks/{task_id} or receive a signed webhook, and download output.video.url before expires_at (7 days).
> The OpenAPI spec is at https://docs.fiveapi.ai/api-reference/openapi.yaml. An installable agent skill: npx skills add https://docs.fiveapi.ai

# Get a model

> Returns one model by id, for example `GET /v1/models/wan/v3.0-spark/image-to-video`. An unknown id answers
`404 model_not_found`; a model that exists but is not available answers `400 unsupported_model`.

**Scope:** any valid key.




## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/models/{brand}/{version}/{task}
openapi: 3.1.0
info:
  title: Five API
  version: 1.0.0
  summary: Generate AI videos from text, images, reference assets and clips.
  description: >
    The Five API turns a text prompt, an image, a set of reference assets or a
    video clip into a short video.


    Every generation is an asynchronous **task**: `POST
    /v1/{brand}/{version}/{task}` returns a `queued` task at

    once, and the result arrives by webhook or by polling `GET
    /v1/tasks/{task_id}`.


    * Base URL: `https://api.fiveapi.ai`

    * Authentication: `Authorization: Bearer <API key>` (or the `x-api-key`
    header)

    * JSON in and out, `snake_case` fields, UTF-8, ISO 8601 UTC timestamps

    * Every response carries `X-Request-Id`; error bodies repeat it as
    `error.request_id`
  contact:
    name: Five API support
    email: support@fiveapi.ai
    url: https://docs.fiveapi.ai
servers:
  - url: https://api.fiveapi.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Video Fast 1.0
    description: Fast, low-cost generation at 480p or 768p.
  - name: Wan 3.0 Spark
    description: Native 30-second video with richer detail and synchronized audio.
  - name: Wan 3.0 Prime Spark
    description: Wan 3.0 quality at full 30 seconds, noticeably faster.
  - name: Video Fast Extend 1.1
    description: Continue an existing clip with matched audio.
  - name: Tasks
    description: Read, list and cancel generation tasks.
  - name: Models
    description: The model catalogue and each model's input schema.
  - name: Account
    description: Balance, plan limits and daily usage.
paths:
  /v1/models/{brand}/{version}/{task}:
    get:
      tags:
        - Models
      summary: Get a model
      description: >
        Returns one model by id, for example `GET
        /v1/models/wan/v3.0-spark/image-to-video`. An unknown id answers

        `404 model_not_found`; a model that exists but is not available answers
        `400 unsupported_model`.


        **Scope:** any valid key.
      operationId: getModel
      parameters:
        - name: brand
          in: path
          required: true
          description: First segment of the model id.
          schema:
            type: string
            enum:
              - video-fast
              - wan
            examples:
              - wan
        - name: version
          in: path
          required: true
          description: Second segment of the model id.
          schema:
            type: string
            enum:
              - v1.0
              - v1.1
              - v3.0-spark
              - v3.0-prime-spark
            examples:
              - v3.0-spark
        - name: task
          in: path
          required: true
          description: Third segment of the model id, the task type.
          schema:
            type: string
            enum:
              - text-to-video
              - image-to-video
              - reference-to-video
              - video-extend
            examples:
              - image-to-video
      responses:
        '200':
          description: The model.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
              examples:
                wan-spark-image-to-video:
                  $ref: '#/components/examples/ModelWanSparkImageToVideo'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  headers:
    X-Request-Id:
      description: Id of this request (`req_...`). Quote it when you contact support.
      schema:
        type: string
        examples:
          - req_01M5KPY92Y148QP01G532MM3BH
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
        examples:
          - 10
    X-RateLimit-Limit:
      description: >-
        Requests per minute allowed for your account (or the key's lower
        ceiling).
      schema:
        type: integer
        examples:
          - 300
    X-RateLimit-Remaining:
      description: Requests left in the current minute.
      schema:
        type: integer
        examples:
          - 287
    X-RateLimit-Reset:
      description: Unix time in seconds when the minute window resets.
      schema:
        type: integer
        format: int64
        examples:
          - 1792736640
  schemas:
    Model:
      type: object
      required:
        - id
        - object
        - name
        - task
        - status
        - input_schema
      properties:
        id:
          type: string
          description: '`{brand}/{version}/{task}`, also the path of its create endpoint.'
          examples:
            - wan/v3.0-spark/image-to-video
        object:
          type: string
          const: model
        name:
          type: string
          examples:
            - Wan 3.0 Spark — image to video
        task:
          type: string
          enum:
            - text-to-video
            - image-to-video
            - reference-to-video
            - video-extend
        status:
          type: string
          enum:
            - enabled
            - disabled
        input_schema:
          type: object
          additionalProperties: true
          description: >-
            JSON Schema of the request body. `x-max-input-bytes` gives the
            largest accepted input file.
        pricing:
          type:
            - object
            - 'null'
          additionalProperties: true
          description: >-
            Reserved for a public price view. Omitted today; prices are listed
            in the [developer console](https://fiveapi.ai), and every task shows
            its price as `credits.estimated`.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - request_id
          properties:
            type:
              type: string
              enum:
                - invalid_request_error
                - authentication_error
                - billing_error
                - permission_error
                - not_found_error
                - conflict_error
                - rate_limit_error
                - api_error
              description: The error category.
            code:
              type: string
              description: >-
                Stable machine-readable code. Branch on this, never on
                `message`.
              examples:
                - insufficient_credits
            message:
              type: string
              description: Human-readable detail. It may change.
            param:
              type: string
              description: The request field at fault, when there is one.
            request_id:
              type: string
              description: Same as the `X-Request-Id` header.
            details:
              type: object
              additionalProperties: true
              description: >-
                Extra members for some codes, for example `required` and
                `available` on `insufficient_credits`.
  examples:
    ModelWanSparkImageToVideo:
      summary: wan/v3.0-spark/image-to-video
      value:
        id: wan/v3.0-spark/image-to-video
        object: model
        name: Wan 3.0 Spark — image to video
        task: image-to-video
        status: enabled
        input_schema:
          type: object
          required:
            - image_url
            - duration
            - resolution
          properties:
            image_url:
              type: string
              format: uri
              description: >-
                https URL of a JPG / PNG / WebP image, 360-2000 px per side, <=
                20 MB
            prompt:
              type: string
              maxLength: 2000
            negative_prompt:
              type: string
              maxLength: 2000
            duration:
              type: integer
              minimum: 2
              maximum: 30
            resolution:
              type: string
              enum:
                - 480p
                - 720p
                - 1080p
            aspect_ratio:
              type: string
              enum:
                - adaptive
                - '9:16'
                - '16:9'
                - '1:1'
                - '3:4'
                - '4:3'
              default: adaptive
            generate_audio:
              type: boolean
              default: false
            prompt_expansion:
              type: string
              enum:
                - none
                - basic
                - advanced
              default: advanced
            seed:
              type: integer
            webhook_url:
              type: string
              format: uri
            metadata:
              type: object
          x-max-input-bytes: 20971520
  responses:
    BadRequest:
      description: >
        The request is malformed or breaks the model's rules: `invalid_json`,
        `missing_parameter`,

        `invalid_parameter`, `unsupported_model`, `url_not_allowed` or
        `idempotency_key_reused`. Nothing was

        charged.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missing_parameter:
              summary: A required field is missing
              value:
                error:
                  type: invalid_request_error
                  code: missing_parameter
                  message: 'missing required parameter: duration'
                  param: duration
                  request_id: req_01M5KN36M1JPANPMDW0HEWMMB0
            invalid_parameter:
              summary: A resolution and duration the model does not offer
              value:
                error:
                  type: invalid_request_error
                  code: invalid_parameter
                  message: duration 20 s at 768p is not available on this model
                  param: duration
                  request_id: req_01M5KN36P1JPANPMDW0HEWMM07
            url_not_allowed:
              summary: The input URL breaks the URL policy
              value:
                error:
                  type: invalid_request_error
                  code: url_not_allowed
                  message: image_url must use https
                  param: image_url
                  request_id: req_01M5KPQ1HMDVX7324R9FQFH87S
            idempotency_key_reused:
              summary: Same Idempotency-Key, different body
              value:
                error:
                  type: invalid_request_error
                  code: idempotency_key_reused
                  message: >-
                    this Idempotency-Key was already used with a different
                    request body
                  param: Idempotency-Key
                  request_id: req_01M5KN36RZ8C1Q2T3V4W5X6Y7Z
    Unauthorized:
      description: >-
        The API key is missing, unknown, revoked or expired (`invalid_api_key`,
        `api_key_revoked`, `api_key_expired`).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalid_api_key:
              summary: No key, or an unknown key
              value:
                error:
                  type: authentication_error
                  code: invalid_api_key
                  message: >-
                    missing API key: send Authorization: Bearer sk_live_… (or
                    x-api-key)
                  request_id: req_01M5KN14MXD6SJ01ZQ2FPS6Y8X
            api_key_revoked:
              summary: The key was revoked in the console
              value:
                error:
                  type: authentication_error
                  code: api_key_revoked
                  message: this API key has been revoked
                  request_id: req_01M5KN14PY5YH5QPA2QS7Y07Y4
    NotFound:
      description: >-
        Unknown model or task (`model_not_found`, `task_not_found`). A task of
        another account is also a `404`.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            task_not_found:
              summary: Unknown task
              value:
                error:
                  type: not_found_error
                  code: task_not_found
                  message: 'no such task: task_01ZZZZZZZZZZZZZZZZZZZZZZZZ'
                  request_id: req_01M5KN36WF28NP71BQ6AJ47Q8Y
            model_not_found:
              summary: Unknown model
              value:
                error:
                  type: not_found_error
                  code: model_not_found
                  message: 'no such model: nobrand/v9/text-to-video'
                  param: model
                  request_id: req_01M5KN36QQXYGKNTNVM7WGQPD0
    TooManyRequests:
      description: >
        A limit of your plan was reached: the request rate
        (`rate_limit_exceeded`), the number of queued and

        processing tasks (`concurrency_limit_exceeded`) or the daily credit cap
        (`daily_cap_exceeded`). Wait

        `Retry-After` seconds before retrying.
      headers:
        Retry-After:
          $ref: '#/components/headers/Retry-After'
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            rate_limit_exceeded:
              summary: Too many requests
              value:
                error:
                  type: rate_limit_error
                  code: rate_limit_exceeded
                  message: rate limit exceeded for this account (10 rps, 300 rpm)
                  request_id: req_01M5KN37C3D4E5F6G7H8J9K0L1
            concurrency_limit_exceeded:
              summary: Too many tasks in flight
              value:
                error:
                  type: rate_limit_error
                  code: concurrency_limit_exceeded
                  message: >-
                    the account already has 20 tasks queued or processing (plan
                    limit 20)
                  request_id: req_01M5KN37D4E5F6G7H8J9K0L1M2
            daily_cap_exceeded:
              summary: Daily credit cap reached
              value:
                error:
                  type: rate_limit_error
                  code: daily_cap_exceeded
                  message: this account's daily credit cap (5000) would be exceeded
                  request_id: req_01M5KN37E5F6G7H8J9K0L1M2N3
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Your API key from the [developer console](https://fiveapi.ai), sent as
        `Authorization: Bearer sk_live_...`.

        The `x-api-key: sk_live_...` header is accepted as an alternative.

````

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