api.gptproto.com domain. Replace {model} with the model name and {operation_id} with the operation ID from the generation response.Response Example
{file_id} with the file ID from the video URI in the query response (e.g. abc from .../files/abc:download?alt=media).https://gptproto.com/v1beta/models/{model}:predictLongRunning
| Model | Description |
|---|---|
veo-3.1-generate-preview | Veo 3.1 standard — highest quality |
veo-3.1-fast-generate-preview | Veo 3.1 Fast — optimized for speed |
instances and parameters arrays.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | ✅ Yes | - | A text description of the desired video. Supports audio cues. |
image | object | ❌ No | - | Source image for image-to-video generation. |
image.mimeType | string | ❌ No | - | MIME type of the image (e.g. image/png, image/jpeg). |
image.bytesBase64Encoded | string | ❌ No | - | Base64-encoded image data. |
video | object | ❌ No | - | Source video for video-to-video generation (editing/extension). |
video.uri | string | ❌ No | - | URL of the source video. |
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
aspectRatio | string | ❌ No | 16:9 | 16:99:16 | The aspect ratio of the generated video. |
resolution | string | ❌ No | 720p | 720p1080p4k | The resolution of the generated video. 1080p and 4k only support 8s duration. |
durationSeconds | string | ❌ No | - | 4, 6, 8 | Length of the generated video in seconds. Must be 8 for 1080p/4k. |
personGeneration | string | ❌ No | - | allow_allallow_adult | Controls the generation of people. |
enhancePrompt | boolean | ❌ No | true | true, false | Whether to enhance the prompt for better quality. |
| Feature | text-to-video | image-to-video | video-to-video |
|---|---|---|---|
prompt | ✅ Required | ✅ Required | ✅ Required |
image | ❌ | ✅ Required | ❌ |
video | ❌ | ❌ | ✅ Required |
aspectRatio | ✅ | ✅ | ✅ |
resolution | ✅ | ✅ | ✅ |
| Audio cues in prompt | ✅ | ✅ | ✅ |
| Error Code | Error Name | Description |
|---|---|---|
| 401 | Unauthorized | API key is missing or invalid |
| 403 | Forbidden | Your API key doesn’t have permission to access this resource, or insufficient balance for the requested operation |
| 429 | Too Many Requests | You’ve exceeded your rate limit |
| 500 | Internal server error | An internal server error occurred |
| 503 | Content policy violation | Content blocked due to safety concerns (actual status code is 400) |