Videos
Create video generation tasks with OpenAI-compatible authentication and a task-style response shape. Video generation is async: create a task, store the id, and poll for completion.

Video generation is key-enabled. Only keys with video access list video models from /models; keys without video access cannot create video tasks.
When to use this page
Use this page when you need application-level video generation with production-friendly status polling. For model-specific guidance, see Veo 3.1 Fast and Seedance 2.0 Fast.
Endpoints
POST https://api.quotaflow.ai/openai/v1/videos
GET https://api.quotaflow.ai/openai/v1/videos/{task_id}
Supported models
veo-3.1-fast-generate-001veo-3.0-generate-001seedance-2.0-fast
Call /models with your production key for the exact list enabled for your account.
Key features
- Async task lifecycle: create, poll, render pending UI, then display or save the result.
- Text-to-video prompts: describe subject, motion, camera, lighting, duration, and style.
- Separate video families: use
veo-*ids for Veo-compatible workflows andseedance-2.0-fastfor Seedance 2.0 workflows; Quotaflow keeps the endpoint unified while preserving the requested public model. - Optional image inputs: use
image_url,image_urls,images, orreference_imagesfor first-frame or reference-image workflows when supported by your enabled model. - Reference-image readiness: for person, product, or style consistency, send stable HTTPS image URLs; Quotaflow prepares reference media automatically when required.
- Stable public response shape: Quotaflow preserves the public task id, status, model, data URL, and usage fields even when capacity is served by compatible video backends.
- Retry-safe product design: store task ids and make polling idempotent in your application.
Create a video task
curl https://api.quotaflow.ai/openai/v1/videos \
-H "Authorization: Bearer $QUOTAFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-001",
"prompt": "A cinematic drone shot over a coastal city at sunrise.",
"durationSeconds": 4,
"resolution": "1080p",
"aspectRatio": "16:9"
}'
Reference-image video
For image-to-video or identity/reference workflows, prefer image_urls or reference_images arrays. A single legacy image_url is still accepted and normalized, but arrays make the intent explicit and avoid client-side ambiguity.
curl https://api.quotaflow.ai/openai/v1/videos \
-H "Authorization: Bearer $QUOTAFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast-generate-001",
"prompt": "Animate this portrait into a natural 4 second speaking-style social clip, preserve the face identity and lighting.",
"image_urls": ["https://example.com/reference-face.jpg"],
"durationSeconds": 4,
"resolution": "720p",
"aspectRatio": "9:16",
"watermark": false,
"return_last_frame": true
}'
reference_images may contain strings or objects such as { "url": "https://example.com/reference-face.jpg" }. Keep URLs reachable while the task is running. For heavy reference-image, video-reference, audio-reference, 1080p, 4K, or longer-duration jobs, use an async UI and longer polling windows.
Seedance 2.0 unified call
Seedance 2.0 uses the same public /openai/v1/videos create-and-poll contract. Use seedance-2.0-fast when you specifically want Seedance behavior instead of a Veo-compatible model. Quotaflow adapts reference media internally, so your application should not call provider asset endpoints directly.
For 4K Seedance output, keep using the public seedance-2.0-fast id and set "resolution": "4k". Quotaflow maps that request to the appropriate 4K-capable Seedance 2.0 call path internally; there is no separate public seedance-2.0-4k id.
curl https://api.quotaflow.ai/openai/v1/videos \
-H "Authorization: Bearer $QUOTAFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-fast",
"prompt": "Animate this portrait into a natural 4 second social clip. Preserve identity, lighting, and framing.",
"reference_images": [{ "url": "https://example.com/reference-face.jpg" }],
"durationSeconds": 4,
"resolution": "4k",
"aspectRatio": "9:16",
"generate_audio": true,
"watermark": false,
"return_last_frame": true
}'
Portrait, person-reference, or audio-reference jobs can be slower and may fail model safety review. Keep reference URLs reachable until the task completes, then poll the returned task id.
Fetch task status or result
curl https://api.quotaflow.ai/openai/v1/videos/$TASK_ID \
-H "Authorization: Bearer $QUOTAFLOW_API_KEY"
Parameters
| Field | Notes |
|---|---|
model | Required. Use a model returned by /models with video support, such as veo-3.1-fast-generate-001 or seedance-2.0-fast when enabled. |
prompt | Required for text-to-video generation. |
duration, seconds, durationSeconds | Video duration fields accepted by supported clients and models. |
resolution | Common values include 720p, 1080p, and 4k; higher resolutions depend on model and key access. |
aspectRatio, aspect_ratio, ratio | Common values include 16:9, 9:16, and 1:1. |
image, image_url, images, image_urls, reference_images | Optional first-frame or reference image input when enabled. Prefer arrays for reference workflows. Use public HTTPS URLs or supported data URLs. |
video, video_url, videos, video_urls | Optional video reference or extension input when enabled for your key and model. |
audio, audio_url, audios, audio_urls | Optional audio reference input when enabled for your key and model. |
generate_audio, generateAudio | Optional. Request synchronized audio when the enabled model and package support it. |
watermark | Optional boolean. Request watermark behavior when supported by the enabled model and package. |
return_last_frame, returnLastFrame | Optional boolean. Request the final frame metadata or asset when supported by the enabled model and package. |
Response shape
The create call returns a task object or task id. Poll GET /videos/{task_id} until the task is completed or failed. Use a pending state in your UI; do not block an end-user request waiting for the render to finish.