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

# Veo 3.1 Fast

> Google Veo 3.1 Fast. Three generation modes, **picked automatically from what you send** — you do not declare a mode:

| inputs | mode |
|---|---|
| prompt only | text-to-video |
| `image_url` (+ optional `image_end_url`) | first / last frame |
| `ref_imgs` (up to 3) | reference-to-video |

⚠️ **First/last frames and `ref_imgs` are mutually exclusive** and a request carrying both is rejected — upstream they share one field, so one would silently overwrite the other.

⚠️ **Reference mode is locked by Google**: duration is fixed at 8s and the aspect ratio at 16:9. Passing anything else is rejected rather than silently overridden (you would be billed for 4s and receive 8s).

**Pricing** — per second of generated video, in tokens (USD at $0.02/token):

| generate_audio | tokens/s | USD/s |
|---|---|---|
| false (default) | 5.4 | $0.108 |
| true | 8.06 | $0.1612 |

⚠️ **Audio costs ~49% more.** Note that Google's own default is `true`; this endpoint defaults it to `false` so an omitted value never lands you on the expensive tier by surprise. Example: a 6s video without audio costs 32.4 tokens.

⚠️ **720p and 1080p cost the same** — that is the published rate, not an omission here. 4K exists in Google's enum but has no published price, so it is not offered.

The prompt is translated to English automatically before generation.

Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the generated video.



## OpenAPI

````yaml api-reference/video-generations/openapi-veo3-1-fast.json POST /api/v1/videos/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Veo 3.1 Fast
  description: Video generation with Google Veo 3.1 Fast.
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/videos/generations:
    post:
      tags:
        - VideoGenerations
      summary: Veo 3.1 Fast
      description: >-
        Google Veo 3.1 Fast. Three generation modes, **picked automatically from
        what you send** — you do not declare a mode:


        | inputs | mode |

        |---|---|

        | prompt only | text-to-video |

        | `image_url` (+ optional `image_end_url`) | first / last frame |

        | `ref_imgs` (up to 3) | reference-to-video |


        ⚠️ **First/last frames and `ref_imgs` are mutually exclusive** and a
        request carrying both is rejected — upstream they share one field, so
        one would silently overwrite the other.


        ⚠️ **Reference mode is locked by Google**: duration is fixed at 8s and
        the aspect ratio at 16:9. Passing anything else is rejected rather than
        silently overridden (you would be billed for 4s and receive 8s).


        **Pricing** — per second of generated video, in tokens (USD at
        $0.02/token):


        | generate_audio | tokens/s | USD/s |

        |---|---|---|

        | false (default) | 5.4 | $0.108 |

        | true | 8.06 | $0.1612 |


        ⚠️ **Audio costs ~49% more.** Note that Google's own default is `true`;
        this endpoint defaults it to `false` so an omitted value never lands you
        on the expensive tier by surprise. Example: a 6s video without audio
        costs 32.4 tokens.


        ⚠️ **720p and 1080p cost the same** — that is the published rate, not an
        omission here. 4K exists in Google's enum but has no published price, so
        it is not offered.


        The prompt is translated to English automatically before generation.


        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the generated video.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - veo3_1_fast
                  description: Model name. Must be `veo3_1_fast`.
                prompt:
                  type: string
                  description: >-
                    Text prompt describing the video. Max 2000 tokens.
                    Translated to English automatically.
                image_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. First-frame image URL (≤10MB). Switches the
                    request to first/last-frame mode.
                image_end_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. Last-frame image URL. Requires `image_url` —
                    last-frame-only is not supported.
                ref_imgs:
                  type: array
                  items:
                    type: string
                    format: uri
                  maxItems: 3
                  description: >-
                    Optional. Up to 3 reference images (≤10MB each). Switches
                    the request to reference mode, which fixes duration to 8s
                    and aspect ratio to 16:9. Cannot be combined with
                    `image_url` / `image_end_url`. `image_urls` is accepted as a
                    compatible alias.
                duration:
                  type: integer
                  enum:
                    - 4
                    - 6
                    - 8
                  default: 4
                  description: >-
                    Video duration in seconds. ⚠️ Fixed at 8 when `ref_imgs` is
                    used.
                quality:
                  type: string
                  enum:
                    - 720p
                    - 1080p
                  default: 720p
                  description: >-
                    Output resolution. Both tiers cost the same. `resolution` is
                    accepted as a compatible alias.
                ratio:
                  type: string
                  enum:
                    - auto
                    - '16:9'
                    - '9:16'
                  default: auto
                  description: >-
                    Output aspect ratio. `auto` lets the model pick from the
                    input image, or from the prompt for text-to-video. ⚠️ Fixed
                    at 16:9 when `ref_imgs` is used. `aspect_ratio` is accepted
                    as a compatible alias.
                generate_audio:
                  type: boolean
                  default: false
                  description: >-
                    Generate an audio track. ⚠️ Costs ~49% more per second.
                    Defaults to `false` here (Google's own default is `true`).
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - prompt
            example:
              model: veo3_1_fast
              prompt: A cat playing piano in a jazz bar, cinematic
              duration: 6
              quality: 1080p
              ratio: '16:9'
              generate_audio: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                    required:
                      - img_uuid
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                required:
                  - code
                  - msg
          headers: {}
      deprecated: false

````