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

# Reference to Video

> Reference to video - Generate videos using refer_images and reference_audios

This is the **Grok Video API** reference to video endpoint. Use `refer_images` for reference images or `reference_audios` for voice characters, combined with `prompt` to generate videos.

<Callout type="warning">
  **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges.
</Callout>


## OpenAPI

````yaml openapi/en/grok-reference-to-video.json POST /grok/generations
openapi: 3.1.0
info:
  title: Grok Video - Reference to Video DOCS
  version: 1.0.0
  description: >-
    Grok Reference to Video API - Generate videos using refer_images and
    reference_audios as reference materials.
servers:
  - url: https://api.ttapi.io
security: []
paths:
  /grok/generations:
    post:
      description: >-
        Reference to video - Generate videos using refer_images and
        reference_audios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReferenceToVideoRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/400Response'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - CustomApiKey: []
components:
  schemas:
    ReferenceToVideoRequest:
      type: object
      description: Reference to video request parameters
      properties:
        model:
          type: string
          description: >-
            Model name.

            - `grok-imagine-video-1.5-fast`: duration 6-30s (6s and 10s are
            standard durations; 7s and 11s are not supported); supports multiple
            reference images (max 7); supports first/last frame control

            - `grok-imagine-video`: duration 1-15s, supports multiple reference
            images (single image up to 15s, multiple images max 10s), 720P only

            - `grok-imagine-video-1.5`: duration 1-15s, only single reference
            image and it is required
          enum:
            - grok-imagine-video-1.5-fast
            - grok-imagine-video
            - grok-imagine-video-1.5
          default: grok-imagine-video-1.5-fast
          example: grok-imagine-video-1.5-fast
        prompt:
          type: string
          description: >-
            Prompt. Maximum length is 4096 characters for `grok-imagine-video`
            and `grok-imagine-video-1.5`; `grok-imagine-video-1.5-fast` supports
            longer prompts.
        aspect_ratio:
          type: string
          default: '16:9'
          enum:
            - '2:3'
            - '3:2'
            - '1:1'
            - '9:16'
            - '16:9'
          description: Video aspect ratio
        video_length:
          type: string
          default: '10'
          description: >-
            Video duration in seconds. `grok-imagine-video-1.5-fast` range: 6 to
            30 (6s and 10s are standard durations); `grok-imagine-video` range:
            1 to 15 (single image up to 15s, multiple images max 10s);
            `grok-imagine-video-1.5` range: 1 to 15.
        resolution_name:
          type: string
          default: 720p
          enum:
            - 480p
            - 720p
            - 1080p
          description: >-
            Output resolution. 480p and 720p are supported by all models; 1080p
            is only supported by `grok-imagine-video-1.5`.
        refer_images:
          type: array
          items:
            type: string
          description: >-
            Reference image URLs. `grok-imagine-video-1.5-fast` supports
            multiple images (max 7); `grok-imagine-video` supports multiple
            images (single image up to 15s, multiple images max 10s);
            `grok-imagine-video-1.5` only supports a single image and it is
            required.<br/>`['https://cdn.ttapi.io/other/2026-03-13/a86ca2c7-6333-4840-b337-395a5d02a182.png','https://cdn.ttapi.io/other/2026-03-13/64a858ed-6095-45ce-92d5-b515c9864703.png']`
        reference_audios:
          type: array
          maxItems: 3
          items:
            type: object
            properties:
              voice_id:
                type: string
                description: >-
                  Voice ID for specifying the narration/dubbing voice of the
                  video. See below for available options.<details><summary>View
                  all available options</summary><ul><li><code>carina</code>:
                  Soft, empathetic, and soothing</li><li><code>zagan</code>:
                  Powerful, dramatic, and
                  unmistakable</li><li><code>helix</code>: Bold, dynamic, and
                  adrenaline-fueled</li><li><code>orion</code>: Rich, cinematic,
                  and resonant</li><li><code>luna</code>: Gentle, patient, and
                  deeply nurturing</li><li><code>iris</code>: Friendly, upbeat,
                  and naturally charming</li><li><code>altair</code>: Elegant,
                  refined, and effortlessly premium</li><li><code>zenith</code>:
                  Sharp, focused, and driven</li><li><code>perseus</code>:
                  Strong, confident, and
                  trustworthy</li><li><code>helios</code>: Upbeat, energetic,
                  and endlessly versatile</li><li><code>lux</code>: Grounded,
                  calm, and quietly wise</li><li><code>kepler</code>: Inventive,
                  forward-thinking, and charismatic</li><li><code>rigel</code>:
                  Precise, professional, and calmly
                  confident</li><li><code>cosmo</code>: Bright, curious, and
                  easy to follow</li><li><code>celeste</code>: Compassionate,
                  confident, and reassuring</li><li><code>ursa</code>: Friendly,
                  warm, and steadfast</li><li><code>sirius</code>: Quick-witted,
                  clever, and playful</li><li><code>lumen</code>: Warm,
                  articulate, and engaging</li><li><code>castor</code>:
                  Charismatic, down-to-earth, and
                  easygoing</li><li><code>naksh</code>: Warm, thoughtful, and
                  wise</li><li><code>atlas</code>: Confident, commanding, and
                  reassuring</li><li><code>ara</code>: Warm and
                  friendly</li><li><code>eve</code>: Energetic and
                  upbeat</li><li><code>leo</code>: Authoritative and
                  strong</li><li><code>rex</code>: Confident and
                  clear</li><li><code>sal</code>: Smooth and
                  balanced</li></ul></details>
                enum:
                  - carina
                  - zagan
                  - helix
                  - orion
                  - luna
                  - iris
                  - altair
                  - zenith
                  - perseus
                  - helios
                  - lux
                  - kepler
                  - rigel
                  - cosmo
                  - celeste
                  - ursa
                  - sirius
                  - lumen
                  - castor
                  - naksh
                  - atlas
                  - ara
                  - eve
                  - leo
                  - rex
                  - sal
          description: >-
            Array of voice characters, up to 3 entries. Example: `[{"voice_id":
            "sirius"}]`
          example:
            - voice_id: sirius
            - voice_id: carina
            - voice_id: leo
        hook_url:
          type: string
          description: >-
            Callback URL address. When the task completes or fails,
            notifications will be sent to this address. The notification data
            structure is consistent with the <a href="fetch"
            target="_self">fetch structure</a>. If not set, you need to call the
            <a href="fetch" target="_self">fetch endpoint</a> to query the
            result
          example: https://example.com/callback
      required:
        - prompt
  responses:
    SuccessResponse:
      description: Request successful
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: SUCCESS
              message:
                type: string
                example: success
              data:
                type: object
                example:
                  jobId: jobId
            required:
              - status
              - message
              - data
    400Response:
      description: Parameter error
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: FAILED
              message:
                type: string
                example: '"prompt" cannot be empty.'
              data:
                type: object
            required:
              - status
              - message
    401Response:
      description: Authorization failed
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: FAILED
              message:
                type: string
                example: Wrong TT-API-KEY or email is not activated.
            required:
              - status
              - message
  securitySchemes:
    CustomApiKey:
      type: apiKey
      in: header
      name: TT-API-KEY
      description: >-
        You can obtain your API key from the <a
        href='https://dashboard.ttapi.io' target='_blank'>TTAPI Dashboard</a>.

````