Sora 2 Series
OpenAI Sora 2 and Sora 2 Pro: text-to-video and image-to-video with synchronized audio, billed by resolution tier × seconds
POST
Sora 2 Series
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
A successful submission returns a
See Submit Task for
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
Generated videos are returned in
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
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.
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 theduration 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).cost field on the task response — an integer quota, not dollars (500,000 quota = 1 USD).
Response
Completed task
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.