GET
/v1/schemas/openrouter/video/videos/openai/sora-2-pro
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source tracea1c912c1a574e55163172f5e77a3adecd87238f65ad9929a7e99a7ff067c4208{
"fetchedAt": 1790746253,
"extractorVersion": "1",
"verifiedAt": null
} |
Request body
16 properties · 1 required · 6 $defs| property | type | description | constraints |
|---|---|---|---|
| model* | enum | Model id (fixed for this model-constrained schema) | openai/sora-2-pro |
| aspect_ratio | enum | Aspect ratio of the generated video | 16:9 | 9:16 |
| callback_url | string | URL to receive a webhook notification when the video generation job completes. Overrides the workspace-level default callback URL if set. Must be HTTPS. | format: uri |
| creativity | integer | Creativity level for video upscaling models only. This parameter is not supported by video generation models. | |
| duration | enum | Duration of the generated video in seconds | 4 | 8 | 12 | 16 | 20 · n ≥ 1 |
| generate_audio | boolean | Whether to generate audio alongside the video. Defaults to the endpoint's generate_audio capability flag, false if not set. | |
| input_references | InputReference[] | Reference assets to guide video generation. Accepts image, audio, and video references. Audio and video references are only honored by providers that support them (including BytePlus Seedance generation 2 and newer); other providers use image references and ig… | |
| previous_job_id | string | ID of a completed video job to edit or extend, as returned by the submit response. The new job runs on the same model and endpoint that produced the previous one. Only models that support continuation accept this field. | |
| prompt | string | Text prompt describing the video to generate. Optional for models that support generating a video from image input alone; required by all other models. | |
| provider | object | Provider-specific passthrough configuration Passthrough parameters allowed for this model: quality, style. | |
| resolution | enum | Resolution of the generated video | 720p | 1080p |
| session_id | string | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body… | length ≤ 256 |
| size | enum | Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable with resolution + aspect_ratio. | 1280x720 | 1080x1920 | 1920x1080 | 720x1280 |
| trace | TraceConfig | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | |
| upscale_factor | number | Upscale factor for video upscaling models only. This parameter is not supported by video generation models. | n ≥ 0 |
| user | string | A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider. | length ≤ 256 |
Types
6 $defsContentPartAudioobject
| audio_url* | object | ||
| type* | enum | audio_url |
ContentPartImageobject
| image_url* | object | ||
| type* | enum | image_url |
ContentPartVideoobject
| type* | enum | video_url | |
| video_url* | object |
InputReferenceobject | object | object
A reference asset used to guide video generation. Image references are supported by all providers; audio and video references are only honored by providers that support them (including BytePlus Seedance generation 2 and newer).
ProviderOptionsobject
Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.
| 01ai | object | ||
| ai21 | object | ||
| aion-labs | object | ||
| akashml | object | ||
| alibaba | object | ||
| amazon-bedrock | object | ||
| amazon-bedrock/claude-on-aws | object | ||
| amazon-nova | object | ||
| ambient | object | ||
| anthropic | object | ||
| anthropic/2 | object | ||
| anyscale | object | ||
| arcee-ai | object | ||
| assemblyai | object | ||
| atlas-cloud | object | ||
| atoma | object | ||
| avian | object | ||
| azure | object | ||
| baidu | object | ||
| baseten | object | ||
| black-forest-labs | object | ||
| byteplus | object | ||
| centml | object | ||
| cerebras | object | ||
| chutes | object | ||
| cirrascale | object | ||
| clarifai | object | ||
| claude-on-aws | object | ||
| cloudflare | object | ||
| cohere | object | ||
| coreweave | object | ||
| cosine | object | ||
| crofai | object | ||
| crucible | object | ||
| crusoe | object | ||
| darkbloom | object | ||
| databricks | object | ||
| decart | object | ||
| deepgram | object | ||
| deepinfra | object | ||
| deepseek | object | ||
| dekallm | object | ||
| digitalocean | object | ||
| elevenlabs | object | ||
| enfer | object | ||
| fake-provider | object | ||
| featherless | object | ||
| fireworks | object | ||
| fish-audio | object | ||
| friendli | object | ||
| gmicloud | object | ||
| google-ai-studio | object | ||
| google-vertex | object | ||
| gopomelo | object | ||
| groq | object | ||
| heygen | object | ||
| huggingface | object | ||
| hyperbolic | object | ||
| hyperbolic-quantized | object | ||
| inception | object | ||
| inceptron | object | ||
| inferact-vllm | object | ||
| inference-net | object | ||
| infermatic | object | ||
| inflection | object | ||
| inocloud | object | ||
| io-net | object | ||
| ionstream | object | ||
| klusterai | object | ||
| krea | object | ||
| lambda | object | ||
| lepton | object | ||
| liquid | object | ||
| lynn | object | ||
| lynn-private | object | ||
| makora | object | ||
| mancer | object | ||
| mancer-old | object | ||
| mara | object | ||
| meta | object | ||
| minimax | object | ||
| mistral | object | ||
| modal | object | ||
| modelrun | object | ||
| modular | object | ||
| moonshotai | object | ||
| morph | object | ||
| ncompass | object | ||
| near-ai | object | ||
| nebius | object | ||
| nex-agi | object | ||
| nextbit | object | ||
| nineteen | object | ||
| novita | object | ||
| nvidia | object | ||
| octoai | object | ||
| ollama | object | ||
| open-inference | object | ||
| openai | object | ||
| parasail | object | ||
| perceptron | object | ||
| perplexity | object | ||
| phala | object | ||
| poolside | object | ||
| primeintellect | object | ||
| quiver | object | ||
| recraft | object | ||
| recursal | object | ||
| reflection | object | ||
| reka | object | ||
| relace | object | ||
| replicate | object | ||
| respan | object | ||
| runway | object | ||
| sail-research | object | ||
| sakana | object | ||
| sakana-ai | object | ||
| sambanova | object | ||
| sambanova-cloaked | object | ||
| scaledown | object | ||
| seed | object | ||
| sf-compute | object | ||
| siliconflow | object | ||
| sourceful | object | ||
| stealth | object | ||
| stepfun | object | ||
| streamlake | object | ||
| switchpoint | object | ||
| targon | object | ||
| tencent | object | ||
| tenstorrent | object | ||
| thinkingmachines | object | ||
| together | object | ||
| together-lite | object | ||
| typesafe | object | ||
| ubicloud | object | ||
| unbiased | object | ||
| upstage | object | ||
| venice | object | ||
| voyageai | object | ||
| wafer | object | ||
| wandb | object | ||
| wandb-legacy | object | ||
| xai | object | ||
| xiaomi | object | ||
| z-ai | object |
TraceConfigobject
Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.
| generation_name | string | ||
| parent_span_id | string | ||
| span_name | string | ||
| trace_id | string | ||
| trace_name | string |
Validate a payload
before you spend tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"openrouter","endpointId":"videos/openai/sora-2-pro","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}