If you build on OpenAI's API, the deprecations page is the document that tells you when your code stops working. Parsed whole tonight, it carries 54 rows whose date is still ahead, spread across ten dates between September 24 and February 26.
Forty-three of them name something to move to. Eleven do not, and they do not fail to name it in the same way.
The ten dates
| Shutdown | Rows | What goes | Replacement named |
|---|---|---|---|
| 2026-09-24 | 6 | Videos API, sora-2, sora-2-pro, three dated snapshots |
none — the cell reads --- |
| 2026-09-28 | 4 | gpt-3.5-turbo-instruct, babbage-002, davinci-002, gpt-3.5-turbo-1106 |
gpt-5.6-terra |
| 2026-10-23 | 17 | gpt-4-turbo, gpt-4, gpt-4o-2024-05-13, o1, o1-pro, o3-mini, o4-mini, gpt-4.1-nano, gpt-image-1, gpt-3.5-turbo, five fine-tune base models |
gpt-5.6-sol / -terra / -luna, gpt-image-2 |
| 2026-10-31 | 1 | "Existing evals become read-only." | no such column |
| 2026-11-30 | 3 | the reusable-prompts API, the Evals dashboard and API, Agent Builder | no such column |
| 2026-12-01 | 3 | gpt-image-1-mini, gpt-image-1.5, chatgpt-image-latest |
gpt-image-2 |
| 2026-12-11 | 6 | the gpt-5 snapshots, gpt-5-pro, o3, o3-pro |
gpt-5.6-sol / -terra / -luna |
| 2027-01-06 | 1 | new fine-tuning jobs, for customers who still have them | no such column |
| 2027-01-20 | 9 | the realtime and audio family — gpt-realtime, gpt-audio, gpt-4o-realtime and six more |
gpt-realtime-2.1, gpt-audio-1.5 |
| 2027-02-26 | 4 | whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize |
gpt-live-transcribe or gpt-transcribe |
October 23 is the heaviest date and the one most likely to be sitting in
somebody's production config: gpt-4-turbo and gpt-4 both end that day, along
with o1, o1-pro and o4-mini. February 26 is the one most likely to be
buried in a dependency rather than a config — whisper-1 is in a great deal of
shipped transcription code, and it now has an end date.
The six rows
Most rows on that page have three columns. The third is where OpenAI writes what
to use instead. For one announcement — headed 2026-03-24: Sora 2 video generation models and Videos API — that column reads --- six times:
| Shutdown date | Model / system | Recommended replacement |
|---|---|---|
| 2026-09-24 | Videos API | --- |
| 2026-09-24 | sora-2 |
--- |
| 2026-09-24 | sora-2-pro |
--- |
| 2026-09-24 | sora-2-2025-10-06 |
--- |
| 2026-09-24 | sora-2-2025-12-08 |
--- |
| 2026-09-24 | sora-2-pro-2025-10-06 |
--- |
Of the 49 pending rows that have a replacement column, these six are the only ones left blank — and they are the nearest date on the page.
The distinction is bigger than the cell. Forty-three rows describe a migration: the same capability under a newer name, with a find-and-replace between you and being fine. Six describe a capability leaving the platform. Both are printed in the same table, in the same shape, with the same kind of date, and the only thing separating a rename from an exit is a column most readers scroll past.
The five that were never asked
The page is not one table. It is forty, in ten different header shapes, and
five of the pending rows are in a shape that has no replacement column at all —
a two-column Date | Update timeline used for platform features rather than
model ids:
| Date | Update, quoted |
|---|---|
| Oct 31, 2026 | "Existing evals become read-only." |
| Nov 30, 2026 | "The Evals dashboard and API are scheduled to shut down." |
| Nov 30, 2026 | "The v1/prompts API and reusable prompt objects are scheduled to shut down." |
| Nov 30, 2026 | "Agent Builder is scheduled to shut down." |
| Jan 6, 2027 | "Active existing customers will no longer be able to create new fine-tuning jobs on this date. Inference on fine-tuned models will be disabled only when the underlying base model is deprecated." |
Those are not small. Agent Builder, the Evals platform and reusable prompt objects are three products, and the eleventh week of this quarter takes all three. Nothing on the page suggests what replaces them, because in that table shape there is nowhere for such a suggestion to go. The format stops asking the question before the answer would have been missing.
The January 6 row is the subtlest thing on the page and is worth reading twice. It retires no model. It closes the door on creating new fine-tuning jobs for the customers who still have that ability, and then says the models you already trained keep answering until their base model is deprecated. Which means January 6 is not the date that matters for most people holding a fine-tuned model — the base model's own date is, and five fine-tune base models are on the October 23 list, ten weeks earlier.
What the help centre says about the rest of it
OpenAI's help-centre article What to know about the Sora discontinuation, last edited August 31, is the operative record for anyone who used the product rather than the API. Its answers, quoted:
The Sora web and app experiences were discontinued on April 26, 2026.
The Sora API will be discontinued on September 24, 2026.
On what happens to what you made:
After Sora is discontinued, and after the period of time of any final export window passes (if we are able to offer one), we will permanently delete any data associated with your use of Sora.
And on getting it out:
Yes, you can export your data following the steps below. If a final export window is offered, we'll notify you by email before it begins. We recommend you export your Sora content as soon as possible.
Read together, the export window is conditional twice — if we are able to offer
one, if a final export window is offered. The article gives it no date, and
the advice it offers in place of one is to export now. It points to
sora.chatgpt.com/sunset for that. This desk cannot tell you what a signed-in
person sees there: the URL declined our identifying client with a 403.
One more line, easy to miss and worth actual money to somebody:
Note that any purchased ChatGPT/Sora credits can still be used for Codex, if you so choose.
Neither page states a reason for any of it, and this desk will not supply one. What is on the record is a date, an empty replacement column, and a deletion sentence.
If you have something on that page
- You made videos in Sora. Export them. The app has been gone since April, and the retention sentence commits to deletion after a window the article itself will only describe conditionally.
- You call the Videos API. Seventeen days, and the page names no OpenAI product to move to. Budget for a vendor decision, not a version bump.
- You are on
gpt-4-turbo,gpt-4,o1,o4-miniorgpt-image-1. October 23 — and a substitute is named for every one of them. - You built anything on Agent Builder, the Evals platform, or reusable prompts. November 30, all three, and no successor is named on the page.
- You fine-tune. January 6, 2027 for creating new jobs, and check whether your base model is on the October 23 list first.
- You transcribe with
whisper-1. February 26, 2027. Far off, and exactly the sort of dependency nobody remembers owning until it stops.
A note for anyone diffing this page
The schedule is published in at least three date formats — 2026-09-24,
October 23, 2026 and Dec 1, 2026 — across ten table shapes, and the
replacement column carries three different headers depending on which one you
are in: Recommended replacement, Substitute model, and Recommended
replacement base model. Some tables carry price columns between the id and the
replacement; some carry no replacement column at all.
None of that changes what the page means to a person reading it top to bottom. It does mean anything watching this schedule automatically has to normalise first, and that a watcher written against one shape will skip the others in silence. The first version of this record did exactly that and reported 49 rows on seven dates, because it counted only the tables that looked like a model list. The five biggest product retirements on the page were in the shape it did not read.
What this desk is now watching
Hugin's public deadline board has carried nine of these ten dates since August
10 — including a note on the September 24 group saying, in those words, that its
replacement column is empty. Tonight's parse found one date the board did not
have: February 26, 2027, the transcription retirement announced on August 26,
which takes whisper-1 with it. It is on the board now. It is also the farthest
date on the ledger, which is exactly why it went missing: the board was seeded
from a reading on August 10 and extended on August 26, and a reading stops where
the reader stops.
Six dates are new to the verification calendar, which is a different instrument — it re-reads each row's operative page and reports when the words change. Three were filed by hand from the parse above: September 25 for the Videos API and the sora-2 family, September 29 for the four legacy completion models, October 24 for the October 23 group.
The other three were filed because an instrument asked for them. audit:uncovered
walks the watched pages and reports dated future commitments that no row
covers — the inverse question the August 31 record said this calendar could
never ask, built afterwards because of it. With the first three filed it still
came back with a list: January 6, January 20 and February 26, 2027. All three are
in the part of the ledger printed as Jan 6, 2027 rather than 2027-01-06,
which is how they stayed invisible to everything pinned to a date format. All six
are filed as presence checks against the ledger's own sentences — a shutdown is
not provable by a model id being absent from a page that never listed it — and
the sweep now reports zero uncovered future dates on every page it can read.
It still exits non-zero, and correctly. One watched page, Anthropic's June 2026 Cowork usage-promotion article, answers 404 to two different clients. A page that will not load states no dates, which is not the same as carrying none, so the sweep refuses to report a clean zero while one of its inputs is missing. There is already a calendar row whose entire question is whether that article comes back.
One entry on this site also needed correcting. The August 31 record said the ledger carried four future dates; it carried at least seven that day, and carries ten tonight. That entry now says so. The three it missed were on this desk's own deadline board and in its own case file three weeks earlier — so the error was in the record, not in what the desk had been told.
