OpenAI Shut Down Sora 2: Where to Move Your Video API Calls
OpenAI removed the Sora 2 API on Sep 24, 2026 with no replacement. How to choose between another AI video model and a template API that costs 24x to 242x less.
Founder

On OpenAI's deprecations page, the Videos API row has a column called "Recommended
replacement." For the Videos API, for sora-2, for sora-2-pro and for all three dated
snapshots, that column is empty.
So if your product called Sora 2, you have no successor model to move to at OpenAI. You have a dead endpoint and a choice to make. Most migration guides answer that choice with a list of other AI video models. That is the right answer for some teams, and an expensive mistake for many others. This post helps you find out which team you are on before you rewrite the integration.
TL;DR: OpenAI removed the Videos API and every Sora 2 model on September 24, 2026, and names no replacement. If you need new footage from a prompt, move to another generative model at $4.80 to $24.00 per 1080p minute. If you fill the same layout with new text, images and voice, a template render API does the job for $0.10 to $0.20 per minute, and gives the same result every time.
What exactly did OpenAI remove, and when?
OpenAI removed six items on September 24, 2026, and announced the removal on March 24, 2026. The list on the OpenAI deprecations page is:
| Removed item | Recommended replacement |
|---|---|
| Videos API | none |
sora-2 | none |
sora-2-pro | none |
sora-2-2025-10-06 | none |
sora-2-2025-12-08 | none |
sora-2-pro-2025-10-06 | none |
The whole endpoint family went with it: POST /v1/videos to start a job,
GET /v1/videos/{video_id} to poll it, GET /v1/videos/{video_id}/content to download the
MP4, and the video.completed and video.failed webhooks. OpenAI's archived video
generation guide now says the same thing: "No one-to-one replacement API is available."
OpenAI removed its Videos API and all Sora 2 models on September 24, 2026, six months after it announced the change. Its deprecations page lists no recommended replacement for any of the six removed items, so teams that generated video through OpenAI must move that work to a different provider.
One more date on the same page is worth a look if Sora was part of a larger media pipeline.
whisper-1 is removed on February 26, 2027. OpenAI does name replacements there
(gpt-live-transcribe and gpt-transcribe). If you used Whisper only to put captions on
videos, a render API with built-in auto-captions
removes that dependency too.
What were you actually using Sora 2 for?
This is the question to answer before you choose anything. Sora 2 calls fell into two very different groups.
Group 1: new footage. A scene that does not exist yet. A drone shot over a city you never filmed, a product in a setting you never photographed, a character that moves. Only a generative model can make this, and the output is the point.
Group 2: the same layout with new data. A 15-second vertical promo with a product photo, a headline, a price and captions. A listing video with the address and five photos. A personalized clip with the customer's name. The structure is the same on every call. Only the text, images and voice change.
A lot of Group 2 work went through Sora because a prompt was the easiest interface to reach for, not because the job needed generation. A prompt like "15-second vertical product promo, show this photo, headline 'The Everyday Tote', price £129, captions" asks a model to guess a layout that you already know.
Here is a quick test: if you could draw the video as a storyboard before you called the API, you need a template, not a model.
Most templated short-form video does not need a generative model. When the layout is known before the API call and only the text, images, voice and captions change, the job is a deterministic render, and a template render API does it for a small fraction of the per-second price of generation.
The decision tree
Three questions route every Sora workload to one of three exits.
1. Does each video need footage that does not exist yet? If no, stop here. You need a template render API. Nothing in the video is invented, so nothing needs a model.
2. If yes, does the layout stay the same across videos? If it does, take the hybrid path. Generate only the clip that must be new, and let a template place it with the text, captions and brand elements. If the layout changes every time, you need a generative model.
3. Must the same input give the same output? Sora gave a different video on each call with the same prompt. That is fine for creative exploration. It is a bug if your product shows a customer a preview and then renders a final that looks different. A template render is repeatable from the same props, so if repeatability matters, a template must be in the path somewhere.
What does each exit cost per minute?
At 1080p, a finished minute costs $4.80 to $24.00 from Google's Veo 3.1 and $0.099 to $0.20 from Renderly. That is 24x at the closest comparison and 242x at the widest.
Google publishes Veo 3.1 prices per second, audio included, with no free tier (Gemini API pricing, read September 25, 2026). At 1080p, Standard is $0.40 per second, Fast is $0.12 and Lite is $0.08. Multiply by 60 for a minute. Our rate is $0.20 per minute on pay-as-you-go and $0.099 on the Business plan.
Here is what that means for one real video. Our Price Drop Alert template is a 27-second, 1080×1080 card. It costs 0.5 credits to render, because billing rounds up to the nearest half credit. That is $0.05 to $0.10 per video. Twenty-seven seconds from Veo 3.1 at 1080p costs $2.16 on Lite and $10.80 on Standard.
At 1080p, Google's Veo 3.1 costs $4.80 to $24.00 per finished minute on its published price list, and a template render costs $0.099 to $0.20 per minute on Renderly's published rates. For work that does not need new footage, that is a 24x to 242x difference.
Other generative models, such as Kling and Runway, sit in the same category as Veo. Check their current price pages yourself, because per-second prices in this market change often. For the full cost-at-scale arithmetic, see our template vs AI-generated video comparison, and for prices across template APIs, see the video API pricing comparison.
How do you move the calls?
The Sora Videos API was an async job API, and so is ours. So the shape of your integration does not change. Only the request body does.
| Step | OpenAI Videos API (removed) | Renderly |
|---|---|---|
| Create a job | POST /v1/videos with a prompt | POST /api/v1/renders with a templateId and replacements |
| Check status | GET /v1/videos/{video_id} | GET /api/v1/renders/{jobId} |
| Get notified | video.completed / video.failed | render.completed / render.failed |
| Get the file | GET /v1/videos/{video_id}/content | outputUrl on the completed job |
The prompt becomes a set of named values. This is the Sora-style promo from earlier, sent to the Price Drop Alert template:
curl -X POST https://renderly.video/api/v1/renders \
-H "Authorization: Bearer $RENDERLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "price-drop-alert",
"replacements": {
"product_image": "https://example.com/tote.jpg",
"product_name": "The Everyday Tote",
"product_price_was": "£185",
"product_price": "£129",
"cta_label": "Shop it now",
"cta_url": "example.com/tote"
},
"webhookUrl": "https://your-app.com/hooks/render"
}'The response gives you a jobId. When the render finishes, the webhook sends a
render.completed event, signed with HMAC-SHA256 in the X-Renderly-Signature header, with up to three delivery
attempts. The job then carries an outputUrl. Our guide to
render webhooks covers signature checks and
retries.
Two differences are worth planning for:
- You design the layout once. A prompt let the model choose the layout each time. A template makes you choose it once, in the editor or from a ready-made template. That is more work on day one and no work after it.
- A template cannot invent anything. No new camera moves, no new scenes, no footage you do not supply. If a video needs one of those, send that part down the hybrid path.
The hybrid path is two calls. Generate the clip that must be new with a generative
model, then pass its URL as a video replacement in the template. The template adds the
text, captions, voiceover and brand layout around it. You pay generative prices only for
the seconds that need them.
If your Sora calls came from an AI agent and not from your own code, the move is shorter still. Renderly has an MCP connector, so an agent can create and check renders over MCP with the same templates and the same replacements.
Model risk is a cost too
The deprecation page is its own lesson. A generative model can be removed with six months' notice and no successor, and your product then depends on a decision someone else made. A template is your own JSON. The same props render the same video next year, and if you ever move providers, the layout decisions are written down and portable.
That does not make generative models the wrong choice. For new footage, they are the only choice. But for the templated, captioned, repeatable work that a lot of Sora traffic really was, you can remove the model from the path, and with it the per-second price and the risk of another empty replacement column.
The short version
- OpenAI removed the Videos API and all Sora 2 models on September 24, 2026, and named no replacement.
- Sort your calls before you migrate them. New footage goes to another generative model. The same layout with new data goes to a template render API. Both together go down the hybrid path.
- At 1080p, generation costs $4.80 to $24.00 per minute and a template render costs $0.099 to $0.20.
- The integration shape stays the same: create a job, get a webhook, download the file.
To try the template path, pick a design from the template library and render it with the free credits every new account gets.
Frequently asked
Is the Sora 2 API still available?
Did OpenAI name a replacement for Sora 2?
What is the cheapest way to replace Sora for templated videos?
Can I still use AI-generated footage inside a template?
Related Articles

Template-Based Video vs AI-Generated Video: Which Should You Choose?
Template video vs AI video in 2026: a 1080p minute costs $0.10-$0.20 to render from a template and $4.80-$24.00 to generate with Veo 3.1. Here's the decision rule.
April 16, 2026

Video API Pricing Comparison 2026: The Real Cost Per Video
Five video APIs, every rate card re-checked in August 2026. One finished 1080p minute costs $0.10 to $1.38 depending on who you buy it from - and the credit math hides most of it.
August 14, 2026

How to Set Up Video Rendering Webhooks (Production Guide)
Video rendering is asynchronous — polling wastes 90%+ of requests. This guide covers HMAC SHA-256 signature verification, retry semantics, idempotency, and the raw-body pitfall that breaks most webhook handlers.
May 28, 2026

How to Create Videos with Claude Using Renderly's MCP Connector
Renderly is now an MCP connector. Connect it to Claude and render personalized videos by typing a sentence — here's how, plus why 10,000+ MCP servers now exist.
June 4, 2026

The Complete Guide to Automating Video Creation in 2026
Automate video creation in 2026 with templates, APIs, and AI agents. An expert production company charges about $1,000/min; a template render, $0.10-0.20.
July 28, 2026