Skip to main content
POST
Video API workflow
All FreeModel video routes use the same asynchronous workflow. Choose a model from the Video Series sidebar, submit a request, save the returned id, and poll until the task completes. The model page defines the accepted duration, aspect ratio, resolution, image-reference, and source-video rules. Do not send values from one model family to another.
string
required
An available video model ID. Call GET /v1/models and select a model whose supported_endpoint_types includes openai-video.
string
required
Describe the subject, action, camera movement, lighting, and audio intent.
string
A model-specific duration. Send it only when the selected model page lists it. Do not send seconds with gemini-omni-extend.
string
Gemini Omni only. Use a supported 16:9 or 9:16 size: 1280x720, 720x1280, 1920x1080, or 1080x1920.
string
Seedance 2 and Veo 3.1 only. Do not send size with these routes.
string[]
Public http or https image URLs when the selected model accepts them. Follow its required count and per-image size limit.
string
The singular public http or https source-video URL required by gemini-omni-extend. Do not send an array.
string
Optional public callback URL. FreeModel sends the final task object when the task completes or fails.

Submit a task

Poll and download

Include the same model query value while polling and downloading.
Poll every 10 to 20 seconds while status is queued or in_progress. Download only after status becomes completed.

Task status API

Query the normalized task record and final media URLs.

Webhooks

Receive the final task result without continuous polling.