CONTENTS — DISPATCH · 3 MIN
DISPATCH · 3 MIN READ
IN THIS ONE
3 claims
LAST VERIFIED
29 AUG 2026
OpenAI retired o3 from ChatGPT — and the API is on a completely different clock
DATELINE29 AUG 2026 — Bengaluru
o3 left ChatGPT on 26 August after a 90-day sunset. The API wasn't touched by that at all — a separate notice puts the o3 snapshots at 11 December. Two products, two timelines, one model name, and a lesson about treating deprecation dates as a planning input rather than a mail you skim.
01
o3 left ChatGPT on 26 August, ending a 90-day sunset announced on 28 May
Ninety days is the window you actually get. It's enough to migrate deliberately and not enough to migrate accidentally — which means the clock starts when you read the notice, not when you next have capacity.
02
The API was untouched by that retirement — a separate June notice sets 11 December for the o3 snapshots
o3-2025-04-16 and o3-pro-2025-06-10 come out of the API on a schedule that has nothing to do with the consumer product. If you assumed one announcement covered both surfaces, you were wrong in the safe direction this time. Next time it could be the other way.
03
o3-pro stays in ChatGPT for Pro, Team, Enterprise and Edu
The retirement was consumer-grade o3 specifically. Partial retirements are the norm now, so "is o3 gone?" has four different answers depending on which surface and which plan you mean.
This is routine housekeeping and that's exactly why it's worth reading. The interesting thing isn't o3. It's that a single model name now has at least three different end-of-life dates attached to it depending on where you're using it.
Three timelines, one name
- ChatGPT, consumer: gone as of 26 August, after a sunset announced 28 May.
- ChatGPT, Pro/Team/Enterprise/Edu: o3-pro is still there.
- API: untouched by the above. A separate developer notice from 11 June puts
o3-2025-04-16ando3-pro-2025-06-10at 11 December.
If your mental model was "OpenAI announced o3 is being retired", all three of those are surprises waiting to happen. The consumer announcement got the press coverage; the developer notice that actually affects your production traffic went out ten weeks earlier, to a different list, with a date six months further out.
OpenAI's stated reason — retiring older models with limited usage to support newer architectures — is entirely reasonable and will keep being the reason. This is now a permanent feature of building on hosted models, not an event.
The part that's actually about your code
A model identifier is a dependency with an expiry date, and almost nobody treats it like one.
You have a package.json that a tool watches for vulnerabilities and a
Dockerfile whose base image gets flagged when it goes EOL. Then you have
model: "o3-2025-04-16" sitting in a string literal in a request handler, with
no version constraint, no watcher, no notification path, and a hard removal date
that arrives whether or not anyone on the team read the email.
Three things worth doing this week, none of which take long:
- Grep for model identifiers. Every one of them, across every repo, including the ones in notebooks, in scripts, in that one Lambda. Most teams find more than they expected, and find at least one in a place nobody owns.
- Move them to config, with the pinned snapshot as the value. Pinning is still correct — you don't want a silent model change under you. Pinning in config means the migration is a deploy, not a code change.
- Keep an eval you can re-run. Twenty or thirty real inputs from your own traffic with known-good outputs. That is the entire difference between a model swap being an afternoon and being a fortnight of vibes-based comparison. It doesn't need to be sophisticated; it needs to exist before you need it.
Why this connects to the wrapper question
There's a diagnostic in the wrapper post that asks what breaks if you swap the model. A deprecation notice is that question being asked by someone else, on their schedule, with a deadline attached.
If the answer is "we change a config value and re-run the evals" — you have a product, and this news is a calendar entry. If the answer is "we don't actually know what would change" — you have a dependency you can't reason about, and the 90 days you get next time will not be enough.
The caveat worth stating
None of this is a criticism of OpenAI's process. Ninety days with a public notice is a reasonable deprecation policy, better than several providers, and the split between consumer and API timelines is the right call — those users have genuinely different switching costs.
The risk isn't the policy. It's that most teams have no mechanism for receiving it. The notice arrives by email to whoever created the account, and the string it concerns lives in a file that person may not have written.
Sources: OpenAI model release notes · what replaced o3 and when.
