Skip to main content

Betas

A beta is an early API feature that a request switches on with a value in the anthropic-beta header. Claude Code keeps a list of these values and sends the ones that fit the model and the provider. If a proxy rejects a request with a beta error, set CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 to stop the pre-release values.

ANTHROPIC_BETAS adds values (comma list), and so does the --betas flag. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 turns off the experimental betas. DISABLE_INTERLEAVED_THINKING turns off one. The betas go in the anthropic-beta header, or in the betas field of the body on Bedrock.

About the List​

Claude Code joins the active values into the anthropic-beta header (or into the betas field of the body on Bedrock). A row is Documented when a docs page other than the changelog and the Agent SDK pages names the value. Few values have that. Source: Environment Variables for ANTHROPIC_BETAS and CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS, and the program for the rest.

How Claude Code Builds the List​

Claude Code takes these steps for each request.

  1. It adds the betas that fit the model and the provider.
  2. It adds the values of ANTHROPIC_BETAS, a comma list, unless the experimental betas are off. It drops a value that has afk-mode, and it skips mid-conversation-system-2026-04-07, because that feature is generally available.
  3. It removes context-1m-2025-08-07 when the model has the 1M window already.
  4. For an agent query, it adds claude-code-20250219 if the list lacks it.
  5. It adds the betas that depend on the turn, and then the values of the flag --betas. On a third-party provider it keeps only the allowed values of --betas.

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS or a HIPAA policy turns the experimental betas off. Then Claude Code ignores ANTHROPIC_BETAS and --betas, and it leaves out the betas that only the Anthropic API takes.

Registry​

The Registry Name column is the internal name of the value in the program.

Header ValueStatusRegistry NameWhen Claude Code Sends It
claude-code-20250219Undocumentedclaude_codeFor every model whose name has no haiku, and for agent queries.
oauth-2025-04-20Undocumentedoauth_authWhen you sign in with a subscription (OAuth).
interleaved-thinking-2025-05-14Documentedinterleaved_thinkingFor each model except claude-3-*, unless DISABLE_INTERLEAVED_THINKING is set. The docs name it as interleaved-thinking.
context-1m-2025-08-07Undocumentedlong_contextWhen the model name has the [1m] suffix, also for a model with a 1M window. Never without the suffix (see Probes).
context-management-2025-06-27Undocumentedcontext_managementOn the Anthropic API, on Anthropic-run clouds, and on Foundry, for each model except claude-3-*.
structured-outputs-2025-12-15Undocumentedstructured_outputsOn the Anthropic API for a model that supports it, behind an experiment.
web-search-2025-03-05Undocumentedweb_searchOn Vertex for models with web search there, and on Foundry.
advanced-tool-use-2025-11-20Undocumentedtool_searchWith tool search, as a second header value.
tool-search-tool-2025-10-19Undocumentedtool_searchWith tool search. On Bedrock it goes in the body instead.
effort-2025-11-24UndocumentedeffortThe program lists it, and no source states when it is sent.
task-budgets-2026-03-13Undocumentedtask_budgetsThe program lists it, and no source states when it is sent.
prompt-caching-scope-2026-01-05Undocumentedprompt_caching_scopeOn the Anthropic API and Anthropic-run clouds, and when MCP tools are in the tool list.
prompt-caching-evict-2026-05-12Undocumentedprompt_caching_evictWhen a message has the evict_on_complete cache control.
cache-keepalive-2026-09-03Undocumentedcache_keepaliveWhen the keep-alive switch is on. It needs a subscriber login (see Probes).
extended-cache-ttl-2025-04-11Documentedextended_cache_ttlWhen the cache time is 1h on the Anthropic API. The docs name it as extended-cache-ttl.
fast-mode-2026-02-01UndocumentedspeedThe program lists it, and no source states when it is sent.
redact-thinking-2026-02-12Undocumentedredact_thinkingOn the Anthropic API when interleaved thinking is on and the session is interactive.
thinking-resumption-2026-07-17Undocumentedthinking_resumptionThe program lists it, and no source states when it is sent.
thinking-token-count-2026-05-13Undocumentedthinking_token_countWith interleaved thinking on the Anthropic API, and on Bedrock and Mantle for some models.
afk-mode-2026-01-31Undocumentedafk_modeFor auto mode.
advisor-tool-2026-03-01Undocumentedadvisor_toolThe program lists it, and no source states when it is sent.
cache-diagnosis-2026-04-07Undocumentedcache_diagnosisThe program lists it, and no source states when it is sent.
context-hint-2026-04-09Undocumentedcontext_hintThe program lists it, and no source states when it is sent.
mcp-servers-2025-12-04Undocumentedmcp_serversThe program lists it, and no source states when it is sent.
files-api-2025-04-14Undocumentedfiles_apiThe program lists it, and no source states when it is sent.
environments-2025-11-01UndocumentedenvironmentsThe program lists it, and no source states when it is sent.
ccr-byoc-2025-07-29Documentedccr_byocThe program lists it, and no source states when it is sent. The docs name it in Self-Hosted Environments Testing.
per-turn-control-2026-07-01Undocumentedper_message_effortFor models that take the effort with each message.
timing-2026-09-09Undocumentedper_turn_timingWhen the time goes with each message.
mid-conversation-tool-changes-2026-07-01Undocumentedmid_conv_tool_changeFor models that allow tool changes in the middle of a conversation.
inline-tools-2026-09-15Undocumentedinline_toolsWith the previous value, when a second check passes. CLAUDE_CODE_INLINE_TOOLS=1 also adds it (see Probes).
server-side-fallback-2026-06-01Undocumentedserver_side_fallbackThe program lists it, and no source states when it is sent.
server-side-fallback-2026-07-01Undocumentedserver_side_fallback_categoryThe program lists it, and no source states when it is sent.
fallback-credit-2026-06-01Undocumentedfallback_creditThe program lists it, and no source states when it is sent.
auto-mode-classifier-2026-07-16Undocumentedauto_mode_classifierThe program lists it, and no source states when it is sent.
dangerous-tool-use-2026-09-03Undocumenteddangerous_tool_useThe program lists it, and no source states when it is sent.
thinking-display-updates-2026-08-18Undocumentedthinking_display_updatesThe program lists it, and no source states when it is sent.
thinking-binding-controls-2026-08-01Undocumentedthinking_binding_controlsThe program lists it, and no source states when it is sent.
message-threads-2026-08-12Undocumentedmessage_threadsThe program lists it, and no source states when it is sent.
mid-conversation-system-clear-at-2026-08-21Undocumentedmid_conversation_system_clear_atFor the wire shape that keeps reminders.

The registry also holds two internal switches, x-cc-internal-mid-conv-cache-promotion and x-cc-internal-mid-conv-cache-promotion-ok. They are Undocumented, and Claude Code does not send them as header values.

Other Beta Values in the Program​

These values belong to the embedded Anthropic SDK client or to the provider code. Claude Code does not put them in the model request. All of them are Undocumented.

ValueWhere It Is Used
managed-agents-2026-04-01The endpoints /v1/agents, /v1/sessions, and /v1/environments.
dreaming-2026-04-21The endpoint /v1/dreams.
user-profiles-2026-08-18The endpoint /v1/user_profiles.
agent-memory-2026-07-22The endpoint /v1/memory_stores.
message-batches-2024-09-24The batch endpoint.
token-counting-2024-11-01The endpoint /v1/messages/count_tokens.
mcp-tunnels-2026-06-22The endpoint /v1/tunnels.
oidc-federation-2026-04-01The federation endpoints.
ccr-triggers-2026-01-30The endpoint /v1/code/triggers.
bedrock-2023-05-31The anthropic_version of the Bedrock body.
vertex-2023-10-16The anthropic_version of the Vertex body.

Observed Request​

A transcript of 2.1.304 records each request in an api-request line. One such line, read on a local machine with the model claude-opus-5-5, held 20 betas. The list ran from claude-code-20250219 and oauth-2025-04-20 to message-threads-2026-08-12. This is one observation and not a rule. See Transcript Format.

Example​

Add a beta by hand, then turn all experimental betas off for a proxy that rejects them.

Betas from the shell
# Add one value to the header
ANTHROPIC_BETAS="files-api-2025-04-14" claude -p "hi"

# Stop the experimental values (also ignores ANTHROPIC_BETAS and --betas)
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 claude -p "hi"