Video generation (Beta)
Creates an async video generation job. Poll the returned polling_url every 20 seconds until the job reaches a terminal status.
- use
GET /v1/videos/{video_id}for status updates - use
GET /v1/videos/{video_id}/contentwhen the job is complete - use
POST /v1/videos/{video_id}/download_urlwhen you need a short-lived signed download link - use
GET /v1/videosto review owned jobs - use
GET /v1/videos/modelsto inspect active public video models
Lifecycle notes
- Video generation is async by design. Do not expect binary video data in the create response.
- AI Stats can hold funds up front and later settle or void them when the provider reaches a terminal state.
- Terminal states include
completed,failed,cancelled, andexpired. - Webhook configuration can be included in the create request when you want lifecycle notifications instead of pure polling.
Authorizations
Bearer token authentication
Body
Desired duration in seconds (provider/model dependent).
Explicit dimensions (for example 1280x720). Cannot be combined with resolution or aspect_ratio.
480p, 720p, 1080p, 1K, 2K, 4K. Can be combined with aspect_ratio. Cannot be combined with size.
Aspect ratio such as 16:9, 9:16, 1:1. Can be combined with resolution. Cannot be combined with size.
Provider routing preferences for gateway selection.
Response
Video response
queued, processing, completed, failed, cancelled, expired bytes, signed_url, both "video"
20
Present when output_access includes bytes (authenticated endpoint).
Signed first-party URL for direct download when status is completed.
Unix timestamp (seconds) when the signed download_url expires.