The Sora 2 API Shuts Down September 24 — a Working Migration Map for Video Pipelines
On September 24, 2026, OpenAI removes the Videos API and with it the sora-2 and sora-2-pro model aliases. Developers were notified on March 24, so this is the back half of a six-month runway, and about six weeks of it are left. The consumer Sora app is already gone.
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 of 4, 8, or 12 seconds; portrait and landscape sizes; one reference image in; 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 (retiring) | Seedance 2.0 | Seedance 2.5 | MiniMax H3 |
|---|---|---|---|---|
| Longest single call | 12s | 15s | 30s, one take | 4–15s, whole seconds |
| Resolutions | 720p class | 480p / 720p / 1080p | 480p / 720p | 768P / 2K, no 1080p |
| Native audio | Yes | Yes | Yes, 11 languages | Yes, 11 languages, lip-sync variant |
| Image input | 1 reference image | First frame | First frame | First/last frame or up to 9 reference images |
| Video reference | No | 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.22 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 — 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 1080p, explicit vertical ratios, or shots longer than one call via reference-video continuation. This is our workhorse.
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 12-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 mutually exclusive — documented — 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 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 right now, and what exactly stops on September 24, 2026?
It works until September 24, 2026. On that date OpenAI removes 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 and about six weeks of it remain. This is a removal, not a freeze: after the date, calls fail. Anything your pipeline renders through those endpoints needs a new engine before then.
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 shuts 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, the escape hatch is closing 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/720p/1080p, roughly $0.15 per second at 720p list pricing. Seedance 2.5: up to 30 seconds as one continuous take, 480p/720p, roughly $0.22 per second. 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 — covered in the guide.
Keep reading
Arcads AI Pricing: What's Reported, What Isn't, and What a Short Ad Actually Costs
Arcads publishes no pricing page — the URL returns 404 and prices appear only after you create an account. Here is what independent write-ups report, what remains unverifiable, and the rounding rule that decides your real cost per ad.
How to Make TikTok Ads Without the Product: What Works When All You Have Is Supplier Photos
The guides for this are all pre-AI: green screen, slideshows, editing supplier clips. Here is the 2026 version, including what you may and may not reuse from a supplier's or a competitor's footage.
Meta vs TikTok Ads MCP: The Verified Comparison
Both platforms shipped official MCP servers for AI agents, both document them behind JS-rendered pages crawlers can't read, and most comparisons are stale on both sides. Verified in August 2026: real tool counts, auth paths, spend guardrails, and the gaps.