---
title: "OpenAI Shuts Down GPT-5 and o3 on December 11 | Since.dev"
description: "OpenAI's API shuts down gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3 and o3-pro on December 11, 2026. Azure dates differ. What to change and test."
canonical_url: https://since.dev/guides/openai-gpt-5-o3-shutdown
last_updated: 2026-11-04
---

# OpenAI shuts down GPT-5 and o3 on December 11, 2026

On OpenAI's API, GPT-5, GPT-5 mini, GPT-5 nano, GPT-5 pro, o3 and o3-pro stop working on December 11, 2026. On Azure the same models retire on other dates, o3 earlier and GPT-5 later, so check which platform your code calls before you plan the move.

Updated November 4, 2026

## What shuts down on December 11

On June 11, 2026, OpenAI told developers that six GPT-5 and o3 models leave its API on December 11, 2026 ([OpenAI deprecations](https://developers.openai.com/api/docs/deprecations)). The short name and the dated snapshot both go: `gpt-5` and `gpt-5-2025-08-07` stop on the same day. OpenAI says a shut-down model is no longer accessible, so any call to it fails.

OpenAI's API: dates and replacements from OpenAI's deprecations page, checked Nov 4, 2026

| Model and snapshot                | Replacement                          | Shuts down   |
| --------------------------------- | ------------------------------------ | ------------ |
| gpt-5, gpt-5-2025-08-07           | gpt-5.6-sol                          | Dec 11, 2026 |
| gpt-5-mini, gpt-5-mini-2025-08-07 | gpt-5.6-terra                        | Dec 11, 2026 |
| gpt-5-nano, gpt-5-nano-2025-08-07 | gpt-5.6-luna                         | Dec 11, 2026 |
| gpt-5-pro, gpt-5-pro-2025-10-06   | gpt-5.6-sol with reasoning.mode: pro | Dec 11, 2026 |
| o3, o3-2025-04-16                 | gpt-5.6-sol                          | Dec 11, 2026 |
| o3-pro, o3-pro-2025-06-10         | gpt-5.6-sol with reasoning.mode: pro | Dec 11, 2026 |

The dated snapshots `gpt-5-2025-08-07` and `gpt-5-mini-2025-08-07` alone show up in about 170,000 public GitHub files (GitHub's code search count, November 2, 2026, approximate, Azure users included). So this one reaches a lot of code.

One thing that can confuse you: OpenAI's `gpt-5` [model page](https://developers.openai.com/api/docs/models/gpt-5) points to GPT-6 Astra as its latest model. The replacements in the table are the ones the deprecation notice names, so that's what we use here.

## On Azure, the dates are different

If you call these models through Azure (Microsoft Foundry), OpenAI's date doesn't apply. Microsoft keeps its own [retirement schedule](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule). It's earlier than OpenAI's for o3 and later for the GPT-5 family.

Azure OpenAI: dates and replacements from Microsoft's retirement schedule, checked Nov 4, 2026

| Model and version           | Retires on Azure | Microsoft's replacement |
| --------------------------- | ---------------- | ----------------------- |
| o3 2025-04-16               | Nov 19, 2026     | gpt-5.6-sol             |
| o3-pro 2025-06-10           | Nov 19, 2026     | gpt-5.6-sol             |
| o1 2024-12-17               | Nov 19, 2026     | gpt-5.6-sol             |
| o1-pro 2025-03-19           | Nov 19, 2026     | gpt-5.6-sol             |
| o3-mini 2025-01-31          | Nov 19, 2026     | gpt-5.6-terra           |
| o3-deep-research 2025-06-26 | Nov 19, 2026     | gpt-5.6-sol             |
| o4-mini 2025-04-16          | Nov 19, 2026     | gpt-5.6-terra           |
| gpt-5 2025-08-07            | Feb 9, 2027      | None listed             |
| gpt-5-nano 2025-08-07       | Feb 9, 2027      | None listed             |
| gpt-5-pro 2025-10-06        | Apr 7, 2027      | None listed             |
| gpt-5-mini 2025-08-07       | Jul 13, 2027     | None listed             |

- `o3` and `o3-pro` retire on Azure on November 19, 2026, before OpenAI's December 11 date ([Microsoft](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule)). On Azure, that's your deadline.
- On OpenAI's API, `o1`, `o1-pro`, `o3-mini` and `o4-mini` already shut down on October 23, 2026, and `o3-deep-research` on July 23, 2026 ([OpenAI deprecations](https://developers.openai.com/api/docs/deprecations)). On Azure they still run until November 19, 2026.
- The GPT-5 family runs longer on Azure: `gpt-5` and `gpt-5-nano` until February 9, 2027, `gpt-5-pro` until April 7, 2027 and `gpt-5-mini` until July 13, 2027 ([Microsoft](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule)). Microsoft's schedule lists no replacement for them.

## Check which platform your code calls

The same model ID can carry two dates. Before you plan anything, find out where each call actually goes.

- The `OpenAI` client calls OpenAI's API unless you give it another base URL. The Python SDK also reads `OPENAI_BASE_URL` from the environment ([openai-python](https://github.com/openai/openai-python)), so check your env files, not only the code.
- The `AzureOpenAI` client, an `AZURE_OPENAI_ENDPOINT` variable or an endpoint on an `azure.com` host means Azure ([openai-python](https://github.com/openai/openai-python)).
- Wrappers hide this, so read how they're set up, not only the model string. LangChain, for example, has separate `ChatOpenAI` and `AzureChatOpenAI` classes.
- If you call both, say OpenAI in development and Azure in production, plan for whichever date comes first.

## Find every place your code names them

Search the whole repository, not only the source folders. These two ripgrep searches catch the short names and the dated snapshots, and skip newer models that share a prefix, like `gpt-5.6-sol` or `o3-mini`:

```
rg -nP '\bgpt-5(-(mini|nano|pro))?(-[\d-]{10})?(?![\w.-])'
rg -nP '\bo3(-pro)?(-[\d-]{10})?(?![\w.-])'
```

Then check the places a search misses or people forget:

- Config and env files: `.env`, `.env.example`, YAML and JSON settings, Helm values. A line like `OPENAI_MODEL=gpt-5` counts.
- Values that live outside the repo: CI secrets and variables, your host's environment settings, feature flags, and database rows where users or admins pick a model.
- Names built at runtime. `f"gpt-5-{size}"` never matches a search for `gpt-5-mini`. Run a loose search for `gpt-5` and `o3` too, and read the hits.
- Evals, test fixtures and recorded API responses. They often pin the old ID, and they'll fail or go stale after the switch.
- Docs, notebooks and code samples people copy from.
- Azure infrastructure files: Bicep, ARM templates or Terraform that create deployments. Search those for the model name and its version too, for example `2025-04-16` for `o3`.

## What to test before you switch

Changing the ID is one line. The behavior behind it isn't. Run a set of real requests through the old and new model and compare them side by side. We suggest 50 to 100 recent ones from your logs, covering your main use cases.

- Output format. If you parse the output, check every parser: JSON, markdown, fixed labels. Length and tone change too, which matters when people read the answer directly.
- Tool calls. Check the new model calls the same tools with the same argument shapes and handles your error results. Watch for calls it makes that the old one didn't.
- Reasoning effort. `gpt-5` accepts `minimal`, `low`, `medium` and `high` ([OpenAI's model page](https://developers.openai.com/api/docs/models/gpt-5)). The 5.6 models list `none`, `low`, `medium`, `high`, `xhigh` and `max`, with `medium` as the default (`gpt-5.6-sol` [model page](https://developers.openai.com/api/docs/models/gpt-5.6-sol)). If your code sends `minimal`, pick another value and test it.
- Pro mode. For `gpt-5-pro` and `o3-pro`, set `reasoning.mode` to `pro` on `gpt-5.6-sol`. It's a Responses API setting, and OpenAI says it uses more tokens and costs more than standard mode ([reasoning guide](https://developers.openai.com/api/docs/guides/reasoning)).
- Cost. Reasoning tokens are billed as output tokens ([reasoning guide](https://developers.openai.com/api/docs/guides/reasoning)). Compare total tokens per request on your test set, rather than the price per token alone.
- Speed and limits. Time the slow cases, and check your account's rate limits for the new model before you move all your traffic.
- Rollout. Ship behind a flag or to a share of traffic first (our suggestion: 10% for a day), and keep the old ID ready to switch back to until the shutdown date.

## On Azure, you move the deployment

With the `AzureOpenAI` client, the `model` argument is your deployment name ([openai-python](https://github.com/openai/openai-python)). You picked that name when you created the deployment. It might be `gpt-5`, or it might be `chat-prod`. The model and its version live on the deployment, not in your code.

So a code search can miss Azure usage entirely. List your deployments with the [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/cognitiveservices/account/deployment) and read each one's model name and version:

```
az cognitiveservices account deployment list \
  -g my-group -n my-account
```

1. Create a new deployment of the replacement. For `o3`, Microsoft lists `gpt-5.6-sol`.
2. Run your test set against the new deployment.
3. Point your config at the new deployment name, or move a share of traffic first.
4. Remove the old deployment once nothing calls it.

If your deployment names match model names, rename on the way. A deployment called `gpt-5` that runs `gpt-5.6-sol` will trip up the next person who reads the config.

## Where Since.dev fits

Since.dev tracks every model's retirement on each platform that serves it, from the publishers' own pages, and matches the date to the platform your code calls. OpenAI's dates are on the [OpenAI retirement calendar](https://since.dev/calendar/openai.md).

- For a repository you scan or connect, it finds the exact file and line that names the model, with the days left and the replacement. You can [scan any public GitHub repository](https://since.dev/scan.md) without signing in.
- A coding agent can call `check_code` with a model ID through the [MCP server](https://since.dev/docs.md#mcp).
- On Team and up, it opens a fix pull request that swaps the model, ready for review. Your CI runs, people decide, and nothing merges or deploys.
- On Azure the move is the deployment's, so it says what to change instead of opening a pull request.

## Questions

### Does the gpt-5 alias shut down too, or only the dated snapshot?

Both. OpenAI's notice lists `gpt-5` together with `gpt-5-2025-08-07`, and the same goes for the mini, nano and pro pairs and for `o3` and `o3-pro`. All of them stop on December 11, 2026.

### When does o3 retire on Azure?

November 19, 2026, along with `o3-pro`, `o1`, `o1-pro`, `o3-mini`, `o3-deep-research` and `o4-mini`. That's earlier than OpenAI's December 11 date, so on Azure you have less time.

### What replaces gpt-5-pro and o3-pro?

`gpt-5.6-sol` with `reasoning.mode` set to `pro`, in the Responses API. Pro mode uses more tokens than standard mode, so check the cost on your own requests first.

### What happens if I miss the date?

OpenAI says a shut-down model is no longer accessible. Calls to it fail, so anything still using it stops working until you ship the new ID.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
