Configuration, Platforms, and LifecycleBeta headers as configuration
No narration yet
Module 5, Lesson 124 min

Beta headers as configuration

A beta header is configuration in the most literal sense: a string that changes what the API will accept. It behaves like a door code rather than a setting. Precisely right and the feature exists for you; one character out and the API has no idea you asked for anything, because there is no fuzzy matching and no helpful correction.

How the mechanism works

You send anthropic-beta on the request with the value or values you need. Multiple betas go in one header, comma separated.

Two betas on one request
anthropic-beta: skills-2025-10-02,code-execution-2025-08-25

Each value is name plus a date, and the date is a version pin. When a beta's contract changes, a new dated value appears and the old one gets deprecated rather than mutated underneath you. That is a kindness, and it also means your headers are a dependency with a shelf life that belongs in your maintenance plan.

The current list, exactly

Learn these as strings, not as concepts.

files-api-2025-04-14 for the Files API.

computer-use-2025-11-24 for computer use. Older models use computer-use-2025-01-24, so this is one feature with two live header values depending on which model you are calling.

mcp-client-2025-11-20 for the MCP connector. mcp-client-2025-04-04 is deprecated, so if you see it in existing code that is a migration item.

skills-2025-10-02 plus code-execution-2025-08-25 for Agent Skills. Both.

advisor-tool-2026-03-01 for advisor.

managed-agents-2026-04-01 for Managed Agents.

What is GA and therefore has no header

Just as testable, and easier to get wrong because "I did not add a header" is invisible.

GA, no header required: the Messages API, tool use including tool_choice and parallel tool use and strict tool use, streaming, prompt caching, adaptive thinking, effort, structured outputs, Batches, citations, web search, web fetch, code execution as a server tool, tool search, memory, bash, and text editor.

So code-execution-2025-08-25 gates Agent Skills, while code execution as a server-side tool is GA. That is genuinely confusing and it is the sort of distinction a certification enjoys.

Beta means beta, and paraphrasing costs you

Strict tool use is a nice example of the opposite direction. It sounds new and gated, and it is GA with no header. But it is unavailable on mcp_toolset, so its constraint is a capability boundary rather than a release-status one.

Keep those two apart, because they sound the same in conversation and they have different fixes. A release-status limit is satisfied by sending the right string and then never thinking about it again. A capability boundary is not satisfiable at all: no header exists, and the only move is to change the design. Knowing which one you are looking at is the whole configuration-management sub-skill.

Practice

Try it yourself

Recall

The beta header inventory

Exact strings. A header that is one character off is a feature you do not have.

List the current beta headers and the feature each one unlocks, including the two that Agent Skills needs together and the one deprecated value.

Quiz

Enabling Agent Skills

You enable Agent Skills with only skills-2025-10-02 and nothing works properly. Why?

Quiz

Which of these two header values is current

Two services in the same monorepo enable the MCP connector. They do not agree.

anthropic-beta: mcp-client-2025-04-04
anthropic-beta: mcp-client-2025-11-20
Quiz

Sorting GA from beta

Which of these features requires no beta header at all?

Recall

Two different reasons you cannot use something

Both sound identical when someone says them out loud in a design review, and they have completely different remedies. This is the distinction the configuration-management sub-skill is really testing.

Strict tool use is GA but unavailable on mcp_toolset, while the Files API is available but only behind a beta header. What kind of limit is each of those, and why does the difference matter?

Check

Audit the headers in a design

For any Claude integration you can describe, write down every beta header it needs.

You should see

Each header is written out in full with its exact date suffix, each is justified by a named feature, none is present without a reason, and any feature you assumed was beta but is actually GA has been removed from the list.