Choose a video API
Seedance create
Create Seedance video tasks.
Create a HappyHorse video
Create HappyHorse text-to-video jobs.
Create Sora video
Create Sora video jobs.
Retrieve Sora video
Query Sora video jobs.
Veo async video generation
Create Veo video jobs.
Create a Wan video
Create Wan text-to-video jobs.
xAI video generation
Generate xAI video jobs.
Create a Vidu video
Create Vidu text-to-video jobs.
Create an Omni video (Beta)
Create beta Omni video jobs.
Kling text to video
Generate Kling videos from text prompts.
Runway image to video
Generate Runway videos from images.
Create and poll a video task
Use a video-capable model ID from the Models page or the model directory. The examples below create a video task withPOST /v1/videos, then poll the returned task ID until the task reaches a terminal state.
These examples use the placeholder
your-video-model-id. Replace it with an available video model ID from the Models page or model directory before you run the request.Response examples
A successful create response can look like this. Store the task ID before polling:video_url; some provider formats use model-specific result fields or the video content route when that route is documented:
Example model records
This example model catalog response shows the
/api/models envelope and one video model record shape. It is not a complete model list.cURL
Common errors
Missing task ID
Missing task ID
Store the ID from the create response before returning from your job handler.
Polling too fast
Polling too fast
Add delay and backoff between status checks.
Unsupported duration or size
Unsupported duration or size
Use the duration and resolution fields documented for the selected video endpoint.
Missing video_url
Missing video_url
Treat
video_url as optional and fall back to model-specific result fields or the content route when available.Callback not received
Callback not received
Use polling as the source of truth and verify that your callback URL accepts POST requests.
Error codes and retry strategy
400
400
Do not retry until the prompt, files, duration, or size fields are fixed.
401
401
Do not retry until the API key is present and valid.
404
404
Check the task ID, base URL, path, and model ID before retrying.
413
413
Reduce upload size before retrying.
429
429
Retry with exponential backoff and reduce create or polling concurrency.
500 or 503
500 or 503
Retry task creation with backoff; keep polling existing tasks unless the task reaches a terminal error.
Pricing and model directory
Models page
Read how CometAPI exposes model IDs in the docs.
Model directory
Browse model availability and capabilities.
Pricing
Check pricing before you call a model.