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

# Text to Video

> Text to video - Generate videos from prompt only

This is the **Grok Video API** text to video endpoint. Generate videos from `prompt` only, without any media files.

<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-text-to-video.json POST /grok/generations
openapi: 3.1.0
info:
  title: Grok Video - Text to Video DOCS
  version: 1.0.0
  description: >-
    Grok Text to Video API - Generate videos from prompt only, without any media
    files.
servers:
  - url: https://api.ttapi.io
security: []
paths:
  /grok/generations:
    post:
      description: Text to video - Generate videos from prompt only
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextToVideoRequest'
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/400Response'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - CustomApiKey: []
components:
  schemas:
    TextToVideoRequest:
      type: object
      description: Text 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`.
        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>.

````