---
title: Cabeçalhos beta
url: https://platform.claude.com/docs/pt-BR/api/beta-headers
description: Acesse recursos experimentais antes que eles se tornem parte da API padrão com o cabeçalho `anthropic-beta` ou o parâmetro `betas` do SDK.
---

Os "beta headers" (cabeçalhos beta) permitem que você acesse recursos experimentais e novas capacidades de modelos antes que eles se tornem parte da API padrão.

<Info>
  O [SDK de cliente](https://platform.claude.com/docs/pt-BR/cli-sdks-libraries/overview) expõe um namespace `client.beta` (csharp, go: `client.Beta`; java: `client.beta()`; php: `$client->beta`) para chamar a API com recursos beta habilitados.
</Info>

## Como usar cabeçalhos beta

Para acessar recursos beta, inclua o cabeçalho `anthropic-beta` em suas requisições à API:

```http
POST /v1/messages
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
anthropic-beta: BETA_FEATURE_NAME
content-type: application/json
```

A documentação de cada recurso indica o nome exato do beta a ser enviado. A [visão geral da API](https://platform.claude.com/docs/pt-BR/api/overview) lista as APIs atualmente em beta.

Os exemplos a seguir mostram a mesma requisição com cURL, a CLI `ant` e o SDK, usando o beta de [edição de contexto](https://platform.claude.com/docs/pt-BR/build-with-claude/context-editing) como exemplo. O SDK recebe nomes beta por meio de `betas` (csharp, go: `Betas`; java: `.addBeta()`) e envia o cabeçalho `anthropic-beta` para você:

<CodeGroup>
  ```bash cURL
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-beta: context-management-2025-06-27" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "messages": [
        {"role": "user", "content": "Hello, Claude"}
      ]
    }'
  ```

  ```bash CLI
  ant beta:messages create \
    --beta context-management-2025-06-27 \
    --model claude-opus-5-5 \
    --max-tokens 1024 \
    --message '{role: user, content: "Hello, Claude"}'
  ```

  ```python Python
  client = Anthropic()

  response = client.beta.messages.create(
      model="claude-opus-5-5",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello, Claude"}],
      betas=["context-management-2025-06-27"],
  )

  print(response.content)
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const msg = await client.beta.messages.create({
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Hello, Claude" }],
    betas: ["context-management-2025-06-27"]
  });

  console.log(msg.content);
  ```

  ```csharp C#
  var client = new AnthropicClient();

  var message = await client.Beta.Messages.Create(
      new MessageCreateParams
      {
          Model = Model.ClaudeOpus5_5,
          MaxTokens = 1024,
          Messages = [new() { Role = Role.User, Content = "Hello, Claude" }],
          Betas = ["context-management-2025-06-27"],
      }
  );

  Console.WriteLine(string.Join("\n", message.Content));
  ```

  ```go Go
  client := anthropic.NewClient()

  message, err := client.Beta.Messages.New(context.TODO(), anthropic.BetaMessageNewParams{
  	Model:     anthropic.ModelClaudeOpus5_5,
  	MaxTokens: 1024,
  	Messages: []anthropic.BetaMessageParam{
  		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Hello, Claude")),
  	},
  	Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaContextManagement2025_06_27},
  })
  if err != nil {
  	panic(err)
  }

  fmt.Printf("%+v\n", message.Content)
  ```

  ```java Java
  AnthropicClient client = AnthropicOkHttpClient.fromEnv();

  MessageCreateParams params = MessageCreateParams.builder()
    .model(Model.CLAUDE_OPUS_5_5)
    .maxTokens(1024)
    .addUserMessage("Hello, Claude")
    .addBeta(AnthropicBeta.CONTEXT_MANAGEMENT_2025_06_27)
    .build();

  BetaMessage message = client.beta().messages().create(params);
  System.out.println(message.content());
  ```

  ```php PHP
  $client = new Client();

  $message = $client->beta->messages->create(
      maxTokens: 1024,
      messages: [['role' => 'user', 'content' => 'Hello, Claude']],
      model: 'claude-opus-5-5',
      betas: ['context-management-2025-06-27'],
  );

  echo $message;
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  message = client.beta.messages.create(
    model: "claude-opus-5-5",
    max_tokens: 1024,
    messages: [{role: "user", content: "Hello, Claude"}],
    betas: ["context-management-2025-06-27"]
  )

  puts(message.content)
  ```
</CodeGroup>

<Warning>
  Os recursos beta são experimentais e podem:

  * Ter alterações incompatíveis com aviso prévio
  * Ser descontinuados ou removidos
  * Ter limites de taxa ou preços diferentes
  * Não estar disponíveis em todas as regiões
</Warning>

### Múltiplos recursos beta

Para usar múltiplos recursos beta em uma única requisição, inclua todos os nomes dos recursos no cabeçalho separados por vírgulas:

```http
anthropic-beta: feature1,feature2,feature3
```

Você também pode enviar o cabeçalho `anthropic-beta` mais de uma vez na mesma requisição. A Claude API lê todos os cabeçalhos `anthropic-beta`, então o seguinte é equivalente ao exemplo anterior:

```http
anthropic-beta: feature1
anthropic-beta: feature2
anthropic-beta: feature3
```

Com o SDK, liste cada recurso (por exemplo, `betas=["feature1", "feature2"]` (typescript, ruby: `betas: ["feature1", "feature2"]`; php: `betas: ['feature1', 'feature2']`; csharp: `Betas = ["feature1", "feature2"]`; go: `Betas: []anthropic.AnthropicBeta{"feature1", "feature2"}`; java: `.addBeta("feature1").addBeta("feature2")`)). Com a CLI, passe uma única flag `--beta` com os nomes dos recursos separados por vírgulas (por exemplo, `--beta feature1,feature2`). Você também pode repetir a flag (por exemplo, `--beta feature1 --beta feature2`).

### Recursos beta em outras plataformas

Os nomes beta são os mesmos em todas as plataformas que os aceitam, mas nem todas as plataformas aceitam todos os betas. [Claude Platform on AWS](https://platform.claude.com/docs/pt-BR/build-with-claude/claude-platform-on-aws), [Microsoft Foundry](https://platform.claude.com/docs/pt-BR/build-with-claude/claude-in-microsoft-foundry) e [Google Cloud](https://platform.claude.com/docs/pt-BR/build-with-claude/claude-on-vertex-ai) recebem nomes beta no cabeçalho `anthropic-beta`, assim como a Claude API. Para enviar vários betas, coloque seus nomes em um único cabeçalho, separados por vírgulas: o Google Cloud lê apenas um cabeçalho `anthropic-beta` e ignora os demais, então os betas nos outros cabeçalhos não têm efeito.

No Amazon Bedrock, onde os nomes beta são colocados depende da API que você chama:

* [Claude no Amazon Bedrock](https://platform.claude.com/docs/pt-BR/build-with-claude/claude-in-amazon-bedrock) (endpoints `bedrock-mantle`) os recebe no cabeçalho `anthropic-beta`.
* A [API InvokeModel](https://platform.claude.com/docs/pt-BR/build-with-claude/claude-on-amazon-bedrock-legacy) os lê do corpo da requisição, não de um cabeçalho. Liste-os no array `anthropic_beta` do corpo, um nome por elemento, por exemplo `"anthropic_beta": ["feature1", "feature2"]`.

### Cabeçalhos específicos de endpoint

Algumas APIs beta têm escopo restrito a endpoints específicos e exigem um cabeçalho beta específico do recurso em cada requisição:

| Endpoints                                        | Cabeçalho beta              |
| ------------------------------------------------ | --------------------------- |
| `/v1/agents`, `/v1/sessions`, `/v1/environments` | `managed-agents-2026-04-01` |
| `/v1/tunnels`                                    | `mcp-tunnels-2026-06-22`    |
| `/v1/memory_stores` e sub-recursos               | `agent-memory-2026-07-22`   |

O namespace `client.beta` (csharp, go: `client.Beta`; java: `client.beta()`; php: `$client->beta`) do SDK adiciona esses cabeçalhos automaticamente. Adicione-os você mesmo apenas ao fazer requisições HTTP diretas. Consulte a [visão geral do Managed Agents](https://platform.claude.com/docs/pt-BR/managed-agents/overview), [Usando a memória do agente](https://platform.claude.com/docs/pt-BR/managed-agents/memory) e a [referência de túneis MCP](https://platform.claude.com/docs/pt-BR/agents-and-tools/mcp-tunnels/reference#tunnels-api) para mais detalhes.

Cabeçalhos específicos de endpoint que se aplicam ao mesmo endpoint nem sempre podem ser combinados. Nos endpoints de memory store, `agent-memory-2026-07-22` substitui `managed-agents-2026-04-01`: enviar ambos na mesma requisição retorna um erro `400`. O SDK envia o cabeçalho correto para cada endpoint automaticamente.

### Convenções de nomenclatura de versões

Os nomes de recursos beta normalmente seguem o padrão `feature-name-YYYY-MM-DD`, onde a data indica quando o beta foi lançado. Sempre use o nome exato do recurso beta conforme documentado.

## Tratamento de erros

Se você usar um nome de beta inválido, ou um beta ao qual sua organização não tem acesso, você receberá uma resposta de erro `400`:

```json Output
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "Unexpected value(s) `invalid-beta-name` for the `anthropic-beta` header. Please consult our documentation at platform.claude.com/docs or try again without the header."
  },
  "request_id": "req_011CcnGfC9fELffo2EALu4Wd"
}
```

## Obtendo ajuda

Para atualizações sobre recursos beta, consulte as [notas de versão](https://platform.claude.com/docs/pt-BR/release-notes/overview). Para ajuda com problemas em produção, entre em contato com o [suporte](https://support.claude.com/).

## Próximos passos

<CardGroup cols={2}>
  <Card title="Erros" icon="info" href="https://platform.claude.com/docs/pt-BR/api/errors">
    Entenda os códigos de status HTTP, o formato das respostas de erro e os IDs de requisição que a Claude API retorna, e trate erros com as exceções tipadas do SDK.
  </Card>

  <Card title="Visão geral da API" icon="compass" href="https://platform.claude.com/docs/pt-BR/api/overview">
    Explore os recursos da Claude API, incluindo as APIs atualmente em beta.
  </Card>
</CardGroup>
