Was this page helpful?
La herramienta de obtención web permite a Claude recuperar contenido completo de páginas web y documentos PDF especificados.
La última versión de la herramienta de obtención web (web_fetch_20260209) admite filtrado dinámico con Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6 y Claude Sonnet 4.6. Claude puede escribir y ejecutar código para filtrar el contenido obtenido antes de que llegue a la ventana de contexto, manteniendo solo la información relevante y descartando el resto. Esto reduce el consumo de tokens mientras se mantiene la calidad de la respuesta. La versión anterior de la herramienta (web_fetch_20250910) sigue disponible sin filtrado dinámico.
Para Claude Mythos Preview, la obtención web es compatible con la API de Claude y Microsoft Foundry únicamente. No está disponible para Mythos Preview en Amazon Bedrock o Google Vertex AI.
Utiliza el formulario de retroalimentación para proporcionar comentarios sobre la calidad de las respuestas del modelo, la API en sí o la calidad de la documentación.
Para la elegibilidad de Retención Cero de Datos y la solución alternativa de allowed_callers, consulta Herramientas de servidor.
Habilitar la herramienta de obtención web en entornos donde Claude procesa entrada no confiable junto con datos sensibles presenta riesgos de exfiltración de datos. Utiliza esta herramienta solo en entornos confiables o cuando manejes datos no sensibles.
Para minimizar los riesgos de exfiltración, Claude no puede construir dinámicamente URLs. Claude solo puede obtener URLs que hayan sido proporcionadas explícitamente por el usuario o que provengan de resultados anteriores de búsqueda web u obtención web. Sin embargo, todavía existe un riesgo residual que debe considerarse cuidadosamente al usar esta herramienta.
Si la exfiltración de datos es una preocupación, considera:
max_uses para limitar el número de solicitudesallowed_domains para restringir a dominios seguros conocidosPara la compatibilidad del modelo, consulta la Referencia de herramientas.
Cuando añades la herramienta de obtención web a tu solicitud de API:
La herramienta de obtención web actualmente no admite sitios web renderizados dinámicamente a través de JavaScript.
Obtener páginas web completas y PDFs puede consumir rápidamente tokens, especialmente cuando solo se necesita información específica de documentos grandes. Con la versión de herramienta web_fetch_20260209, Claude puede escribir y ejecutar código para filtrar el contenido obtenido antes de cargarlo en el contexto.
Este filtrado dinámico es particularmente útil para:
El filtrado dinámico requiere que la herramienta de ejecución de código esté habilitada. La herramienta de obtención web (con y sin filtrado dinámico) está disponible en la API de Claude y Microsoft Azure.
Para habilitar el filtrado dinámico, usa la versión de herramienta web_fetch_20260209:
Proporciona la herramienta de obtención web en tu solicitud de API:
La herramienta de obtención web admite los siguientes parámetros:
{
"type": "web_fetch_20250910",
"name": "web_fetch",
// Opcional: Limita el número de obtenciones por solicitud
"max_uses": 10,
// Opcional: Solo obtén de estos dominios
"allowed_domains": ["example.com", "docs.example.com"],
// Opcional: Nunca obtengas de estos dominios
"blocked_domains": ["private.example.com"],
// Opcional: Habilita citas para contenido obtenido
"citations": {
"enabled": true
},
// Opcional: Longitud máxima de contenido en tokens
"max_content_tokens": 100000
}El parámetro max_uses limita el número de obtenciones web realizadas. Si Claude intenta más obtenciones de las permitidas, el web_fetch_tool_result es un error con el código de error max_uses_exceeded. Actualmente no hay límite predeterminado.
Para el filtrado de dominios con allowed_domains y blocked_domains, consulta Herramientas de servidor.
El parámetro max_content_tokens limita la cantidad de contenido incluido en el contexto. Si el contenido obtenido excede este límite, la herramienta lo trunca. Esto ayuda a controlar el uso de tokens al obtener documentos grandes.
El límite del parámetro max_content_tokens es aproximado. El número real de tokens de entrada utilizados puede variar ligeramente.
A diferencia de la búsqueda web donde las citas siempre están habilitadas, las citas son opcionales para la obtención web. Establece "citations": {"enabled": true} para permitir que Claude cite pasajes específicos de documentos obtenidos.
Al mostrar salidas de API directamente a usuarios finales, las citas deben incluirse a la fuente original. Si realizas modificaciones en las salidas de API, incluyendo reprocesamiento y/o combinación con tu propio material antes de mostrarlas a usuarios finales, muestra citas según corresponda basándote en consulta con tu equipo legal.
Aquí hay una estructura de respuesta de ejemplo:
{
"role": "assistant",
"content": [
// 1. Decisión de Claude de obtener
{
"type": "text",
"text": "I'll fetch the content from the article to analyze it."
},
// 2. La solicitud de obtención
{
"type": "server_tool_use",
"id": "srvtoolu_01234567890abcdef",
"name": "web_fetch",
"input": {
"url": "https://example.com/article"
}
},
// 3. Resultados de obtención
{
"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. Análisis de Claude con citas (si está habilitado)
{
"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"
}Los resultados de obtención incluyen:
url: La URL que fue obtenidacontent: Un bloque de documento que contiene el contenido obtenidoretrieved_at: Marca de tiempo de cuándo se recuperó el contenidoLa herramienta de obtención web almacena en caché los resultados para mejorar el rendimiento y reducir solicitudes redundantes. El contenido devuelto puede no siempre reflejar la versión más reciente disponible en la URL. El comportamiento del caché se gestiona automáticamente y puede cambiar con el tiempo para optimizar diferentes tipos de contenido y patrones de uso.
Para documentos PDF, el contenido se devuelve como datos codificados en 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"
}
}Cuando la herramienta de obtención web encuentra un error, la API de Claude devuelve una respuesta 200 (éxito) con el error representado en el cuerpo de la respuesta:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_error",
"error_code": "url_not_accessible"
}
}Estos son los códigos de error posibles:
invalid_input: Formato de URL inválidourl_too_long: La URL excede la longitud máxima (250 caracteres)url_not_allowed: URL bloqueada por reglas de filtrado de dominios y restricciones del modelourl_not_accessible: Error al obtener contenido (error HTTP)too_many_requests: Límite de velocidad excedidounsupported_content_type: Tipo de contenido no admitido (solo texto y PDF)max_uses_exceeded: Máximo de usos de herramienta de obtención web excedidounavailable: Ocurrió un error internoPor razones de seguridad, la herramienta de obtención web solo puede obtener URLs que hayan aparecido previamente en el contexto de la conversación. Esto incluye:
La herramienta no puede obtener URLs arbitrarias que Claude genere o URLs de herramientas de servidor basadas en contenedores (Ejecución de Código, Bash, etc.).
La obtención web funciona sin problemas con la búsqueda web para la recopilación de información integral:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
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},
},
],
)En este flujo de trabajo, Claude:
Para almacenar en caché definiciones de herramientas entre turnos, consulta Uso de herramientas con almacenamiento en caché de mensajes.
Con la transmisión habilitada, los eventos de obtención son parte de la transmisión con una pausa durante la recuperación de contenido:
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...Puedes incluir la herramienta de obtención web en la API de Lotes de Mensajes. Las llamadas de herramienta de obtención web a través de la API de Lotes de Mensajes se cotizan igual que las solicitudes de API de Mensajes regulares.
Web fetch usage has no additional charges beyond standard token costs:
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"server_tool_use": {
"web_fetch_requests": 1
}
}The web fetch tool is available on the Claude API at no additional cost. You only pay standard token costs for the fetched content that becomes part of your conversation context.
To protect against inadvertently fetching large content that would consume excessive tokens, use the max_content_tokens parameter to set appropriate limits based on your use case and budget considerations.
Example token usage for typical content:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
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)client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
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)