Removed OpenAI video ids: the exact list and a script to find them
OpenAI removed the Videos API and five sora-2 model ids on 2026-09-24. The exact ids from its deprecations page, and a Python script that finds them in a repo.

OpenAI's deprecations page lists the Videos API and these ids as removed on 2026-09-24: sora-2, sora-2-pro, sora-2-2025-10-06, sora-2-2025-12-08 and sora-2-pro-2025-10-06. The recommended replacement column reads "---", so there is nothing to rename to. Search your repository for each id and for calls to the Videos API.
The ids (read 2026-10-04)
The page shows the announcement date of March 24, 2026 and the shutdown date of September 24, 2026.
| Item | Announced | Shutdown | Recommended replacement |
|---|---|---|---|
| Videos API | 2026-03-24 | 2026-09-24 | None listed |
| sora-2 | 2026-03-24 | 2026-09-24 | None listed |
| sora-2-pro | 2026-03-24 | 2026-09-24 | None listed |
| sora-2-2025-10-06 | 2026-03-24 | 2026-09-24 | None listed |
| sora-2-2025-12-08 | 2026-03-24 | 2026-09-24 | None listed |
| sora-2-pro-2025-10-06 | 2026-03-24 | 2026-09-24 | None listed |
Find them
This script walks a directory and prints each file, line and matching id. It reads text files only and skips common build folders.
import re
import sys
from pathlib import Path
PATTERN = re.compile(r"sora-2(?:-pro)?(?:-\d{4}-\d{2}-\d{2})?")
SKIP = {".git", "node_modules", ".next", "dist", "__pycache__"}
root = Path(sys.argv[1] if len(sys.argv) > 1 else ".")
for path in root.rglob("*"):
if not path.is_file() or SKIP & set(path.parts):
continue
try:
text = path.read_text(encoding="utf-8")
except (UnicodeDecodeError, OSError):
continue
for number, line in enumerate(text.splitlines(), 1):
for match in PATTERN.finditer(line):
print(f"{path}:{number}: {match.group(0)}")Then choose a model by need
Pick from the live listing by duration, resolution and audio, not by name. Sume's GET /v1/videos/models returns those fields for each id, and sume/auto lets Sume choose, though it does not tell you which model ran.
curl "https://api.sume.com/v1/videos/models" \
-H "Authorization: Bearer $SUME_API_KEY"What not to assume
Sume does not offer Sora under another name. A replacement renders differently, so keep your old outputs for comparison and re-test every prompt.
Sources
Related posts
More in Developers
- Replace your mocked Sora client with a Sume contract test
Tests that mocked a Sora client now guard nothing. Write a small pytest contract test around your own video interface, plus one live smoke test against Sume.
- Reproduce the same AI voiceover later: model id, voice, settings
To redo a narration line months later you need the model id, voice, language, format and settings. Sume's completed TTS job records them. A short routine.
- Restyle burned-in captions without transcribing twice
Pass source_caption_id instead of video_url to re-burn a video under a new Sume caption style. Word timings are reused, so no second speech-to-text runs.
- Resume an Omni batch after a crash with stable idempotency keys
A worker dies halfway through 40 Omni clips. Build Idempotency-Key from the item id so a rerun resubmits safely, and treat 409 and 429 as signals, not failures.
Written by Sume