# Model versions

> A model version is one fixed release of a model, named by a model ID. An alias is a shorter name that points to a version, and the provider can move it to a newer one.

Know which model your product calls, and move before it shuts down.

Track: Foundations
Card: https://buildsparkai.com/model-versions
Plain text: https://buildsparkai.com/model-versions.md
Last checked: 2026-10-26

## What it is

Each request names a model. Some names stay fixed and some can move. A snapshot is one fixed release. Anthropic's versioning page says the model behind a Claude model ID stays the same for that ID's lifetime. An alias is a name that points to a snapshot, and the provider can move it. Gemini's models page says its -latest aliases are hot-swapped with each new release, and that most production apps should use a specific stable model. OpenAI's Deprecations page lists names that point to dated snapshots.

## Why it matters

**Cost.** A new version can count the same text as a different number of tokens. [Anthropic's models overview](https://platform.claude.com/docs/en/about-claude/models/overview) says 1M tokens is roughly 555k words on the tokenizer introduced with Claude Opus 4.7. Models before it fit about 750k words. Re-forecast before you switch. This card does not copy a rate.

**Quality.** The same prompt can get a different reply on a new version. [Anthropic's deprecations page](https://platform.claude.com/docs/en/about-claude/model-deprecations) says a new model can reject a deprecated setting. Even a fixed ID can shift a little. [Anthropic's versioning page](https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions) says serving changes, such as safety classifiers, can cause minor differences.

**Risk.** After the shutdown date, requests fail. Notice varies. [OpenAI's Deprecations page](https://developers.openai.com/api/docs/deprecations) gives at least 6 months on generally available models, and previews may get about 2 weeks. [Anthropic's page](https://platform.claude.com/docs/en/about-claude/model-deprecations) gives at least 60 days on publicly released models. OpenAI's page allows less when safety or compliance requires it.

## Try today

List every model name your code and config send. Mark each one alias or snapshot, using your provider's models page. Look up each one's shutdown date on the deprecations page of the provider or platform you call. Pin any alias that serves your users to a snapshot you have tested.

## Common mistake

Shipping on an alias, then finding that replies changed when it moved. Pin the snapshot you tested, and move on purpose.

## Self-check

Your code sends writer-2 , an alias for the newest writer-2 snapshot. What can happen with no change on your side?

Replies come from a newer release

## Understand it: how providers name, move and retire versions

5 min, optional

The words differ by provider. The routine stays the same: know your names, know the dates, and test before you move.

### The same words, different meanings

[OpenAI's Deprecations page](https://developers.openai.com/api/docs/deprecations) says a model is deprecated as soon as its retirement is announced. It uses "sunset" and "shut down" for the same thing: no longer accessible. "Legacy" means no more updates. [Anthropic](https://platform.claude.com/docs/en/about-claude/model-deprecations) uses Active, Legacy, Deprecated and Retired. [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html) uses Active, Legacy and End-of-Life (EOL). [Gemini's deprecations page](https://ai.google.dev/gemini-api/docs/deprecations) says its listed shutdown dates are the earliest possible dates.

### How much notice you get

OpenAI gives at least 6 months on generally available models, at least 3 months on specialized variants, and much shorter notice, such as 2 weeks, on previews. Anthropic gives at least 60 days on publicly released models. [Gemini's models page](https://ai.google.dev/gemini-api/docs/models) says previews are deprecated with at least 2 weeks' notice, and a `-latest` alias gets 2 weeks' email notice before a breaking change. For models launched under its current policy, Bedrock's Legacy period is 6 months or 45 days. For Azure OpenAI models, [Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/model-versions) gives at least two weeks' notice before a new version becomes the default.

### Same model, another platform, other dates

Anthropic's dates apply to the platforms Anthropic operates. Amazon Bedrock and Google-managed Google Cloud set their own. Bedrock's page says only the dates on its model card apply there, and that migration will not happen automatically. Once a Bedrock model is Legacy, new customers can't adopt it, and existing customers may lose access after 15 days of inactivity.

### Names that move for you

Gemini's `-latest` aliases move with each release. In Microsoft Foundry, each Standard deployment has an upgrade policy. Opted out, it stops working when the model retires. Otherwise it moves to the new default version, or when the current one expires. Gemini's deprecations page also lists an old name that keeps answering from a newer model: `gemini-3.5-flash` routes requests to `gemini-3.6-flash`.

Model note, last checked 2026-11-01.

### Fine-tuned models

OpenAI's page says inference on fine-tuned models is disabled only when the underlying base model is deprecated. Bedrock's page says you can't start new fine-tuning jobs on a model once it is Legacy. Plan a fine-tuned model's move with its base model's dates.

### Watch for dates in code

OpenAI's List models endpoint can return a `shutdown_date` for each model. Bedrock returns a `modelLifecycle` field from `GetFoundationModel` and `ListFoundationModels`. Anthropic's Console can export usage by API key and model, so you can find calls to a deprecated model.

### Check yourself

**Your product calls one alias and one snapshot. Name one risk for each.**

Answer:

The alias can move to a new release with no deploy, so replies can change. The snapshot stays the same, but stops answering on its shutdown date.

## Practice and deep

Example: made up to show the idea.

Scripted, not a live model. Nothing is sent, and nothing leaves this page.

Replay five recorded requests before you rename.
Northline Desk is a made-up support product. It calls the made-up snapshot desk-writer-2-0301. The replacement is desk-writer-3-0901. Shutdown is in 40 days. The replacement holds 8,000 tokens in the window and 1,000 tokens of output. It refuses a tone parameter. Request 4's instruction block counts as about 2× tokens.

Mark each request Rejected params, Window overflow, Relative cost jump, or Still ok.

1 of 3 · Worked
Five recorded requests, replayed on desk-writer-3-0901 except the last.

Request
Input
Params
Dry run

Request 1
400 tokens
None
Still ok

Request 2
900 tokens
tone=formal
Rejected params

Request 3
12,000 tokens
None
Window overflow

Request 4
400 tokens. The instruction block is about 2× tokens
None
Relative cost jump

Request 5
600 tokens
None
Not run yet

Read first: the dry-run column. Which break does each row name?

Verdict: Request 1 is Still ok. Request 2 is Rejected params. Request 3 is Window overflow. Request 4 is Relative cost jump. Request 5 has not been run. The rename waits.

What you change: drop or replace tone on Request 2. Cut Request 3 so it fits the 8,000-token window. Recount Request 4, because its instruction block is about 2× tokens. Run Request 5. Then change the name.

Why: replay the recorded requests before you move. One broken row is enough to hold the rename.

2 of 3 · Your turn
The fixes for Requests 2, 3, and 4 are in, and those three were replayed. Request 1 is Still ok. Request 2, with tone removed, is Still ok. Request 3, cut to 6,000 tokens, is Still ok. Request 4, recounted, is Still ok. Request 5 returned a reply, and the log says "unknown field ignored."

Read first: Request 5. That row does not name a break yet.

What do you do with the rename?

A · Hold the rename until the ignored field has one break mark
B · Rename now, since four rows are Still ok and Request 5 sent a reply
C · Rename now and call the ignored field Still ok, since a reply came back

## Sources

- [Amazon Bedrock, Model lifecycle](https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html)
- [Anthropic, Model deprecations](https://platform.claude.com/docs/en/about-claude/model-deprecations)
- [Anthropic, Model IDs and versioning](https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions)
- [Anthropic, Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)
- [Anthropic, Pricing](https://platform.claude.com/docs/en/about-claude/pricing)
- [Anthropic, Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)
- [Gemini, Context caching](https://ai.google.dev/gemini-api/docs/caching)
- [Gemini, Gemini deprecations](https://ai.google.dev/gemini-api/docs/deprecations)
- [Gemini, Long decode](https://ai.google.dev/gemini-api/docs/generate-content/long-decode)
- [Gemini, Long context](https://ai.google.dev/gemini-api/docs/long-context)
- [Gemini, Models](https://ai.google.dev/gemini-api/docs/models)
- [Google, What's new in Gemini 4 Argon](https://ai.google.dev/gemini-api/docs/latest-model)
- [Google, Gemini Developer API pricing](https://ai.google.dev/gemini-api/docs/pricing)
- [Microsoft, Model versioning in Microsoft Foundry Models](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/model-versions)
- [OpenAI, Deprecations](https://developers.openai.com/api/docs/deprecations)
- [OpenAI, GPT-6 Astra](https://developers.openai.com/api/docs/models/gpt-6-astra)
- [OpenAI, GPT-6.1 Sol](https://developers.openai.com/api/docs/models/gpt-6.1-sol)
- [OpenAI, GPT-6 Luna](https://developers.openai.com/api/docs/models/gpt-6-luna)
- [OpenAI, Pricing](https://developers.openai.com/api/docs/pricing)
- [OpenAI, Prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching)

Vendor and platform docs.
