Das Web-Fetch-Tool ermöglicht es Claude, vollständige Inhalte von angegebenen Webseiten und PDF-Dokumenten abzurufen.
Die neueste Version des Web-Fetch-Tools (web_fetch_20260318) unterstützt dynamisches Filtern mit Claude Fable 5, Claude Opus 4.8, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 und Claude Sonnet 4.6. Claude kann Code schreiben und ausführen, um abgerufene Inhalte zu filtern, bevor sie das Kontextfenster erreichen, sodass nur relevante Informationen behalten und der Rest verworfen wird. Dies reduziert den Token-Verbrauch bei gleichbleibender Antwortqualität. web_fetch_20260318 fügt außerdem die Steuerung der Antwort-Einbeziehung für agentische Workflows hinzu. Die vorherigen Versionen (web_fetch_20260309 für dynamisches Filtern und Cache-Umgehung, web_fetch_20260209 nur für dynamisches Filtern, web_fetch_20250910 für einfaches Abrufen) bleiben verfügbar.
Web Fetch (mit und ohne dynamisches Filtern) ist über die Claude API, Claude Platform on AWS und Microsoft Foundry verfügbar. Auf Microsoft Foundry erfordert Web Fetch ein Hosted on Anthropic Deployment. Es ist derzeit nicht auf Amazon Bedrock oder Google Cloud verfügbar.
Für Claude Mythos Preview ist Web Fetch über die Claude API und Microsoft Foundry verfügbar. Es ist derzeit nicht für Mythos Preview auf Amazon Bedrock oder Google Cloud verfügbar.
Verwende das Feedback-Formular, um Feedback zur Qualität der Modellantworten, zur API selbst oder zur Qualität der Dokumentation zu geben.
Informationen zur Zero-Data-Retention-Berechtigung und zum allowed_callers-Workaround findest du unter Server-Tools.
Das Aktivieren des Web-Fetch-Tools in Umgebungen, in denen Claude nicht vertrauenswürdige Eingaben zusammen mit sensiblen Daten verarbeitet, birgt Risiken der Datenexfiltration. Verwende dieses Tool nur in vertrauenswürdigen Umgebungen oder beim Umgang mit nicht sensiblen Daten.
Um Exfiltrationsrisiken zu minimieren, darf Claude keine URLs dynamisch konstruieren. Claude kann nur URLs abrufen, die explizit vom Nutzer bereitgestellt wurden oder aus vorherigen Web-Search- oder Web-Fetch-Ergebnissen stammen. Es besteht jedoch weiterhin ein Restrisiko, das bei der Verwendung dieses Tools sorgfältig berücksichtigt werden sollte.
Wenn Datenexfiltration ein Anliegen ist, solltest du Folgendes in Betracht ziehen:
max_uses verwenden, um die Anzahl der Anfragen zu begrenzenallowed_domains verwenden, um auf bekannte sichere Domains zu beschränkenInformationen zur Modellunterstützung findest du in der Tool-Referenz.
Web Fetch ist ein Server-Tool: Die API ruft den Inhalt während der Anfrage ab und fügt die Ergebnisse in die Konversation ein. Du führst nichts aus und gibst kein tool_result zurück. Die Ausnahme ist, wenn Claude Web Fetch und eines deiner Client-Tools in derselben Gruppe paralleler Tool-Aufrufe aufruft: Die API gibt die Antwort mit stop_reason: "tool_use" zurück, bevor dieser Fetch ausgeführt wurde, und führt den Fetch dann aus, wenn du die Client-tool_result-Blöcke zurücksendest. Siehe Server-Tools und Client-Tools in einem Turn kombinieren.
Wenn du das Web-Fetch-Tool zu deiner API-Anfrage hinzufügst:
Das Web-Fetch-Tool unterstützt derzeit keine Websites, die dynamisch mit JavaScript gerendert werden.
Claude ruft Inhalte ab, wenn die Anfrage auf eine bestimmte Seite oder ein bestimmtes Dokument verweist:
Claude ruft keine Inhalte für allgemeine Wissensfragen oder offene Fragen ab, die sich nicht auf eine bestimmte Seite beziehen. „Fasse diesen Artikel zusammen: <url>" löst einen Abruf aus. „Was sind Best Practices für REST-API-Design?" wird direkt beantwortet.
Das Abrufen vollständiger Webseiten und PDFs kann schnell Token verbrauchen, insbesondere wenn nur bestimmte Informationen aus großen Dokumenten benötigt werden. Mit web_fetch_20260209 oder höher kann Claude Code schreiben und ausführen, um den abgerufenen Inhalt zu filtern, bevor er in den Kontext geladen wird.
Dieses dynamische Filtern ist besonders nützlich für:
Dynamisches Filtern läuft über das Code-Execution-Tool, das die API automatisch für die Anfrage aktiviert. Du musst das Code-Execution-Tool nicht zum tools-Array hinzufügen.
Um dynamisches Filtern zu aktivieren, verwende web_fetch_20260209 oder eine spätere Version. Die folgenden Beispiele verwenden 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)Gib das Web-Fetch-Tool in deiner API-Anfrage an:
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)Das Web-Fetch-Tool unterstützt die folgenden Parameter:
{
"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
}Spätere Tool-Versionen fügen zwei weitere optionale Parameter hinzu: use_cache erfordert web_fetch_20260309 oder höher (siehe Cache-Umgehung), und response_inclusion erfordert web_fetch_20260318 oder höher (siehe Antwort-Einbeziehung).
Der Parameter max_uses begrenzt die Anzahl der durchgeführten Web-Fetches. Fehlgeschlagene Abrufe zählen gegen das Limit. Wenn Claude mehr Abrufe versucht als erlaubt, ist das web_fetch_tool_result ein Fehler mit dem Fehlercode max_uses_exceeded. Es gibt derzeit kein Standardlimit.
Informationen zur Domain-Filterung mit allowed_domains und blocked_domains findest du unter Server-Tools.
Der Parameter max_content_tokens begrenzt die Menge an Inhalten, die in den Kontext aufgenommen werden. Wenn der abgerufene Inhalt dieses Limit überschreitet, kürzt das Tool ihn. Dies hilft, die Token-Nutzung beim Abrufen großer Dokumente zu kontrollieren. Das Limit gilt für Textinhalte, nicht für binäre Inhalte wie PDFs.
Das Limit des Parameters max_content_tokens ist ein Näherungswert. Die tatsächliche Anzahl der verwendeten Input-Token kann geringfügig abweichen.
Erfordert web_fetch_20260309 oder höher (einschließlich web_fetch_20260318).
Der Parameter use_cache steuert, ob zwischengespeicherte Inhalte zurückgegeben werden dürfen. Setze "use_cache": false, um den Cache zu umgehen und frische Inhalte abzurufen. Der Standardwert ist true. Deaktiviere das Caching nur, wenn der Nutzer explizit frische Inhalte anfordert oder wenn sich schnell ändernde Quellen abgerufen werden, da das Umgehen des Caches die Latenz erhöht.
{
"tools": [
{
"type": "web_fetch_20260309",
"name": "web_fetch",
"use_cache": false
}
]
}Erfordert web_fetch_20260318 oder höher.
Der Parameter response_inclusion steuert, wie Fetch-Ergebnisblöcke in der API-Antwort erscheinen, wenn das Ergebnis von einem abgeschlossenen Code-Execution-Aufruf im selben Turn konsumiert wurde. Setze "response_inclusion": "excluded", um diese verschachtelten server_tool_use- und Ergebnisblock-Paare vollständig aus der Antwort zu entfernen und so die Output-Token-Kosten für agentische Workflows zu reduzieren, die den rohen Seiteninhalt nicht an den Client zurückgeben müssen. Der Standardwert ist "full". Ergebnisse aus direkten Aufrufen oder aus Code-Execution-Aufrufen, die vor dem Abschluss pausiert wurden, werden immer vollständig zurückgegeben, damit sie im nächsten Turn zurückgesendet werden können.
{
"tools": [
{
"type": "web_fetch_20260318",
"name": "web_fetch",
"response_inclusion": "excluded"
}
]
}Im Gegensatz zur Websuche, bei der Zitate immer aktiviert sind, sind Zitate für Web Fetch optional und standardmäßig deaktiviert. Setze "citations": {"enabled": true}, um Claude zu ermöglichen, bestimmte Passagen aus abgerufenen Dokumenten zu zitieren.
Wenn API-Ausgaben direkt an Endnutzer angezeigt werden, müssen Zitate zur ursprünglichen Quelle enthalten sein. Wenn du Änderungen an API-Ausgaben vornimmst, einschließlich der Weiterverarbeitung und/oder Kombination mit deinem eigenen Material, bevor du sie Endnutzern anzeigst, zeige Zitate nach Rücksprache mit deinem Rechtsteam entsprechend an.
Hier ist ein Beispiel für eine Antwortstruktur:
{
"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"
}Fetch-Ergebnisse enthalten:
url: Die abgerufene URLcontent: Ein Dokumentblock mit dem abgerufenen Inhaltretrieved_at: Zeitstempel, wann der Inhalt abgerufen wurdeDas Web-Fetch-Tool speichert Ergebnisse zwischen, um die Leistung zu verbessern und redundante Anfragen zu reduzieren. Der zurückgegebene Inhalt spiegelt möglicherweise nicht immer die neueste unter der URL verfügbare Version wider. Das Cache-Verhalten wird automatisch verwaltet und kann sich im Laufe der Zeit ändern, um für verschiedene Inhaltstypen und Nutzungsmuster zu optimieren. Um frische Inhalte abzurufen, setze "use_cache": false (siehe Cache-Umgehung).
Bei PDF-Dokumenten wird der Inhalt als base64-kodierte Daten zurückgegeben:
{
"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"
}
}Wenn das Web-Fetch-Tool auf einen Fehler stößt, gibt die Claude API eine 200-Antwort (Erfolg) zurück, wobei der Fehler im Antworttext dargestellt wird. Claude sieht das Fehlerergebnis und setzt den Turn fort. Zum Beispiel:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_result_error",
"error_code": "url_not_accessible"
}
}Dies sind die möglichen Fehlercodes:
invalid_tool_input: Ungültige Tool-Eingabe, z. B. eine fehlerhafte URL oder ein Nicht-HTTP(S)-Schemaurl_too_long: URL überschreitet die maximale Länge (250 Zeichen)url_not_allowed: URL durch Domain-Filterregeln blockiert (einschließlich der Einstellungen deiner Organisation) oder durch Anthropic-seitige Einschränkungen, wie private Adressen und robots.txturl_not_in_prior_context: URL ist nicht früher in der Konversation aufgetaucht (siehe URL-Validierung)url_not_accessible: Abrufen des Inhalts fehlgeschlagen (HTTP-Fehler)too_many_requests: Ratenlimit überschrittenunsupported_content_type: Inhaltstyp nicht unterstützt (nur Text, HTML und PDF)max_uses_exceeded: Maximale Anzahl der Web-Fetch-Tool-Nutzungen überschrittenunavailable: Ein interner Fehler ist aufgetretenAus Sicherheitsgründen kann das Web-Fetch-Tool nur URLs abrufen, die zuvor im Konversationskontext aufgetaucht sind. Dazu gehören:
Das Tool kann keine beliebigen URLs abrufen, die Claude generiert, oder URLs aus containerbasierten Server-Tools (Code Execution, Bash usw.).
Wenn sowohl das Web-Search- als auch das Web-Fetch-Tool aktiviert sind und der Nutzer eine bestimmte Seite oder ein bestimmtes Dokument nennt, ohne eine URL anzugeben (zum Beispiel „lies die README aus dem Repository anthropics/anthropic-sdk-python"), verwendet Claude die Websuche, um es zu lokalisieren, und ruft dann das Ergebnis ab. Das folgende Beispiel fordert eine Suche und eine Analyse in einer Anfrage an:
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)In diesem Workflow:
Informationen zum Caching von Tool-Definitionen über mehrere Turns hinweg findest du unter Tool-Nutzung mit Prompt-Caching.
Bei aktiviertem Streaming sind Fetch-Events Teil des Streams mit einer Pause während des Inhaltsabrufs:
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...Du kannst das Web-Fetch-Tool in die Messages Batches API einbinden. Web-Fetch-Tool-Aufrufe über die Messages Batches API werden genauso berechnet wie in regulären Messages-API-Anfragen.
Die Nutzung von Web Fetch verursacht keine zusätzlichen Kosten über die standardmäßigen Token-Kosten hinaus:
{
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"server_tool_use": {
"web_fetch_requests": 1
}
}
}Das Web-Fetch-Tool ist über die Claude API ohne zusätzliche Kosten verfügbar. Du zahlst nur die standardmäßigen Token-Kosten für die abgerufenen Inhalte, die Teil deines Konversationskontexts werden.
Um dich davor zu schützen, versehentlich große Inhalte abzurufen, die übermäßig viele Tokens verbrauchen würden, verwende den Parameter max_content_tokens, um angemessene Limits basierend auf deinem Anwendungsfall und deinen Budgetüberlegungen festzulegen.
Beispiel für den Token-Verbrauch bei typischen Inhalten:
Führe Python- und Bash-Code in einem Sandbox-Container aus, um Daten zu analysieren, Dateien zu generieren und Lösungen iterativ zu verbessern.
Arbeite mit von Anthropic ausgeführten Tools: server_tool_use-Blöcke, pause_turn-Fortsetzung und Domain-Filterung.
Verzeichnis der von Anthropic bereitgestellten Tools und Referenz für optionale Tool-Definitionseigenschaften.
Was this page helpful?