Veo 3.1 AI Video Generator
POST /api/v1/veo-3-1-ai-video-generator/submit
prompt is required.
Required inputs
promptstring- Text prompt describing the video to generate (max 8000 chars).
Edit the sample inputs for your own task before submitting.
# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/veo-3-1-ai-video-generator/submit" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
-H "Content-Type: application/json" \
-d '{"prompt":"Aerial shot gliding above turquoise ocean waves toward a remote tropical island at sunrise","duration":"8","aspectRatio":"9:16","resolution":"720p","sound":true}'
# -> { "success": true, "taskId": "...", "creditsConsumed": ... }Parameters and input rules9 fields
| Field | Type | Required | Default | Meaning and limits |
|---|---|---|---|---|
prompt | string | Yes | Not specified | Text prompt describing the video to generate (max 8000 chars). Minimum length: 5 · Maximum length: 8000 |
imageUrl | string | No | Not specified | Optional input image URL. When provided, the task runs in image-to-video mode. No additional field constraint listed. |
lastFrameUrl | string | No | Not specified | Optional public URL for the final frame in image-to-video mode. No additional field constraint listed. |
duration | string | No | "8" | Video duration in seconds. Values: "4", "6", "8" · Default: "8" |
aspectRatio | string | No | "9:16" | Output aspect ratio. Values: "16:9", "9:16" · Default: "9:16" |
resolution | string | No | "720p" | Output resolution tier. Values: "720p", "1080p", "4k" · Default: "720p" |
sound | boolean | No | true | Generate synchronized audio along with the video. No separate sound surcharge is configured. Default: true |
negativePrompt | string | No | Not specified | Describe unwanted video content or artifacts. No additional field constraint listed. |
seed | number | No | Not specified | Random seed for reproducible generation. Multiple of: 1 · Whole numbers only |
Mode-specific fields & media limits
Text To Video rules
| Control | Mode-specific rule |
|---|---|
prompt | Required; minimum 5 characters; maximum 8000 characters |
duration | Values: "4", "6", "8"; mode default: "8" |
aspectRatio | Values: "16:9", "9:16"; mode default: "9:16" |
resolution | Values: "720p", "1080p", "4k"; mode default: "720p" |
sound | Boolean control; default true |
negativePrompt | No additional field constraint listed. |
seed | No additional field constraint listed. |
Image To Video rules
| Control | Mode-specific rule |
|---|---|
prompt | Required; minimum 5 characters; maximum 8000 characters |
duration | Values: "4", "6", "8"; mode default: "8" |
aspectRatio | Values: "16:9", "9:16"; mode default: "9:16" |
resolution | Values: "720p", "1080p", "4k"; mode default: "720p" |
sound | Boolean control; default false |
imageUrl | Image input |
lastFrameUrl | Optional final-frame image input |
negativePrompt | No additional field constraint listed. |
seed | No additional field constraint listed. |
Retrieve the result
Save taskId from the accepted submission and send it to this endpoint:
POST /api/v1/veo-3-1-ai-video-generator/query
Use the same Bearer API key. On completion, read the videoUrl result field.
curl -X POST "https://vidmage.ai/api/v1/veo-3-1-ai-video-generator/query" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "taskId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "videoUrl": "https://..." } }