L'outil de récupération web permet à Claude de récupérer le contenu complet de pages web et de documents PDF spécifiés.
La dernière version de l'outil de récupération web (web_fetch_20260209) prend en charge le filtrage dynamique avec Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6 et Claude Sonnet 4.6. Claude peut écrire et exécuter du code pour filtrer le contenu récupéré avant qu'il n'atteigne la fenêtre de contexte, en conservant uniquement les informations pertinentes et en supprimant le reste. Cela réduit la consommation de jetons tout en maintenant la qualité des réponses. La version précédente de l'outil (web_fetch_20250910) reste disponible sans filtrage dynamique.
Pour Claude Mythos Preview, la récupération web est prise en charge sur l'API Claude et Microsoft Foundry uniquement. Elle n'est pas disponible pour Mythos Preview sur Amazon Bedrock ou Google Vertex AI.
Utilisez le formulaire de retour d'information pour fournir des commentaires sur la qualité des réponses du modèle, l'API elle-même ou la qualité de la documentation.
Pour l'admissibilité à la rétention zéro des données et la solution de contournement allowed_callers, voir Outils serveur.
L'activation de l'outil de récupération web dans des environnements où Claude traite des entrées non fiables aux côtés de données sensibles pose des risques d'exfiltration de données. Utilisez cet outil uniquement dans des environnements de confiance ou lors du traitement de données non sensibles.
Pour minimiser les risques d'exfiltration, Claude n'est pas autorisé à construire dynamiquement des URLs. Claude ne peut récupérer que les URLs qui ont été explicitement fournies par l'utilisateur ou qui proviennent de résultats de recherche web ou de récupération web précédents. Cependant, il existe toujours un risque résiduel qui doit être soigneusement considéré lors de l'utilisation de cet outil.
Si l'exfiltration de données est une préoccupation, envisagez :
max_uses pour limiter le nombre de requêtesallowed_domains pour restreindre aux domaines connus sûrsPour le support du modèle, voir la Référence des outils.
Lorsque vous ajoutez l'outil de récupération web à votre requête API :
L'outil de récupération web ne prend actuellement pas en charge les sites web rendus dynamiquement via JavaScript.
La récupération de pages web et de PDF complets peut rapidement consommer des jetons, en particulier lorsque seules des informations spécifiques sont nécessaires à partir de documents volumineux. Avec la version de l'outil web_fetch_20260209, Claude peut écrire et exécuter du code pour filtrer le contenu récupéré avant de le charger dans le contexte.
Ce filtrage dynamique est particulièrement utile pour :
Le filtrage dynamique nécessite que l'outil d'exécution de code soit activé. L'outil de récupération web (avec et sans filtrage dynamique) est disponible sur l'API Claude et Microsoft Azure.
Pour activer le filtrage dynamique, utilisez la version de l'outil web_fetch_20260209 :
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)Fournissez l'outil de récupération web dans votre requête API :
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)L'outil de récupération web prend en charge les paramètres suivants :
{
"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
"blocked_domains": ["private.example.com"],
// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},
// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}Le paramètre max_uses limite le nombre de récupérations web effectuées. Si Claude tente plus de récupérations que autorisé, le web_fetch_tool_result est une erreur avec le code d'erreur max_uses_exceeded. Il n'y a actuellement pas de limite par défaut.
Pour le filtrage de domaine avec allowed_domains et blocked_domains, voir Outils serveur.
Le paramètre max_content_tokens limite la quantité de contenu incluse dans le contexte. Si le contenu récupéré dépasse cette limite, l'outil le tronque. Cela aide à contrôler l'utilisation des jetons lors de la récupération de documents volumineux.
La limite du paramètre max_content_tokens est approximative. Le nombre réel de jetons d'entrée utilisés peut varier légèrement.
Contrairement à la recherche web où les citations sont toujours activées, les citations sont optionnelles pour la récupération web. Définissez "citations": {"enabled": true} pour permettre à Claude de citer des passages spécifiques des documents récupérés.
Lors de l'affichage direct des résultats de l'API aux utilisateurs finaux, les citations doivent être incluses à la source originale. Si vous apportez des modifications aux résultats de l'API, y compris en les retraitant et/ou en les combinant avec votre propre matériel avant de les afficher aux utilisateurs finaux, affichez les citations selon les besoins en fonction de la consultation de votre équipe juridique.
Voici un exemple de structure de réponse :
{
"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"
}Les résultats de récupération incluent :
url : L'URL qui a été récupéréecontent : Un bloc de document contenant le contenu récupéréretrieved_at : Horodatage du moment où le contenu a été récupéréL'outil de récupération web met en cache les résultats pour améliorer les performances et réduire les requêtes redondantes. Le contenu retourné peut ne pas toujours refléter la dernière version disponible à l'URL. Le comportement du cache est géré automatiquement et peut changer au fil du temps pour optimiser les différents types de contenu et les modèles d'utilisation.
Pour les documents PDF, le contenu est retourné sous forme de données codées 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"
}
}Lorsque l'outil de récupération web rencontre une erreur, l'API Claude retourne une réponse 200 (succès) avec l'erreur représentée dans le corps de la réponse :
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_error",
"error_code": "url_not_accessible"
}
}Voici les codes d'erreur possibles :
invalid_input : Format d'URL invalideurl_too_long : L'URL dépasse la longueur maximale (250 caractères)url_not_allowed : URL bloquée par les règles de filtrage de domaine et les restrictions du modèleurl_not_accessible : Échec de la récupération du contenu (erreur HTTP)too_many_requests : Limite de débit dépasséeunsupported_content_type : Type de contenu non pris en charge (texte et PDF uniquement)max_uses_exceeded : Nombre maximum d'utilisations de l'outil de récupération web dépasséunavailable : Une erreur interne s'est produitePour des raisons de sécurité, l'outil de récupération web ne peut récupérer que les URLs qui ont précédemment apparues dans le contexte de la conversation. Cela inclut :
L'outil ne peut pas récupérer les URLs arbitraires que Claude génère ou les URLs provenant d'outils serveur basés sur des conteneurs (Exécution de code, Bash, etc.).
La récupération web fonctionne de manière transparente avec la recherche web pour une collecte d'informations complète :
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},
},
],
)Dans ce flux de travail, Claude va :
Pour la mise en cache des définitions d'outils entre les tours, voir Utilisation d'outils avec mise en cache des invites.
Avec le streaming activé, les événements de récupération font partie du flux avec une pause pendant la récupération du contenu :
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...Vous pouvez inclure l'outil de récupération web dans l'API Messages Batches. Les appels d'outils de récupération web via l'API Messages Batches sont facturés de la même manière que ceux dans les requêtes régulières de l'API Messages.
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:
Mécaniques partagées pour les outils exécutés par Anthropic.
Répertoire de tous les outils fournis par Anthropic.
Was this page helpful?