Find every Sora call left in your codebase: a retired-id scan

OpenAI's Videos API shut down 2026-09-24. A 20-line Python scan lists every file still naming a retired sora-2 model id so you can swap them.

4 min readSume
All posts

Run a scan for the retired ids before you debug anything else. OpenAI's deprecations page lists the Videos API shutdown as 2026-09-24 and names sora-2, sora-2-pro, sora-2-2025-10-06, sora-2-2025-12-08 and sora-2-pro-2025-10-06; it lists no replacement (read 2026-10-03).

The scanner

The pattern puts the longest id first so a dated id is reported whole, not cut off at sora-2. It skips common vendor folders.

import asyncio, re, pathlib

IDS = [
    "sora-2-pro-2025-10-06", "sora-2-2025-12-08", "sora-2-2025-10-06",
    "sora-2-pro", "sora-2",
]
PAT = re.compile("|".join(re.escape(i) for i in IDS))
SKIP = {"node_modules", ".git", ".venv", "dist", ".next"}

async def main():
    hits = 0
    for p in pathlib.Path(".").rglob("*"):
        if not p.is_file() or SKIP & set(p.parts):
            continue
        try:
            text = p.read_text(errors="ignore")
        except OSError:
            continue
        for n, line in enumerate(text.splitlines(), 1):
            if m := PAT.search(line):
                hits += 1
                print(f"{p}:{n}: {m.group(0)}")
    print(f"{hits} hit(s)")

asyncio.run(main())

What to look for besides the model string

The id is only one coupling. Sora's request used seconds and size; Sume's POST /v1/videos uses duration and resolution, and size returns 400 unsupported_parameter. Webhook handlers and stored job ids are the other places an old integration hides.

Where Sora assumptions hide (read 2026-10-03)
PlaceSearch forSume equivalent
Request bodyseconds, sizeduration, resolution plus aspect_ratio
Model stringsora-2*bare model id from GET /v1/videos/models
Pollingvideo id lookupsGET /v1/videos/{id} or polling_url
CompletionSora event namesjob webhook with callback_url (HTTPS)

Sources

Related posts

More in Developers

All Developers posts

Written by Sume