Claude Fable 5 is Anthropic's most capable widely released model, 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 configuration is required. Both thinking: {type: "disabled"} and manual extended thinking (thinking: {type: "enabled", budget_tokens: N}) return a 400 error.invalid_request_error. Organizations with a ZDR arrangement should contact their Anthropic account team to discuss data retention configuration. Alternatively, you can configure data retention per workspace. See Model-specific data retention requirements for per-platform details.Where the two models diverge:
stop_reason: "refusal". Claude Mythos 5 does not include these classifiers. See Refusals and fallback.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.
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" # AfterExtended thinking and thinking token budgets: Manual extended thinking (thinking: {type: "enabled", budget_tokens: N}) is not supported on claude-mythos-5 or claude-fable-5 and returns a 400 error. Adaptive thinking is always on: the model determines when and how much to think on each request, and no thinking configuration is required. thinking: {type: "disabled"} returns an error. budget_tokens has 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-5 as the model name.
Assistant prefill: Prefilling the assistant message is not supported on claude-mythos-5 or claude-fable-5 and returns a 400 error, the same as on Claude Mythos Preview. Use system prompt instructions instead.
Thinking output: On claude-mythos-5 and claude-fable-5, the raw chain of thought is never returned, but thinking blocks still carry readable summarized text when thinking.display is set to summarized. Pass thinking blocks back unchanged when continuing a conversation on the same model. See Thinking output on Claude Fable 5 and Claude Mythos 5.
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.
claude-mythos-preview to claude-mythos-5, or to claude-fable-5, which offers the same capabilities and does not require access approval.thinking: {type: "enabled", budget_tokens: N}). Adaptive thinking is always on, and no thinking field is required.thinking: {type: "disabled"} configuration. Disabling thinking returns an error on claude-mythos-5 and claude-fable-5.budget_tokens. It has no direct replacement: thinking is adaptive, and the effort parameter is a separate output-level control, not a thinking budget.thinking field treats it as display text only and passes thinking blocks back unchanged when continuing on the same model. thinking.display defaults to "omitted" on claude-mythos-5 and claude-fable-5, the same as on Claude Mythos Preview; set display: "summarized" to receive readable summaries. See Thinking output on Claude Fable 5 and Claude Mythos 5.thinking and redacted_thinking blocks from prior assistant turns first. Thinking blocks from claude-mythos-5 and claude-fable-5 are tied to the model that produced them, and models other than Claude Fable 5 and Claude Mythos 5 silently ignore them. Stripping keeps cross-model requests minimal and uniform.stop_reason: "refusal" and read the stop_details.category field. Claude Fable 5 runs safety classifiers that Claude Mythos Preview and Claude Mythos 5 do not have. See Refusals and fallback.claude-mythos-preview.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.
model = "claude-opus-5" # Before
model = "claude-fable-5" # After
# Or, for the Project Glasswing model with the same capabilities:
model = "claude-mythos-5" # AfterThinking 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 of high or below. On claude-fable-5 and claude-mythos-5, adaptive thinking is always on, and thinking: {type: "disabled"} returns a 400 error at any effort level. Remove the thinking: {type: "disabled"} configuration and use lower effort levels to control token spend instead.
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; both are designated Covered Models. See Model-specific data retention requirements.
claude-opus-5 to claude-fable-5 (or claude-mythos-5).thinking: {type: "disabled"} configuration; it returns a 400 error on claude-fable-5 and claude-mythos-5. Use lower effort levels to control token spend instead, and revisit max_tokens for workloads that ran with thinking disabled on Claude Opus 5.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.
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" # AfterThe 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-5 and claude-mythos-5. The model determines when and how much to think on each request, and no thinking configuration 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 thinking field run without thinking; on claude-fable-5 and claude-mythos-5, those same requests run with adaptive thinking. max_tokens remains 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.
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-5 as the model name.
Extended thinking and thinking budgets (unchanged): Manual extended thinking (thinking: {type: "enabled", budget_tokens: N}) is not supported on claude-fable-5 or claude-mythos-5 and returns a 400 error, the same as on Claude Opus 4.8. budget_tokens has 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-5 or claude-mythos-5 and returns a 400 error, the same as on Claude Opus 4.8. Use system prompt instructions instead.
Thinking output: On claude-fable-5 and claude-mythos-5, the raw chain of thought is never returned, but thinking blocks still carry readable summarized text when thinking.display is set to summarized. Pass thinking blocks back unchanged when continuing a conversation on the same model. See Thinking output on Claude Fable 5 and Claude Mythos 5.
Safety classifiers and the refusal stop reason (Claude Fable 5 only): claude-fable-5 runs 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 returns stop_reason: "refusal" as a successful HTTP 200 response, not an error. The stop_details.category field reports which classifier fired, with categories such as "cyber", "bio", and "reasoning_extraction", or null when 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 fallbacks parameter, 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 high effort: The effort parameter default remains high. On Claude Opus 4.8, the recommendation for coding and high-autonomy work is to set xhigh explicitly. On claude-fable-5 and claude-mythos-5, use high as the default for most tasks and reserve xhigh for the most capability-sensitive workloads. Lower effort settings still perform well and often exceed xhigh performance 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-5 and claude-mythos-5 is 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.
claude-fable-5 and claude-mythos-5 require 30-day data retention; on the Claude API, requests to claude-fable-5 that do not meet this requirement return a 400 invalid_request_error. Claude Opus 4.8 remains available under ZDR. See Model-specific data retention requirements.claude-opus-4-8 to claude-fable-5 (or claude-mythos-5).thinking: {type: "disabled"} configuration. Disabling thinking returns an error on claude-fable-5 and claude-mythos-5, and requests without a thinking field run with adaptive thinking.claude-fable-5 and claude-mythos-5.thinking field treats it as display text only and passes thinking blocks back unchanged when continuing on the same model. thinking.display defaults to "omitted" on claude-fable-5 and claude-mythos-5, the same as on Claude Opus 4.8; set display: "summarized" to receive readable summaries. See Thinking output on Claude Fable 5 and Claude Mythos 5.thinking and redacted_thinking blocks from prior assistant turns first. Thinking blocks from claude-fable-5 and claude-mythos-5 are tied to the model that produced them, and models other than Claude Fable 5 and Claude Mythos 5 silently ignore them. Stripping keeps cross-model requests minimal and uniform. The exception is redeeming a fallback credit, which requires the request body echoed under that feature's exact rules.stop_reason: "refusal" and read the stop_details.category field. To re-run refused requests on another model automatically, consider the opt-in fallbacks parameter (beta). See Refusals and fallback.effort setting. Start at high for most tasks, including workloads that ran at xhigh on Claude Opus 4.8.claude-opus-4-8; per-token pricing differs.Was this page helpful?