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 auf der Claude API, der Claude Platform auf 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.
Informationen zur Zero-Data-Retention-Berechtigung und zum allowed_callers-Workaround findest du unter Server-Tools.
Informationen 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 Mischen von Server-Tools und Client-Tools in einem Zug.
Wenn du das Web-Fetch-Tool zu deiner API-Anfrage hinzufügst:
Claude ruft ab, wenn die Anfrage auf eine bestimmte Seite oder ein bestimmtes Dokument verweist:
Claude ruft nicht bei allgemeinen Wissensfragen oder offenen 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 neuer 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:
Um dynamisches Filtern zu aktivieren, verwende web_fetch_20260209 oder eine neuere Version. Die folgenden Beispiele verwenden 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)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 neuer (siehe Cache-Umgehung), und response_inclusion erfordert web_fetch_20260318 oder neuer (siehe Antwort-Einbeziehung).
Der Parameter max_uses begrenzt die Anzahl der durchgeführten Web-Fetches. Fehlgeschlagene Abrufe zählen zum Limit. Wenn Claude mehr Abrufe versucht als erlaubt, ist das web_fetch_tool_result ein Fehler mit dem Fehlercode max_uses_exceeded. Derzeit gibt es 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 Inhalt, die in den Kontext aufgenommen wird. Wenn der abgerufene Inhalt dieses Limit überschreitet, kürzt das Tool ihn. Dies hilft, den Token-Verbrauch beim Abrufen großer Dokumente zu kontrollieren. Das Limit gilt für Textinhalte, nicht für binäre Inhalte wie PDFs.
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 Benutzer 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
}
]
}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 Zug 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 rohe Seiteninhalte 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 haben, werden immer vollständig zurückgegeben, damit sie im nächsten Zug zurückgesendet werden können.
{
"tools": [
{
"type": "web_fetch_20260318",
"name": "web_fetch",
"response_inclusion": "excluded"
}
]
}Anders als bei der Websuche, bei der Zitate immer aktiviert sind, sind Zitate bei Web-Fetch optional und standardmäßig deaktiviert. Setze "citations": {"enabled": true}, damit Claude bestimmte Passagen aus abgerufenen Dokumenten zitieren kann.
Hier ist eine Beispiel-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 URL, die abgerufen wurdecontent: Ein Dokumentblock, der den abgerufenen Inhalt enthältretrieved_at: Zeitstempel, wann der Inhalt abgerufen wurdeBei 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 Antwortkörper dargestellt wird. Claude sieht das Fehlerergebnis und setzt den Zug 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, wie 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 (einschließlich der Einstellungen deiner Organisation) oder durch Anthropic-seitige Einschränkungen blockiert, wie private Adressen und robots.txturl_not_in_prior_context: URL erschien nicht früher in der Konversation (siehe URL-Validierung)url_not_accessible: Inhalt konnte nicht abgerufen werden (HTTP-Fehler)too_many_requests: Ratenlimit überschrittenunsupported_content_type: Inhaltstyp nicht unterstützt (nur Text, HTML und PDF)max_uses_exceeded: Maximale Nutzungen des Web-Fetch-Tools überschrittenunavailable: Ein interner Fehler ist aufgetretenAus Sicherheitsgründen kann das Web-Fetch-Tool nur URLs abrufen, die zuvor im Konversationskontext erschienen sind. Dazu gehören:
Das Tool kann keine beliebigen URLs abrufen, die Claude generiert, oder URLs aus containerbasierten Server-Tools (wie Code Execution und Bash).
Wenn sowohl das Web-Such- als auch das Web-Fetch-Tool aktiviert sind und der Benutzer eine bestimmte Seite oder ein bestimmtes Dokument nennt, ohne eine URL anzugeben (zum Beispiel „lies die README aus dem anthropics/anthropic-sdk-python-Repository"), verwendet Claude die Websuche, um sie zu finden, 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 Züge hinweg findest du unter Tool-Nutzung mit Prompt-Caching.
Bei aktiviertem Streaming sind Fetch-Ereignisse 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 einbeziehen. Web-Fetch-Tool-Aufrufe über die Messages Batches API werden genauso berechnet wie die 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 zu iterieren.
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?