What’s changing, and when.
OpenAI is retiring Sora in stages. Only the last one still affects code you’re running today.
March 24, 2026
Deprecation announced
OpenAI notified developers that the Videos API, along with the Sora 2 model aliases and their snapshots, would be removed.
April 26, 2026
The Sora app closed
The Sora web and mobile experiences went offline. API access carried on as normal.
September 24, 2026
The API switches off
sora-2 and sora-2-pro stop serving requests. Anything still calling them starts failing that day.
One request. The router picks the model.
Define a router config once in the developer portal, then send model-agnostic requests that reference it by id. The router drops any model that can’t meet your constraints, scores the rest against your cost, latency and quality preference, and runs the winner.
import RunwayML from '@runwayml/sdk';
const client = new RunwayML({
apiKey: process.env.RUNWAYML_API_SECRET
});
// No model named anywhere. 'preview-fast' is a router config
// you defined once in the developer portal.
const generation = client.generate.video.create({
configId: 'preview-fast',
input: {
promptText: 'A drone shot along a coastal highway at golden hour.',
aspectRatio: '16:9'
}
});
// Reported as soon as the task is created: what the router chose.
const { routing } = await generation;
console.log(routing.model, routing.provider);
// Then wait for the finished video.
const task = await generation.waitForTaskOutput();The response reports the model the router selected, its provider and the estimated cost. New models become eligible on their own, with no code change.
Make this the last migration.
Model sunsets are a normal part of this market now. The fix is not picking a better vendor to hard-code. It is not hard-coding one.
Media Router
Reference a router config instead of a model. It picks per request against your cost, latency or quality preference, and you pay the selected model’s rate with no routing markup.
New models on day zero
When a model launches, it appears behind the endpoint you already call. No new vendor, no new SDK, no new contract.
One account, one bill
Spend across every model lands in a single dashboard, so you can compare cost per output without reconciling separate invoices.
Swaps stay small
Auth, async task polling and output handling are shared across models. A model change touches config, not architecture.
The Sora API stops serving requests on September 24.
Runway Dev is live now. You can have a video generating against it today.
Built for production, not a pilot.
You’re moving a live integration on a deadline. The platform it lands on ships with the controls your security review will ask about.
99.9% uptime
The reliability target the platform is operated to.
SOC 2 Type II
Independently audited, with reports available for your security review.
No training on your data
Contractual, and negotiated with every third-party model provider on the platform.
IP indemnification
Covered for the models we serve, so legal has an answer before you ship.
You own your outputs
What you generate through the API is yours.
Content moderation
Built in, so you’re not assembling a filtering layer of your own.
Start building on Runway Dev.
One integration for the models you need now, and for the ones that replace them later.
Read the docs
