Migrating to Claude Mythos 5 and Claude Fable 5
Migrate to Claude Mythos 5 and Claude Fable 5 from Claude Mythos Preview, Claude Opus 5, or Claude Opus 4.8: model IDs, API changes, and migration checklists.
Claude Fable 5 is built for demanding reasoning and long-horizon agentic work. Claude Fable 5.1 builds on it. Claude Fable 5 is available on the Claude API, Amazon Bedrock, Claude Platform on AWS, Google Cloud, and Microsoft Foundry. Claude Mythos 5 shares the same capabilities and is offered only to approved customers in Project Glasswing.
The baseline settings shared by claude-fable-5 and claude-mythos-5:
- Thinking: Adaptive thinking is always on. The model determines when and how much to think on each request, and no
thinkingconfiguration is required. Boththinking: {type: "disabled"}and manual extended thinking (thinking: {type: "enabled", budget_tokens: N}) return a 400 error. - Prefill: Prefilling the assistant message returns a 400 error. Use system prompt instructions instead.
- Context window and output: A 1M token context window by default, and up to 128k output tokens per request.
- Pricing: $10 USD per million input tokens and $50 USD per million output tokens. See Claude pricing.
- Data retention: Both models require 30-day data retention and are not available under zero data retention (ZDR) arrangements unless expressly authorized by Anthropic. Both are designated Covered Models. On the Claude API, a request to Claude Fable 5 from an organization whose data retention configuration does not meet this requirement returns a 400
invalid_request_error. Organizations with a ZDR arrangement should contact their Anthropic account team to discuss data retention configuration, or configure data retention per workspace. See Model-specific data retention requirements for per-platform details.
Where the two models diverge:
- Availability: Claude Fable 5 does not require access approval. Claude Mythos 5 is available only to approved customers in Project Glasswing.
- Safety classifiers: Claude Fable 5 runs safety classifiers that can decline requests with
stop_reason: "refusal". Claude Mythos 5 does not include these classifiers. See Refusals and fallback. - Priority Tier: Priority Tier is supported on Claude Fable 5 but not on Claude Mythos 5.
Migrating to Claude Mythos 5 and Claude Fable 5 from Claude Mythos Preview
Claude Mythos 5 is the access-gated successor to Claude Mythos Preview, the invitation-only research preview. Claude Fable 5 offers the same capabilities and does not require access approval. The changes in this section apply equally to both targets.
Migration is mostly drop-in. Claude Mythos 5 and Claude Fable 5 use the same Messages API and the same tool use patterns as Claude Mythos Preview, and token counts are roughly unchanged because all three models use the same tokenizer. The key changes to check are the features that are no longer available (listed in the next section) and thinking output. If you migrate to Claude Fable 5, also plan for safety classifier refusals, which Claude Mythos Preview and Claude Mythos 5 do not have; see Refusals and fallback.
For the Claude Mythos Preview retirement timeline, see Model deprecations.
Update your model name
model = "claude-mythos-preview" # Before
model = "claude-mythos-5" # After
# Or, for the model with the same capabilities and no access approval requirement:
model = "claude-fable-5" # AfterFeatures not available on Claude Mythos 5 and Claude Fable 5
-
Extended thinking and thinking token budgets: Manual extended thinking (
thinking: {type: "enabled", budget_tokens: N}) is not supported onclaude-mythos-5orclaude-fable-5and returns a 400 error. Adaptive thinking is always on: the model determines when and how much to think on each request, and nothinkingconfiguration is required.thinking: {type: "disabled"}returns an error.budget_tokenshas no direct replacement: thinking is adaptive, and the effort parameter is a separate output-level control, not a thinking budget.Before (Claude Mythos Preview):
client.messages.create( model="claude-mythos-preview", max_tokens=16000, thinking={"type": "enabled", "budget_tokens": 10000}, messages=[{"role": "user", "content": "..."}], )After (Claude Mythos 5):
client.messages.create( model="claude-mythos-5", max_tokens=16000, messages=[{"role": "user", "content": "..."}], )The change for Claude Fable 5 is identical, with
claude-fable-5as the model name. -
Assistant prefill: Prefilling the assistant message is not supported on
claude-mythos-5orclaude-fable-5and returns a 400 error, the same as on Claude Mythos Preview. Use system prompt instructions instead. -
Thinking output: On
claude-mythos-5andclaude-fable-5, the raw chain of thought is never returned, but thinking blocks still carry readable summarized text whenthinking.displayis set tosummarized. Pass thinking blocks back unchanged when continuing a conversation on the same model. See Thinking output on Claude Fable and Claude Mythos models.
Token counting and billing
claude-mythos-5 and claude-fable-5 use the same tokenizer as claude-mythos-preview (the tokenizer introduced with Claude Opus 4.7). Token counts are roughly unchanged when migrating from claude-mythos-preview. Compared with models before Claude Opus 4.7, the same content can tokenize to roughly 30% more tokens, varying by content and workload shape.
/v1/messages/count_tokens returns roughly unchanged values for claude-mythos-5 and claude-fable-5 compared with claude-mythos-preview. Re-baseline cost and latency on your own workloads.
Migration checklist
- Update the model name from
claude-mythos-previewtoclaude-mythos-5, or toclaude-fable-5, which offers the same capabilities and does not require access approval. - Remove manual extended thinking configuration (
thinking: {type: "enabled", budget_tokens: N}). Adaptive thinking is always on, and nothinkingfield is required. - Remove any
thinking: {type: "disabled"}configuration. Disabling thinking returns an error onclaude-mythos-5andclaude-fable-5. - Remove
budget_tokens. It has no direct replacement: thinking is adaptive, and theeffortparameter is a separate output-level control, not a thinking budget. - Verify any code that parses the
thinkingfield treats it as display text only and passes thinking blocks back unchanged when continuing on the same model.thinking.displaydefaults to"omitted"onclaude-mythos-5andclaude-fable-5, the same as on Claude Mythos Preview. Setdisplay: "summarized"to receive readable summaries. See Thinking output on Claude Fable and Claude Mythos models. - If you replay conversation history on an earlier model, strip
thinkingandredacted_thinkingblocks from prior assistant turns first. Thinking blocks fromclaude-fable-5andclaude-mythos-5are readable only by the model that produced them or a newer one: earlier models silently ignore them, while Claude Fable 5.1 and Claude Mythos 5.1 read them, so keep them when you move a conversation up to those models (see Preserved thinking). Stripping keeps requests to earlier models minimal and uniform. - If you migrate to Claude Fable 5, handle
stop_reason: "refusal"and read thestop_details.categoryfield. Claude Fable 5 runs safety classifiers that Claude Mythos Preview and Claude Mythos 5 do not have. See Refusals and fallback. - Re-baseline token counts and costs on your own workloads. Token counts are roughly unchanged when migrating from
claude-mythos-preview.
Migrating to Claude Mythos 5 and Claude Fable 5 from Claude Opus 5
Claude Fable 5 and Claude Mythos 5 use the same Messages API and the same tool use patterns as Claude Opus 5, with the same 1M token context window by default and the same 128k max output tokens. The prefill and sampling-parameter restrictions, and the thinking display behavior, carry over from Claude Opus 5 unchanged. The changes to check are always-on thinking, pricing, Priority Tier, and data retention.
Update your model name
model = "claude-opus-5" # Before
model = "claude-fable-5" # After
# Or, for the Project Glasswing model with the same capabilities:
model = "claude-mythos-5" # AfterWhat changed
-
Thinking can no longer be disabled: On Claude Opus 5, thinking is on by default and can be turned off with
thinking: {type: "disabled"}at an effort level ofhighor below. Onclaude-fable-5andclaude-mythos-5, adaptive thinking is always on, andthinking: {type: "disabled"}returns a 400 error at any effort level. Remove thethinking: {type: "disabled"}configuration and use lower effort levels to control token spend instead.If your Claude Opus 5 requests disabled thinking, the response shape changes: a response can begin with one or more
thinkingblocks before the firsttextblock, returned with an emptythinkingfield at the defaultdisplay: "omitted"(the same default as Claude Opus 5). Code that reads the reply by position, such ascontent[0].textor a stream handler that treats the first content block as text, must select content blocks by theirtypefield instead, and tool-use loops must passthinkingblocks back complete and unmodified with their tool results. The API rejects edited, reordered, or partially dropped thinking blocks with a 400 error (see Preserving thinking blocks). Thinking tokens are billed as output tokens even when the thinking text is not returned. -
Pricing: Claude Fable 5 and Claude Mythos 5 are priced at $10 USD per million input tokens and $50 USD per million output tokens, compared with $5 USD and $25 USD for Claude Opus 5. See Claude pricing.
-
Priority Tier: Priority Tier is not supported on Claude Opus 5, so no existing traffic is affected. If your organization has a Priority Tier commitment, Claude Fable 5 supports it; Claude Mythos 5 does not.
-
Data retention: Claude Fable 5 and Claude Mythos 5 require 30-day data retention and are not available under zero data retention (ZDR) arrangements unless expressly authorized by Anthropic. Both are designated Covered Models. See Model-specific data retention requirements.
Migration checklist
- Update the model name from
claude-opus-5toclaude-fable-5(orclaude-mythos-5). - Remove any
thinking: {type: "disabled"}configuration; it returns a 400 error onclaude-fable-5andclaude-mythos-5. Use lower effort levels to control token spend instead, and revisitmax_tokensfor workloads that ran with thinking disabled on Claude Opus 5. - If those workloads read content by position, such as
content[0].text, update them to select content blocks bytype:thinkingblocks now arrive beforetextblocks. Passthinkingblocks back complete and unmodified in tool-use loops; modified blocks return a 400 error. - If your organization has a zero data retention (ZDR) arrangement, confirm eligibility before migrating: these models are not available under ZDR unless expressly authorized by Anthropic. See Model-specific data retention requirements.
- Re-baseline cost on your own workloads. Token counts are roughly unchanged; per-token pricing differs, and workloads that ran with thinking disabled now produce thinking tokens, which are billed as output tokens.
Migrating to Claude Mythos 5 and Claude Fable 5 from Claude Opus 4.8
Migration is mostly drop-in. Claude Fable 5 and Claude Mythos 5 use the same Messages API and the same tool use patterns as Claude Opus 4.8, with the same 1M token context window by default and the same 128k max output tokens. Token counts are roughly unchanged because the models use the same tokenizer. The key changes to check are always-on adaptive thinking, thinking output, safety classifier refusals (Claude Fable 5 only), and pricing.
Update your model name
model = "claude-opus-4-8" # Before
model = "claude-fable-5" # After
# Or, for the Project Glasswing model with the same capabilities:
model = "claude-mythos-5" # AfterWhat changed
The items in this section describe the API and behavior differences worth checking after you swap the model ID. Except where noted, they apply equally to claude-fable-5 and claude-mythos-5.
-
Adaptive thinking is always on: Adaptive thinking is the only thinking mode on
claude-fable-5andclaude-mythos-5. The model determines when and how much to think on each request, and nothinkingconfiguration is required.thinking: {type: "disabled"}returns an error. Use the effort parameter to control thinking depth.The behavior change to check: on Claude Opus 4.8, requests without a
thinkingfield run without thinking; onclaude-fable-5andclaude-mythos-5, those same requests run with adaptive thinking.max_tokensremains a hard limit on total output, thinking plus response text, so revisit it for workloads that ran without thinking on Claude Opus 4.8. See Cost control. Responses can also begin with one or morethinkingblocks before the firsttextblock, so code that reads the reply by position (for example,content[0].text, or a stream handler that treats the first content block as text) must select content blocks by theirtypefield instead. Thinking tokens are billed as output tokens even when the thinking text is not returned to you, so a workload that ran without thinking on Claude Opus 4.8 produces more output tokens per request, in addition to the per-token price difference.If you run a tool-use loop, pass the
thinkingblocks from each assistant response back to the API complete and unmodified when you return tool results, including blocks whosethinkingfield is empty. Echo the assistant message as received rather than filtering its content blocks by type or rebuilding it: the API rejects edited, reordered, or partially dropped thinking blocks with a 400 error. See Preserving thinking blocks.Before (Claude Opus 4.8):
client.messages.create( model="claude-opus-4-8", max_tokens=16000, thinking={"type": "adaptive"}, output_config={"effort": "high"}, messages=[{"role": "user", "content": "..."}], )After (Claude Fable 5):
client.messages.create( model="claude-fable-5", max_tokens=16000, output_config={"effort": "high"}, messages=[{"role": "user", "content": "..."}], )The change for Claude Mythos 5 is identical, with
claude-mythos-5as the model name. -
Extended thinking and thinking budgets (unchanged): Manual extended thinking (
thinking: {type: "enabled", budget_tokens: N}) is not supported onclaude-fable-5orclaude-mythos-5and returns a 400 error, the same as on Claude Opus 4.8.budget_tokenshas no direct replacement: thinking is adaptive, and the effort parameter is a separate output-level control, not a thinking budget. -
Assistant prefill (unchanged): Prefilling the assistant message is not supported on
claude-fable-5orclaude-mythos-5and returns a 400 error, the same as on Claude Opus 4.8. Use system prompt instructions instead. -
Thinking output: On
claude-fable-5andclaude-mythos-5, the raw chain of thought is never returned, but thinking blocks still carry readable summarized text whenthinking.displayis set tosummarized. Pass thinking blocks back unchanged when continuing a conversation on the same model. See Thinking output on Claude Fable and Claude Mythos models. -
Safety classifiers and the
refusalstop reason (Claude Fable 5 only):claude-fable-5runs safety classifiers on requests and during response generation. Claude Mythos 5 does not include these classifiers. When a classifier declines a request, the Messages API returnsstop_reason: "refusal"as a successful HTTP 200 response, not an error. Thestop_details.categoryfield reports which classifier fired, with categories such as"cyber","bio", and"reasoning_extraction", ornullwhen the refusal maps to no named category. See the refusal category table for the full set.You are not billed for the input tokens of a request refused before any output is generated. When a classifier fires mid-stream, the input and already-streamed output are billed; discard the partial output.
To re-run refused requests on another model automatically, pass the opt-in
fallbacksparameter, which is in beta on the Claude API. The parameter is not available on the Message Batches API or on Amazon Bedrock, Google Cloud, and Microsoft Foundry; on those three platforms, run the retry client-side or use the SDK refusal-fallback middleware. See Refusals and fallback. -
Start at
higheffort: The effort parameter default remainshigh. On Claude Opus 4.8, the recommendation for coding and high-autonomy work is to setxhighexplicitly. Onclaude-fable-5andclaude-mythos-5, usehighas the default for most tasks and reservexhighfor the most capability-sensitive workloads. Lower effort settings still perform well and often exceedxhighperformance on prior models. Reduce effort if a task completes but takes longer than necessary. See Prompting Claude Fable 5. -
Lower prompt caching minimum: The minimum cacheable prompt length on
claude-fable-5andclaude-mythos-5is 512 tokens, lower than the 1,024 tokens on Claude Opus 4.8. Prompts that were too short to cache on Claude Opus 4.8 can now create cache entries, with no code changes required. See Prompt caching for per-model minimums.
Migration checklist
- If your organization has a zero data retention (ZDR) arrangement, confirm eligibility before migrating.
claude-fable-5andclaude-mythos-5require 30-day data retention and are not available under ZDR unless expressly authorized by Anthropic. On the Claude API, requests toclaude-fable-5that don't meet this requirement return a 400invalid_request_error. Claude Opus 4.8 is available under ZDR. See Model-specific data retention requirements. - Update the model name from
claude-opus-4-8toclaude-fable-5(orclaude-mythos-5). - Remove any
thinking: {type: "disabled"}configuration. Disabling thinking returns an error onclaude-fable-5andclaude-mythos-5, and requests without athinkingfield run with adaptive thinking. - Update response parsing that reads content by position, such as
content[0].text: with adaptive thinking always on,thinkingblocks arrive beforetextblocks. Select content blocks bytypeinstead, and passthinkingblocks back complete and unmodified in tool-use loops; modified blocks return a 400 error. See Preserving thinking blocks. - If you removed manual extended thinking and assistant prefills during earlier migrations, no action is needed: both remain unsupported on
claude-fable-5andclaude-mythos-5. - Verify any code that parses the
thinkingfield treats it as display text only and passes thinking blocks back unchanged when continuing on the same model.thinking.displaydefaults to"omitted"onclaude-fable-5andclaude-mythos-5, the same as on Claude Opus 4.8. Setdisplay: "summarized"to receive readable summaries. See Thinking output on Claude Fable and Claude Mythos models. - If you replay conversation history on an earlier model, strip
thinkingandredacted_thinkingblocks from prior assistant turns first. Thinking blocks fromclaude-fable-5andclaude-mythos-5are readable only by the model that produced them or a newer one: earlier models silently ignore them, while Claude Fable 5.1 and Claude Mythos 5.1 read them, so keep them when you move a conversation up to those models (see Preserved thinking). Stripping keeps requests to earlier models minimal and uniform. The exception is redeeming a fallback credit, which requires the request body echoed under that feature's exact rules. - If you migrate to Claude Fable 5, handle
stop_reason: "refusal"and read thestop_details.categoryfield. To re-run refused requests on another model automatically, consider the opt-infallbacksparameter (beta). See Refusals and fallback. - Re-evaluate your
effortsetting. Start athighfor most tasks, including workloads that ran atxhighon Claude Opus 4.8. - Re-baseline cost and latency on your own workloads. Token counts are roughly unchanged when migrating from
claude-opus-4-8; per-token pricing differs, and thinking tokens are billed as output tokens, so workloads that ran without thinking produce more output tokens per request.
Was this page helpful?