A ferramenta de web fetch permite que Claude recupere o conteúdo completo de páginas web e documentos PDF especificados.
A versão mais recente da ferramenta de web fetch (web_fetch_20260318) suporta 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. 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. 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.
Web fetch (com e sem filtragem dinâmica) está disponível na Claude API, Claude Platform na AWS e Microsoft Foundry. No Microsoft Foundry, web fetch requer uma implantação Hosted on Anthropic. Atualmente não está disponível no Amazon Bedrock ou Google Cloud.
Para Claude Mythos Preview, web fetch está disponível na Claude API e no Microsoft Foundry. Atualmente não está disponível para Mythos Preview no Amazon Bedrock ou 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 web fetch em ambientes onde Claude processa entradas não confiáveis junto com dados sensíveis apresenta 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, Claude não tem permissão para construir URLs dinamicamente. Claude só pode buscar URLs que foram explicitamente fornecidas pelo usuário ou que vêm de resultados anteriores de web search ou web fetch. 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 conhecidos e segurosPara suporte de modelos, consulte a Referência de ferramentas.
Web fetch é 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 Claude chama web fetch 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 tenha sido executada, e então executa a busca quando você envia de volta os blocos tool_result do cliente. Consulte Misturando ferramentas de servidor e ferramentas de cliente em um turno.
Quando você adiciona a ferramenta de web fetch à sua requisição de API:
A ferramenta de web fetch atualmente não suporta sites renderizados dinamicamente com JavaScript.
Claude busca quando a requisição aponta para uma página ou documento específico:
Claude não busca para perguntas de conhecimento geral ou abertas que não referenciam uma página específica. "Resuma este artigo: <url>" aciona uma busca. "Quais são as melhores práticas para design de API REST?" é respondida diretamente.
Buscar páginas web completas e PDFs pode consumir tokens rapidamente, especialmente quando apenas informações específicas são necessárias de documentos grandes. Com web_fetch_20260209 ou posterior, 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_20260318:
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_20260318", "name": "web_fetch"}],
)
print(response)Forneça a ferramenta de web fetch 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 web fetch suporta os 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 web fetches realizados. Buscas com falha contam para o limite. Se Claude tentar mais buscas do que o permitido, o web_fetch_tool_result é um erro com o código de erro max_uses_exceeded. Atualmente não há limite padrão.
Para filtragem de domínios 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 a conteúdo de texto, não a 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 "latency" (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 fetch 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 descartar 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 para o cliente. O padrão é "full". Resultados de chamadas diretas, ou de chamadas de execução de código que pausaram antes de concluir, 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"
}
]
}Diferentemente do web search, onde as citações estão sempre habilitadas, as citações são opcionais para web fetch e desabilitadas por padrão. Defina "citations": {"enabled": true} para permitir que Claude cite trechos específicos dos 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 reprocessá-las e/ou combiná-las com seu próprio material antes de exibi-las aos usuários finais, exiba as 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 fetch 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 web fetch 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 para 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 web fetch encontra um erro, a Claude API retorna uma resposta 200 (sucesso) com o erro representado no corpo da resposta. 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 códigos de erro possíveis:
invalid_tool_input: Entrada de ferramenta inválida, como uma URL malformada ou um esquema não HTTP(S)url_too_long: URL excede o comprimento máximo (250 caracteres)url_not_allowed: URL bloqueada por regras de filtragem de domínios (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 web fetch excedidounavailable: Ocorreu um erro internoPor razões de segurança, a ferramenta de web fetch só pode buscar URLs que apareceram anteriormente no contexto da conversa. Isso inclui:
A ferramenta não pode buscar URLs arbitrárias que Claude gera ou URLs de ferramentas de servidor baseadas em contêiner (Code Execution, Bash, etc.).
Quando as ferramentas de web search e web fetch 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"), Claude usa web search para localizá-lo e, em seguida, busca o resultado. O exemplo a seguir solicita uma busca 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, Claude:
Para fazer cache de definições de ferramentas entre turnos, consulte Uso de ferramentas com cache de prompt.
Com streaming habilitado, os eventos de fetch fazem parte do stream com uma pausa durante a recuperação do 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 web fetch na API de Lotes de Mensagens. Chamadas da ferramenta de web fetch através da API de Lotes de Mensagens têm o mesmo preço que aquelas em requisições regulares da API de Mensagens.
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 (sandbox) para analisar dados, gerar arquivos e iterar em soluções.
Trabalhe com ferramentas executadas pela Anthropic: blocos server_tool_use, continuação com pause_turn e filtragem de domínios.
Diretório de ferramentas fornecidas pela Anthropic e referência para propriedades opcionais de definição de ferramentas.
Was this page helpful?