Video API shutdown runbook: six steps from the Sora removal

A six-step runbook for the day a video vendor removes its API: find calls, freeze ids, pick a replacement, port, canary, and archive. Dates from OpenAI's page.

5 min readSume
All posts

When a video vendor removes its API, do six things in order: inventory every call site, freeze new use of the old ids, choose a replacement per workload, port the client, canary a slice of traffic, and archive what the old service made. The OpenAI Sora shutdown is the current example, and each step below uses it.

OpenAI's deprecations page records that the Sora video models, including sora-2 and sora-2-pro and their dated snapshots, and the Videos API were announced for removal on 2026-03-24 and removed on 2026-09-24. The page names no replacement.

The dates and what they gave you

Six months passed between the announcement and the removal. That is the window in which an inventory, a port and a canary all fit comfortably. Teams that waited for the last week had to do all of it at once, with live traffic failing.

The lesson is not specific to one vendor. The warning period for the next removal may be shorter, so the runbook should be something you can run in days.

OpenAI Sora API timeline (OpenAI deprecations page, read 2026-10-05)
DateEvent
2026-03-24Removal announced for the Sora video models and the Videos API
2026-09-24Models and Videos API removed
After removalNo replacement named by the vendor

Steps one to three

Inventory: search code, config, prompts, CI and dashboards for the model ids. The stored scan post shows a short script for that. Freeze: stop adding new callers of the old ids the day the notice lands, and put a lint rule in CI. Choose: the replacement depends on length, aspect, audio and price. On Sume, Omni covers 3 to 10 seconds, Wan 3.0 covers 2 to 30 seconds and Seedance 2.5 covers 4 to 30 seconds, per the repo docs.

Pick per workload. A product teaser and a long ad do not need the same model.

Steps four to six

Port: replace the client with the submit, poll and download shape of the new API. On Sume, that is POST /v1/videos with an Idempotency-Key, polling until a terminal status, and downloading from unsigned_urls. Canary: send a small share of jobs to the new path and compare failures and cost. Archive: download everything the old service holds, while you can, and record the model id and prompt next to each file.

If the old service already removed the files, archive what you have in your own storage, and note the gap.

  • Keep the model id in config, not in code.
  • Write down which clips cannot be reproduced, because no seed is accepted on Sume's /v1/videos.
  • Rehearse the runbook once a year against a fake deprecation.

What Sume gives the port

The Sume video endpoint is OpenRouter-shaped, with idempotent submits and one job id for each render. That does not remove the need for a fallback chain, but it makes the second vendor a config change. The linked posts show a fallback loop and a canary.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume