OpenAI shuts down GPT-4 and o1 on October 23: what to do
By Nihar Ranjan Das · Sat Oct 17 2026 · 9 min read · 0 views
View as a Web StoryAI#openai#API migration#gpt-4#o1#deprecation

OpenAI shuts down GPT-4 and o1 on October 23: what to do
Which OpenAI models shut down on October 23, 2026?
Eleven model groups go dark on October 23, 2026, plus six fine-tuned families. After that date, OpenAI's deprecations page says the model or endpoint will no longer be accessible. The page does not state which error code your application will receive, so build the fallback before the date, not after it.
The OpenAI API is the paid interface developers use to call OpenAI models from their own software. Models in it carry dated snapshot names, and an alias like gpt-4 points at one snapshot. When a snapshot is retired, every alias pointing at it goes with it.
Here is the full October 23 list with the replacement OpenAI recommends:
| Retiring model (and aliases) | Recommended replacement |
|---|---|
gpt-3.5-turbo-0125 (gpt-3.5-turbo) |
gpt-5.6-terra |
gpt-4-0613 (gpt-4) |
gpt-5.6-sol |
gpt-4-1106-preview |
gpt-5.6-sol |
gpt-4-turbo (gpt-4-turbo-2024-04-09) |
gpt-5.6-sol |
gpt-4.1-nano-2025-04-14 |
gpt-5.6-luna |
gpt-4o-2024-05-13 |
gpt-5.6-sol |
o1-2024-12-17 (o1) |
gpt-5.6-sol |
o1-pro-2025-03-19 (o1-pro) |
gpt-5.6-sol with reasoning.mode: pro |
o3-mini-2025-01-31 (o3-mini) |
gpt-5.6-sol |
o4-mini-2025-04-16 (o4-mini) |
gpt-5.6-terra |
gpt-image-1 |
gpt-image-2.5-sunburst or gpt-image-2.5-flare |
Source: OpenAI deprecations page, read October 16, 2026.
Notice one detail: only the May 2024 snapshot of GPT-4o is on the list. The current gpt-4o pricing entry is not on the shutdown table. Do not assume every GPT-4o call is affected, but do check which snapshot your code names.
Which fine-tuned models shut down the same day?
Six fine-tuned families shut down on October 23: ft-gpt-3.5-turbo, ft-gpt-4, ft-gpt-4.1-nano-2025-04-14, ft-babbage-002, ft-davinci-002 and ft-o4-mini-2025-04-16. OpenAI points each to a replacement base model, not to a drop-in endpoint.
Fine-tuning is the process of training a base model further on your own examples. That difference is the whole problem. A fine-tune is a copy of a base model trained on your examples. When the base model retires, the copy goes with it. You cannot point the old fine-tune name at a new model, because the new model never saw your training data.
You have two realistic paths. First, test the recommended base model with a good prompt and few-shot examples, and skip fine-tuning if quality holds. Second, start a new fine-tuning job on a supported base. Check OpenAI's fine-tuning guide for which current models accept fine-tuning, because we could not confirm that for the gpt-5.6 family.
Either way, start now. Collecting a clean evaluation set takes longer than the migration itself.
What will the replacements cost you?
Some replacements cost much less, and some cost four to five times more. The answer depends on which model you leave. OpenAI's pricing page lists the standard rates per million tokens, and we applied one fixed workload to them.
Advertisement
We built the table with a short script and checked every row against the pricing page twice. The workload is 10 million input tokens and 2 million output tokens per month. It is a small production chatbot or a nightly batch job. The table shows the monthly bill before and after.
| Old model | Old price (in / out per 1M) | Replacement | New price (in / out per 1M) | Old monthly | New monthly | Change |
|---|---|---|---|---|---|---|
gpt-4 (0613) |
$30 / $60 | gpt-5.6-sol |
$4 / $20 | $420 | $80 | -81% |
gpt-4-turbo |
$10 / $30 | gpt-5.6-sol |
$4 / $20 | $160 | $80 | -50% |
o1 |
$15 / $60 | gpt-5.6-sol |
$4 / $20 | $270 | $80 | -70% |
o3-mini |
$1.10 / $4.40 | gpt-5.6-sol |
$4 / $20 | $19.80 | $80 | +304% |
o4-mini |
$1.10 / $4.40 | gpt-5.6-terra |
$2 / $12 | $19.80 | $44 | +122% |
gpt-3.5-turbo |
$0.50 / $1.50 | gpt-5.6-terra |
$2 / $12 | $8 | $44 | +450% |
gpt-3.5-turbo |
$0.50 / $1.50 | gpt-5.6-luna |
$0.20 / $1.20 | $8 | $4.40 | -45% |
gpt-4.1-nano |
$0.10 / $0.40 | gpt-5.6-luna |
$0.20 / $1.20 | $1.80 | $4.40 | +144% |
Source: prices from OpenAI's pricing page, short-context standard tier, October 16, 2026; monthly figures computed by NiharDaily. Reasoning models also bill hidden reasoning tokens as output, so real bills for o1, o3-mini and o4-mini can differ.

The surprise is on the cheap end. The old budget models, gpt-3.5-turbo and gpt-4.1-nano, are cheaper than every replacement except gpt-5.6-luna. Following the recommended mapping for gpt-3.5-turbo multiplies the bill by 5.5. Sending it to gpt-5.6-luna instead cuts it by 45%.
One caveat applies to Sol. The pricing page states that GPT-5.6 Sol's promotional pricing is available at least through November 21, 2026. It does not say whether the listed $4 and $20 are the promotional rates. A Q3 pricing tracker from Digital Applied records Sol at $4 and $20 as a promotion, down from $5 and $30. If that tracker is right, plan for a higher rate after the promotion ends.
Which replacement should you pick?
Pick the OpenAI replacement by task, not by OpenAI's mapping. The mapping is a safe default for behavior, but it is not the cheapest choice. Test two candidates on your own prompts before deciding.
GPT-5.6 Sol, Terra and Luna are OpenAI's three current API tiers, ranked from most to least capable, and each costs less than the one above it. Use this rule of thumb:
- Simple classification, extraction or routing (old
gpt-3.5-turbo,gpt-4.1-nano): testgpt-5.6-lunafirst. It costs $0.20 and $1.20 per million tokens. - Mid-range chat and tool use (old
o4-mini, somegpt-4-turbotraffic): testgpt-5.6-terraat $2 and $12. - Hard reasoning or code (old
o1,gpt-4,o3-mini): usegpt-5.6-sol, and budget for the end of the promotion. - Pro-mode reasoning (
o1-pro): usegpt-5.6-solwithreasoning.mode: pro, as the table states.
For example, a support bot that tags tickets by topic needs luna, not sol. A code-review agent that catches subtle bugs needs sol. We covered how to price that choice in Which AI model should write your code? Price per task, and how tokenizers change a bill in Claude's 30% token inflation: does your bill actually rise?
For EU teams, a model swap can also change the technical documentation you keep if your system falls under Regulation (EU) 2024/1689, the EU AI Act. Update that file when the model name changes.
Treat the price per task as the real metric. A cheaper model that needs two retries costs more than a stronger one that answers once.
How do you find every affected call in your codebase?
Search for the model strings, then check the places a search will miss. A repository grep finds hard-coded names in code, such as model="gpt-4". Environment variables, config tables and dashboards hold the rest.
Start with this:
grep -rnE "gpt-3\.5-turbo|gpt-4(-turbo|-0613|-1106-preview|o-2024-05-13)?\b|gpt-4\.1-nano|\bo1(-pro)?\b|o3-mini|o4-mini|gpt-image-1\b|ft:gpt|ft-" \
--include=*.py --include=*.ts --include=*.js --include=*.go --include=*.yaml --include=*.json --include=.env* .
The pattern is deliberately broad, so expect a few false hits. Read each one. Then look in four more places:
- Environment and secrets. A variable like
OPENAI_MODELcan hide the name from your repository. - Third-party tools. LangChain configs, no-code automations and IDE plugins often pin a model.
- Database rows. Some apps store the model name per customer or per prompt.
- Usage logs. The OpenAI dashboard shows which models your key called this month. That is the ground truth.
Consider a SaaS app with twelve prompt templates. Three of them may name gpt-4 in a database column, which the grep never sees. The usage log shows all three.
After you find the calls, add a fallback. Wrap the model name in one config value so the next retirement is a one-line change.
How do you test a replacement before you switch?
Replay real prompts through the old and new model, and score the answers against a fixed rule. A sample of 50 prompts is enough to catch most regressions in a day. Use traffic from your own logs, not made-up examples.
Follow this method:
- Export 50 recent prompts, chosen to cover your busiest routes and your known hard cases.
- Run each prompt through the old model now, while it still works, and save the answers.
- Run the same prompts through the candidate and through one cheaper alternative.
- Score each answer with a pass or fail rule you can check by code, such as valid JSON, a correct label or a passing unit test.
- Compare pass rates and monthly cost. Pick the cheapest model that matches the old pass rate.
Step 2 has a deadline. After October 23 you can no longer collect baseline answers from the retired models. Save them this week.
Keep the mapping in configuration, not scattered through code. A short example in Python shows the idea:
MODEL_FOR_ROUTE = {
"classify": "gpt-5.6-luna",
"chat": "gpt-5.6-terra",
"code_review": "gpt-5.6-sol",
}
FALLBACK = "gpt-5.6-terra"
def model_for(route: str) -> str:
return MODEL_FOR_ROUTE.get(route, FALLBACK)
The names come from the replacement table above. With this shape, the next retirement edits one dictionary. It also lets you roll out by route, so a classification job can move to Luna on Monday while code review waits for its test results.
What else shuts down in the next two months?
Several products and a second model wave follow October 23. The dates matter because a replacement chosen today should survive them. OpenAI lists these on the same deprecations page.
| Date | What ends | What to do |
|---|---|---|
| Oct 23, 2026 | Models and fine-tunes above | Migrate and re-test |
| Oct 31, 2026 | Existing Evals become read-only | Export your eval data |
| Nov 30, 2026 | Evals dashboard and API, Agent Builder, v1/prompts API |
Move to the OpenAI Agents SDK or Promptfoo; put prompts in code |
| Dec 1, 2026 | gpt-image-1-mini, gpt-image-1.5, chatgpt-image-latest |
Move to gpt-image-2.5-sunburst or -flare |
| Dec 11, 2026 | gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3, o3-pro |
Target gpt-5.6 models now |
Source: OpenAI deprecations page, October 16, 2026.

Two items catch teams off guard. The v1/prompts API and reusable prompt objects shut down on November 30, and OpenAI says migration means moving the prompt content into application code. Existing evals turn read-only on October 31, a month before the dashboard disappears.
However, the December 11 wave is the reason to move straight to a gpt-5.6 model. The deprecations page lists gpt-5-2025-08-07 and o3-2025-04-16 among the retirements on that date. Migrating gpt-4 to gpt-5 today would force a second migration within two months.
A fallback that routes between models is the same pattern we described in Agentic AI architecture: five patterns and what each costs. Use it here so the next retirement is a config change.
What should you do this week?
How should a small team use the seven days left? Do these five steps in order, and finish before October 23. The first two take an hour. The last three take longer, so start them now.
- Pull a list of models called in the last 30 days from your usage dashboard.
- Run the grep and the four extra checks to find every code path.
- Pick a replacement for each model with the table, then test it against 50 real prompts.
- Move the model name into configuration and deploy with a staged rollout.
- For fine-tunes, decide between a prompt-based replacement and a new fine-tuning job.
If you cannot finish in time, prioritize by traffic. Move the highest-volume path first, then add a fallback so the application degrades gracefully instead of failing. The deprecations page does not state the post-shutdown error, so your code should treat any model-not-found response as a trigger for the fallback.
Advertisement
FAQ
What happens to my API calls after October 23, 2026?
OpenAI says the model or endpoint will no longer be accessible at the time of shutdown. The deprecations page does not specify the error code. Handle any model-not-found or similar error by routing to a fallback model, and test that path before October 23.
Which model replaces gpt-4 and gpt-4-turbo?
OpenAI recommends `gpt-5.6-sol` for `gpt-4-0613`, `gpt-4-1106-preview` and `gpt-4-turbo`. At the standard rate of $4 and $20 per million tokens, our 10-million-in, 2-million-out workload falls from $420 to $80 for `gpt-4` and from $160 to $80 for `gpt-4-turbo`.
Can I keep using my fine-tuned GPT-4 or GPT-3.5 model?
No. Fine-tuned models such as `ft-gpt-4` and `ft-gpt-3.5-turbo` shut down on October 23, 2026, with their base models. You need a new fine-tuning job on a supported base model, or a prompt-based replacement. Start by testing the recommended base model without fine-tuning.
Is the replacement for gpt-3.5-turbo cheaper?
It depends on the choice. OpenAI recommends `gpt-5.6-terra`, which raises our sample monthly bill from $8 to $44. The cheaper `gpt-5.6-luna` brings it to $4.40. Test luna on your prompts first, because quality differs by task.
What else does OpenAI shut down in late 2026?
Evals become read-only on October 31. The Evals dashboard and API, Agent Builder and the `v1/prompts` API end on November 30. Several image models end on December 1. The gpt-5, o3 and o3-pro models end on December 11.
Comments
Loading…
Sign in to join the conversation.
Related posts

Is your Go MCP server open to DNS rebinding? Check v1.4.0
CVE-2026-34742: Go MCP SDK before 1.4.0 accepts any Host header on localhost HTTP servers. We tested v1.3.1, v1.4.0 and v1.8.0, and show the fix and a proxy trap.
Sat Oct 17 2026 · 9 min read · 0 views

Nano Banana Pro or 2.1: which image model to pay for
Nano Banana Pro costs 2 to 4 times more per image than Nano Banana 2.1. Google's own prices, cost per 1,000 images, and the break-even point where Pro pays for itself.
Sat Oct 17 2026 · 8 min read · 0 views

Veo 3.1 or Gemini Omni Flash: what 30 seconds of video costs
Veo 3.1 Standard costs 4x Gemini Omni Flash per second at 720p. Google's rates, the cost of a finished 30-second video with retries, and the break-even rule.
Sat Oct 17 2026 · 8 min read · 0 views