The Sora 2 API Shut Down September 24: A Working Migration Map for Video Pipelines
On September 24, 2026, OpenAI removed the Videos API and with it the sora-2 and sora-2-pro model aliases. Developers were notified on March 24, so the runway was six months, and it has now run out. The consumer Sora app had closed before that.
The unusual part is one cell on OpenAI's deprecations page. Where every other retired model lists a recommended replacement, the Videos API row shows a dash. No successor, no migration guide, nothing. If you built an ad-creative or UGC pipeline on Sora 2, the vendor's official answer to "what now?" is blank space, and the top of the search results is already filling with aggregators racing to sell you their own proxy.
We run three of the surviving production video APIs (Seedance 2.0, Seedance 2.5, and MiniMax H3) behind one product, and we have already published working guides for two of them. This is the migration map we would have wanted: not a listicle of alternatives, but which engine matches which property of the pipeline you actually built.
First, do not plan around Azure
The obvious dodge is "keep calling Sora through Azure AI Foundry." Two things argue against it. The Azure portal listed a retirement date of June 2, 2026 for its sora-2 model version, earlier than OpenAI's own shutdown, not later. And developer threads through the summer show the deployment gateway rejecting sora-2 by name, including a documented catch-22 where the validator refuses the deprecated model while the docs still describe it as preview. An escape hatch that is closing from both ends is not a migration plan.
Inventory what your pipeline actually uses
Sora 2, as the API stood at the shutdown notice, had a specific shape: clips up to 20 seconds (OpenAI's March 12 update added 16- and 20-second generations, and extensions that grow a video to 120 seconds); portrait and landscape sizes, with 1080p on sora-2-pro; one reference image in as the first frame, plus up to two reusable characters; an edits endpoint for existing videos, with uploaded videos limited to eligible customers; synchronized speech and sound generated with the video; strict input moderation, especially around real people; credentialed, watermark-carrying output.
Your migration is about those properties, not the logo. Write down which ones your pipeline depends on, because no surviving engine matches all of them exactly, and the mismatches are where rebuilds go wrong.
The map
| Property | Sora 2 (retired) | Seedance 2.0 | Seedance 2.5 | MiniMax H3 |
|---|---|---|---|---|
| Longest single call | 20s | 15s | 30s, one take | 4–15s, whole seconds |
| Resolutions (BytePlus for Seedance) | 720p; 1080p on sora-2-pro | 480p to 4K | 480p / 720p / 1080p, no 4K | 768P / 2K, no 1080p |
| Native audio | Yes | Yes | Yes, 11 languages | Yes, 11 languages, lip-sync variant |
| Image input | 1 reference image, up to 2 characters | First frame | First frame | First/last frame or up to 9 reference images |
| Video reference | Edits endpoint; uploaded videos for eligible customers only | Yes, continuation | Yes, with quirks | Up to 3 clips, 15s total |
| Aspect control | Fixed sizes | Explicit ratios, 9:16 / 4:5 / 16:9 | Explicit, but refuses a ratio when a video reference is present | Mode-dependent: text-to-video requires one, image-to-video ignores yours |
| List price per second | $0.10 ($0.30–0.50 pro) | ≈$0.15 at 720p | ≈$0.23 at 720p | ¥0.50 ≈ $0.08 at 768P; ¥0.80 at 2K |
Prices are list rates for the vendor's cheapest qualifying tier, converted where billing is in RMB; token-metered engines vary with resolution and input. The fine print matters more than the table, and that is the next section.
Choose MiniMax H3 if Sora was your exploration engine: it is the cheapest per finished second by a wide margin, and 768P is fine for feed placements. Its ceilings are hard (15 seconds, no 1080p), and it has the sharpest edges (below).
Choose Seedance 2.0 if you need 4K (listed on BytePlus), explicit vertical ratios, or shots longer than one call via reference-video continuation. This is our workhorse, and in Riffkit you can pick up to 1080p on it.
Choose Seedance 2.5 when the thing you are replacing is Sora's coherence: a 30-second continuous take has no seam to hide, which below 15 seconds buys you nothing but past it changes the product.
The traps that are not in any rate card
These are the ones that cost us real renders, and every one applies to a Sora migrant.
Input video is metered. Hand Seedance a reference clip and the token formula counts the input duration at your output's dimensions. Hand H3 a reference clip and it bills the clip's own duration at the output rate, on top of the output. Sora never charged you for what you sent in; both of these do, and a budget model that ignores it understates every continuation.
Continuations cost more, not less. On our production traffic, a continuation segment consumes about 2.28× the tokens of an opening segment; even at the cheaper reference-video rate that nets out to roughly 1.39× the cost per second. If you are replacing 20-second Sora clips with 15-plus-continuation, price the second segment correctly.
H3 silently drops contradictory parameters. First/last frame and the reference family are documented as mutually exclusive, but the API does not enforce it: send both and the request is accepted, billed, and one group is discarded with no warning field. Validate the exclusivity yourself.
Ratio comes from the input frame. In image-to-video mode H3 ignores the ratio parameter entirely and follows your image. If your Sora pipeline requested portrait output from square product shots, crop upstream or you will ship square ads.
Moderation runs on inputs, and stills are judged harder than video. Both vendors screen what you send in; a rejection surfaces as a failed generation, not a validation error, and retrying the identical request will not clear it. Real-person images get the strictest read. If Sora's moderation was your baseline, re-run your actual asset library through the new engine before you commit traffic.
Deeper dives, from the same production data: our MiniMax H3 working guide and the three costs every Seedance-vs-H3 comparison misses.
A six-step migration checklist
- Inventory properties, not vendors: durations, ratios, audio languages, reference inputs, moderation exposure.
- Map your durations. Everything ≤12s fits any engine; 13–15s fits Seedance 2.0 and H3; longer, including Sora's 16- and 20-second clips, means segmentation and seams, or Seedance 2.5's single take.
- Move ratio decisions upstream. Crop the input frame to the shape you want before the API call; do not trust the parameter.
- Re-run moderation assumptions with your real assets, especially anything with a face.
- Re-price with input metering and retries in the model, not just the per-second headline.
- Keep the seams provider-neutral: segment planning, asset URLs, polling, and billing should treat the engine as a config value, because this is not the last shutdown you will migrate through.
The shortcut, if you would rather not rebuild
We did this the long way so the pipeline you rent can be boring: Riffkit runs Seedance 2.0, 2.5, and MiniMax H3 behind one form. You hand it a short video that already worked (the thing most Sora ad pipelines were built to imitate), and it rebuilds that video's formula around your product, handles the segmentation, the reference plumbing, the ratio rules, and the engine choice, and shows you the per-second rate before you render. The engines on the pricing page are the same ones in the table above, because they are the ones that survived.
FAQ
Is the Sora 2 API still working, and what exactly stopped on September 24, 2026?
No. It stopped working on September 24, 2026. On that date OpenAI removed the entire Videos API along with the sora-2 and sora-2-pro model aliases and snapshots. The deprecation was announced to developers on March 24, 2026, so the window was six months. This was a removal, not a freeze: from that date, calls fail. Anything your pipeline rendered through those endpoints needs a new engine.
What is OpenAI's recommended replacement for sora-2 and the Videos API?
There is none. The recommended-replacement column on OpenAI's own deprecations page is literally a dash. That is the unusual part of this shutdown: most deprecations point you at a successor model, this one points at nothing. The practical move is to stop migrating by vendor and migrate by property instead: list what your pipeline actually depends on (clip length, aspect ratio, native audio, image or video reference input) and pick the surviving engine that matches that list.
Can I keep running Sora 2 through Azure AI Foundry after the OpenAI API shut down?
Do not plan on it. The Azure portal listed a June 2, 2026 retirement for its sora-2 model version (earlier than OpenAI's own date), and developer threads through the summer show the gateway rejecting sora-2 deployments outright, including a documented catch-22 where the deployment validator refuses the deprecated model name. Whatever the marketing pages imply, treat that escape hatch as closed from both ends.
Which surviving video APIs support image-to-video and reference input like Sora 2, and what are their duration caps and per-second prices?
All three engines we run in production do. Seedance 2.0: first-frame image input plus reference-video continuation, up to 15 seconds per call, 480p to 4K on BytePlus, roughly $0.15 per second at 720p list pricing. Seedance 2.5: up to 30 seconds as one continuous take, 480p to 1080p on BytePlus, roughly $0.23 per second at 720p. MiniMax H3: 4 to 15 whole seconds per call, 768P or 2K, first/last frame or a reference family of up to 9 images and 3 short clips, ¥0.50 per second (about $0.08 on the international platform) at 768P. Each has metering and moderation quirks the docs bury; the guide covers them.
Keep reading
Add an Object to a Video with AI (Real Test)
Add an object to a video with AI and keep the person, moves and sound. Our test put sunglasses and a plant into an 11-second clip, checked every half second.
Make a Christmas AI Video from a Clip You Already Have
Make a Christmas AI video from a clip you already have: four Seedance 2.0 tests with lights, a tree, pajamas and snow, the exact prompts, and what slipped.
Change the Person in a Video with AI (Real Test)
Change the person in a video with AI: eight tools compared, and our 11-second test where words changed her hair but not her face. Why a photo helps.