# Sora 2 Model id on AIHubMix: `sora-2` Create an API key: https://console.aihubmix.com/ > Sora-2 is the next-generation text-to-video model evolved from Sora, optimized for higher visual realism, stronger physical consistency, and longer temporal coherence. It delivers more stable character consistency, complex motion rendering, camera control, and narrative continuity, while supporting higher resolutions and minute-level video generation for film production, advertising, virtual content creation, and creative multimedia workflows. - Developer: OpenAI - Pricing: per-generation — see https://aihubmix.com/model/sora-2 ## Endpoints (base URL: https://aihubmix.com) - `POST /ai/v1/videos` — video generation (`Authorization: Bearer $AIHUBMIX_API_KEY`); async — poll `GET /ai/v1/videos/{id}` until a terminal state - `POST /v1/videos` — video generation (`Authorization: Bearer $AIHUBMIX_API_KEY`); async — poll `GET /v1/videos/{id}` until a terminal state ## Example ```bash curl -s https://aihubmix.com/ai/v1/videos \ -H "Authorization: Bearer $AIHUBMIX_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"sora-2","prompt":""}' ``` The response contains a task id — poll `GET https://aihubmix.com/ai/v1/videos/` until `status` is terminal, then read the output URL(s). Full parameter list: see the schema link below. Generation costs real money — check the price on the model page first. ## Parameters (video endpoint) | name | type | required | default | enum | |---|---|---|---|---| | `duration` | integer|null | no | 4 | | | `extra` | object,null | no | | | | `frame_images` | array,null | no | | | | `generate_audio` | boolean,null | no | | | | `input_references` | array,null | no | | | | `model` | string | yes | | | | `prompt` | string | yes | | | | `size` | string,null | no | | | | `webhook_url` | string,null | no | | | Always-current parameter schema (authoritative, no auth): ```bash curl -s https://aihubmix.com/call/schema/models/sora-2/endpoints ``` Output URLs are short-lived (roughly 30 minutes) and are downloaded with the same `Authorization: Bearer` header — fetch them promptly and store the content yourself. ## Errors Error responses carry a `tid` (trace id) — include it when contacting support. Reference: https://docs.aihubmix.com/en/FAQs/HTTP-Codes.md - 400 — parameter error; most are passed through from the upstream provider (media: `prompt_missing`, `size_not_supported`, `n_not_within_range`, …) - 401 — missing `Authorization` header, or the key is invalid/expired - 403 — `insufficient_user_quota` (top up at https://console.aihubmix.com/), account suspended, or this key is not allowed to use this model - 429 — rate limited; back off and retry - 503 — no channel can serve the request (check the model id and your access), or the upstream provider is throttling; retry later ## More - Machine-readable endpoint schema (no auth): https://aihubmix.com/call/schema/models/sora-2/endpoints - Async task guide: https://docs.aihubmix.com/en/api/async-tasks.md - Model page: https://aihubmix.com/model/sora-2 - Try in browser: https://playground.aihubmix.com/?model=sora-2 - Compare with another model (human-facing, side-by-side specs and pricing): https://aihubmix.com/compare/sora-2/{other_model_id} - Generate runnable code programmatically: npm `@aihubmix/codegen` — the generator behind the Playground's "Get Code" (4 protocols × 7 languages, media endpoints included); the body it builds is the exact wire body the Playground sends, so generated snippets and real requests cannot diverge. `@aihubmix/model-schema` (npm) translates the parameter schema above into codegen input - Site index for agents: https://aihubmix.com/llms.txt · Onboarding: https://aihubmix.com/agents.md --- Canonical version of this document: https://aihubmix.com/model/sora-2/llms.txt