A ferramenta de busca na web (web fetch) permite que o Claude recupere o conteúdo completo de páginas da web e documentos PDF especificados.
A versão mais recente da ferramenta de busca na web (web_fetch_20260318) oferece suporte a filtragem dinâmica com Claude Fable 5, Claude Opus 4.8, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 e Claude Sonnet 4.6. O Claude pode escrever e executar código para filtrar o conteúdo buscado antes que ele chegue à janela de contexto, mantendo apenas as informações relevantes e descartando o restante. Isso reduz o consumo de tokens enquanto mantém a qualidade da resposta. A web_fetch_20260318 também adiciona controle de inclusão de resposta para fluxos de trabalho agênticos. As versões anteriores (web_fetch_20260309 para filtragem dinâmica e bypass de cache, web_fetch_20260209 apenas para filtragem dinâmica, web_fetch_20250910 para busca básica) permanecem disponíveis.
A busca na web (com e sem filtragem dinâmica) está disponível na API do Claude, no Claude Platform on AWS e no Microsoft Foundry. No Microsoft Foundry, a busca na web requer uma implantação Hosted on Anthropic. Atualmente, não está disponível no Amazon Bedrock ou no Google Cloud.
Para o Claude Mythos Preview, a busca na web está disponível na API do Claude e no Microsoft Foundry. Atualmente, não está disponível para o Mythos Preview no Amazon Bedrock ou no Google Cloud.
Use o formulário de feedback para fornecer feedback sobre a qualidade das respostas do modelo, a própria API ou a qualidade da documentação.
Para elegibilidade de Zero Data Retention e a solução alternativa allowed_callers, consulte Ferramentas de servidor.
Habilitar a ferramenta de busca na web em ambientes onde o Claude processa entradas não confiáveis junto com dados sensíveis representa riscos de exfiltração de dados. Use esta ferramenta apenas em ambientes confiáveis ou ao lidar com dados não sensíveis.
Para minimizar os riscos de exfiltração, o Claude não tem permissão para construir URLs dinamicamente. O Claude só pode buscar URLs que foram explicitamente fornecidas pelo usuário ou que vêm de resultados anteriores de busca na web ou de busca de conteúdo na web. No entanto, ainda há um risco residual que deve ser cuidadosamente considerado ao usar esta ferramenta.
Se a exfiltração de dados for uma preocupação, considere:
max_uses para limitar o número de requisiçõesallowed_domains para restringir a domínios seguros conhecidosPara suporte de modelos, consulte a Referência de ferramentas.
A busca na web é uma ferramenta de servidor: a API busca o conteúdo durante a requisição e insere os resultados na conversa. Você não executa nada nem retorna um tool_result. A exceção é quando o Claude chama a busca na web e uma de suas ferramentas de cliente no mesmo grupo de chamadas de ferramentas paralelas: a API retorna a resposta com stop_reason: "tool_use" antes que essa busca seja executada e, em seguida, executa a busca quando você envia de volta os blocos tool_result do cliente. Consulte Combinando ferramentas de servidor e ferramentas de cliente em um turno.
Quando você adiciona a ferramenta de busca na web à sua requisição de API:
A ferramenta de busca na web atualmente não oferece suporte a sites renderizados dinamicamente com JavaScript.
O Claude busca quando a requisição aponta para uma página ou documento específico:
O Claude não busca para perguntas de conhecimento geral ou abertas que não fazem referência a uma página específica. "Resuma este artigo: <url>" aciona uma busca. "Quais são as melhores práticas para design de API REST?" é respondido diretamente.
Buscar páginas da web e PDFs completos pode consumir tokens rapidamente, especialmente quando apenas informações específicas são necessárias de documentos grandes. Com web_fetch_20260209 ou posterior, o Claude pode escrever e executar código para filtrar o conteúdo buscado antes de carregá-lo no contexto.
Essa filtragem dinâmica é particularmente útil para:
A filtragem dinâmica é executada na ferramenta de execução de código, que a API habilita automaticamente para a requisição. Você não precisa adicionar a ferramenta de execução de código ao array tools.
Para habilitar a filtragem dinâmica, use web_fetch_20260209 ou qualquer versão posterior. Os exemplos a seguir usam web_fetch_20260209:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Fetch the content at https://example.com/research-paper and extract the key findings.",
}
],
tools=[{"type": "web_fetch_20260209", "name": "web_fetch"}],
)
print(response)Forneça a ferramenta de busca na web em sua requisição de API:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Please analyze the content at https://example.com/article",
}
],
tools=[{"type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5}],
)
print(response)A ferramenta de busca na web oferece suporte aos seguintes parâmetros:
{
"type": "web_fetch_20250910",
"name": "web_fetch",
// Optional: Limit the number of fetches per request
"max_uses": 10,
// Optional: Only fetch from these domains
"allowed_domains": ["example.com", "docs.example.com"],
// Optional: Never fetch from these domains (cannot be combined with allowed_domains)
"blocked_domains": ["private.example.com"],
// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},
// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}Versões posteriores da ferramenta adicionam mais dois parâmetros opcionais: use_cache requer web_fetch_20260309 ou posterior (consulte Bypass de cache), e response_inclusion requer web_fetch_20260318 ou posterior (consulte Inclusão de resposta).
O parâmetro max_uses limita o número de buscas na web realizadas. Buscas com falha contam para o limite. Se o Claude tentar mais buscas do que o permitido, o web_fetch_tool_result será um erro com o código de erro max_uses_exceeded. Atualmente, não há limite padrão.
Para filtragem de domínio com allowed_domains e blocked_domains, consulte Ferramentas de servidor.
O parâmetro max_content_tokens limita a quantidade de conteúdo incluída no contexto. Se o conteúdo buscado exceder esse limite, a ferramenta o trunca. Isso ajuda a controlar o uso de tokens ao buscar documentos grandes. O limite se aplica ao conteúdo de texto, não ao conteúdo binário, como PDFs.
O limite do parâmetro max_content_tokens é aproximado. O número real de tokens de entrada usados pode variar em uma pequena quantidade.
Requer web_fetch_20260309 ou posterior (incluindo web_fetch_20260318).
O parâmetro use_cache controla se o conteúdo em cache pode ser retornado. Defina "use_cache": false para ignorar o cache e buscar conteúdo atualizado. O padrão é true. Desabilite o cache apenas quando o usuário solicitar explicitamente conteúdo atualizado ou ao buscar fontes que mudam rapidamente, porque ignorar o cache aumenta a latência.
{
"tools": [
{
"type": "web_fetch_20260309",
"name": "web_fetch",
"use_cache": false
}
]
}Requer web_fetch_20260318 ou posterior.
O parâmetro response_inclusion controla como os blocos de resultado de busca aparecem na resposta da API quando o resultado foi consumido por uma chamada de execução de código concluída no mesmo turno. Defina "response_inclusion": "excluded" para remover completamente esses pares aninhados de blocos server_tool_use e de resultado da resposta, reduzindo os custos de tokens de saída para fluxos de trabalho agênticos que não precisam ecoar o conteúdo bruto da página de volta ao cliente. O padrão é "full". Resultados de chamadas diretas, ou de chamadas de execução de código que pausaram antes de serem concluídas, são sempre retornados na íntegra para que possam ser enviados de volta no próximo turno.
{
"tools": [
{
"type": "web_fetch_20260318",
"name": "web_fetch",
"response_inclusion": "excluded"
}
]
}Ao contrário da pesquisa na web, onde as citações estão sempre habilitadas, as citações são opcionais para a busca na web e desabilitadas por padrão. Defina "citations": {"enabled": true} para permitir que o Claude cite passagens específicas de documentos buscados.
Ao exibir saídas da API diretamente para usuários finais, as citações devem ser incluídas para a fonte original. Se você estiver fazendo modificações nas saídas da API, incluindo reprocessamento e/ou combinação com seu próprio material antes de exibi-las aos usuários finais, exiba citações conforme apropriado com base em consulta à sua equipe jurídica.
Aqui está um exemplo de estrutura de resposta:
{
"role": "assistant",
"content": [
// 1. Claude's decision to fetch
{
"type": "text",
"text": "I'll fetch the content from the article to analyze it."
},
// 2. The fetch request
{
"type": "server_tool_use",
"id": "srvtoolu_01234567890abcdef",
"name": "web_fetch",
"input": {
"url": "https://example.com/article"
}
},
// 3. Fetch results
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_01234567890abcdef",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/article",
"content": {
"type": "document",
"source": {
"type": "text",
"media_type": "text/plain",
"data": "Full text content of the article..."
},
"title": "Article Title",
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:00Z"
}
},
// 4. Claude's analysis with citations (if enabled)
{
"text": "Based on the article, ",
"type": "text"
},
{
"text": "the main argument presented is that artificial intelligence will transform healthcare",
"type": "text",
"citations": [
{
"type": "char_location",
"document_index": 0,
"document_title": "Article Title",
"start_char_index": 1234,
"end_char_index": 1456,
"cited_text": "Artificial intelligence is poised to revolutionize healthcare delivery..."
}
]
}
],
"id": "msg_a930390d3a",
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"server_tool_use": {
"web_fetch_requests": 1
}
},
"stop_reason": "end_turn"
}Os resultados de busca incluem:
url: A URL que foi buscadacontent: Um bloco de documento contendo o conteúdo buscadoretrieved_at: Timestamp de quando o conteúdo foi recuperadoA ferramenta de busca na web armazena resultados em cache para melhorar o desempenho e reduzir requisições redundantes. O conteúdo retornado pode nem sempre refletir a versão mais recente disponível na URL. O comportamento do cache é gerenciado automaticamente e pode mudar ao longo do tempo para otimizar diferentes tipos de conteúdo e padrões de uso. Para buscar conteúdo atualizado, defina "use_cache": false (consulte Bypass de cache).
Para documentos PDF, o conteúdo é retornado como dados codificados em base64:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_02",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/paper.pdf",
"content": {
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
},
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:02Z"
}
}Quando a ferramenta de busca na web encontra um erro, a API do Claude retorna uma resposta 200 (sucesso) com o erro representado no corpo da resposta. O Claude vê o resultado do erro e continua o turno. Por exemplo:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_result_error",
"error_code": "url_not_accessible"
}
}Estes são os possíveis códigos de erro:
invalid_tool_input: Entrada de ferramenta inválida, como uma URL malformada ou um esquema não HTTP(S)url_too_long: A URL excede o comprimento máximo (250 caracteres)url_not_allowed: URL bloqueada por regras de filtragem de domínio (incluindo as configurações da sua organização) ou por restrições do lado da Anthropic, como endereços privados e robots.txturl_not_in_prior_context: A URL não apareceu anteriormente na conversa (consulte Validação de URL)url_not_accessible: Falha ao buscar conteúdo (erro HTTP)too_many_requests: Limite de taxa excedidounsupported_content_type: Tipo de conteúdo não suportado (apenas texto, HTML e PDF)max_uses_exceeded: Máximo de usos da ferramenta de busca na web excedidounavailable: Ocorreu um erro internoPor razões de segurança, a ferramenta de busca na web só pode buscar URLs que apareceram anteriormente no contexto da conversa. Isso inclui:
A ferramenta não pode buscar URLs arbitrárias que o Claude gera ou URLs de ferramentas de servidor baseadas em contêiner (Execução de Código, Bash, etc.).
Quando as ferramentas de pesquisa na web e busca na web estão habilitadas, e o usuário nomeia uma página ou documento específico sem fornecer uma URL (por exemplo, "leia o README do repositório anthropics/anthropic-sdk-python"), o Claude usa a pesquisa na web para localizá-lo e, em seguida, busca o resultado. O exemplo a seguir solicita uma pesquisa e uma análise em uma única requisição:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Find recent articles about quantum computing and analyze the most relevant one in detail",
}
],
tools=[
{"type": "web_search_20250305", "name": "web_search", "max_uses": 3},
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5,
"citations": {"enabled": True},
},
],
)
print(response)Neste fluxo de trabalho, o Claude:
Para armazenar definições de ferramentas em cache entre turnos, consulte Uso de ferramentas com cache de prompt.
Com o streaming habilitado, os eventos de busca fazem parte do stream com uma pausa durante a recuperação de conteúdo:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_abc123", "type": "message"}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}
// Claude's decision to fetch
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_fetch"}}
// Fetch URL streamed
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"url\":\"https://example.com/article\"}"}}
// Pause while fetch executes
// Fetch results streamed
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_fetch_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "web_fetch_result", "url": "https://example.com/article", "content": {"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "Article content..."}}}}}
// Claude's response continues...Você pode incluir a ferramenta de busca na web na Messages Batches API. As chamadas da ferramenta de busca na web por meio da Messages Batches API têm o mesmo preço das requisições regulares da Messages API.
O uso do web fetch não tem cobranças adicionais além dos custos padrão de tokens:
{
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"server_tool_use": {
"web_fetch_requests": 1
}
}
}A ferramenta web fetch está disponível na API do Claude sem custo adicional. Você paga apenas os custos padrão de tokens pelo conteúdo buscado que se torna parte do contexto da sua conversa.
Para se proteger contra a busca inadvertida de conteúdo grande que consumiria tokens excessivos, use o parâmetro max_content_tokens para definir limites apropriados com base no seu caso de uso e considerações de orçamento.
Exemplo de uso de tokens para conteúdo típico:
Execute código Python e bash em um contêiner isolado para analisar dados, gerar arquivos e iterar em soluções.
Trabalhe com ferramentas executadas pela Anthropic: blocos server_tool_use, continuação de pause_turn e filtragem de domínio.
Diretório de ferramentas fornecidas pela Anthropic e referência para propriedades opcionais de definição de ferramentas.
Was this page helpful?