Skip to main content
POST
Sora 2 Series
sora-2 and sora-2-pro were delisted on 2026-09-24 (OpenAI shut down every Sora 2 model and the Videos API); this page is kept for reference only and calls will return an error. For video generation use the Veo 3.1 Series or another model in the video models overview
OpenAI Sora 2 produces physically consistent, photorealistic video with a synchronized audio track (dialogue, sound effects and ambience) and strong multi-shot consistency. This page covers sora-2 and sora-2-pro: both models expose the same action, the same parameters and the same value ranges, and differ only in the resolutions they accept — switching tiers means changing model. Every request is submitted asynchronously through POST /v1/tasks.

Quick start

A successful submission returns a task_id. Retrieve the result with GET /v1/tasks/{task_id}, wait inline with Prefer: wait, or configure a webhook.

Request parameters

string
必填
Either sora-2 or sora-2-pro.
string
默认值:"generate"
generate is the only action in this series. Text-to-video and image-to-video are selected by whether you send image_urls, not by the action.
string
必填
The video description. Describe the scene, subject, motion, camera and mood.
integer
Video length in seconds: 4, 8, 12, 16 or 20. Length drives the price directly.
string
Output resolution. sora-2 supports 720p only; sora-2-pro supports 720p, 1024p and 1080p.
string
默认值:"16:9"
Frame ratio, 16:9 or 9:16. Ignored when image_urls is present — the ratio follows the input image.
integer
Random seed. The same prompt and seed reproduce similar results.
string[]
Reference image URLs for image-to-video, up to one image. Omit it for text-to-video.
See Submit Task for callback_url, callback_events, Prefer: wait, Idempotency-Key and the maximum-cost header. The Sora 2 series has no model-specific parameters. Any other parameter returns 400 and is not billed.

Limits

  • aspect_ratio is ignored in image-to-video
  • This model produces one result per task; n is not supported

Pricing

Billing is resolution tier × output seconds, where the seconds come from the duration you send. sora-2 has a single 720p tier; sora-2-pro prices 720p, 1024p and 1080p separately, and higher resolutions cost more. Text-to-video and image-to-video use the same tier, reference images carry no extra charge, and aspect_ratio, seed and prompt length do not affect the price. Resolution and duration are the only two billing dimensions, so the cost of a call is known before you submit it.
Rates move with the upstream, so this section describes billing dimensions only and lists no amounts.Current rates: price_config on GET /v1/models, or the Model Market in the console. Actual cost of one call: the cost field on the task response (an integer quota; 500,000 quota = 1 USD).
You are billed only for a delivered video. Failed and cancelled tasks, and upstream successes that carry no deliverable video, are refunded in full. The final charge is the cost field on the task response — an integer quota, not dollars (500,000 quota = 1 USD).

Response

Completed task
Generated videos are returned in result.videos; url is an array and expires_at is the link expiry in Unix seconds, so copy the file to your own storage before then. See Query Task Status for the full field reference.

Available models