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_20260209) unterstützt dynamisches Filtern mit Claude Opus 4.8, Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6 und Claude Sonnet 4.6. Claude kann Code schreiben und ausführen, um abgerufene Inhalte zu filtern, bevor sie das Kontextfenster erreichen, wobei nur relevante Informationen behalten und der Rest verworfen wird. Dies reduziert den Token-Verbrauch bei gleichbleibender Antwortqualität. Die vorherige Tool-Version (web_fetch_20250910) bleibt ohne dynamisches Filtern verfügbar.
Für Claude Mythos Preview ist Web-Fetch über die Claude API und Microsoft Foundry verfügbar. Für Mythos Preview ist es derzeit nicht auf Amazon Bedrock oder Vertex AI 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 Benutzer 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.
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 der Tool-Version web_fetch_20260209 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 erfordert, dass das Code-Execution-Tool aktiviert ist. Das Web-Fetch-Tool (mit und ohne dynamisches Filtern) ist über die Claude API, Claude Platform on AWS und Microsoft Foundry verfügbar. Es ist derzeit nicht auf Amazon Bedrock oder Vertex AI verfügbar.
Um dynamisches Filtern zu aktivieren, verwende die Tool-Version 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
"blocked_domains": ["private.example.com"],
// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},
// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}Der Parameter max_uses begrenzt die Anzahl der durchgeführten Web-Fetches. 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 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 des Parameters max_content_tokens ist ein Näherungswert. Die tatsächliche Anzahl der verwendeten Input-Token kann geringfügig abweichen.
Im Gegensatz zur Websuche, bei der Zitate immer aktiviert sind, sind Zitate für Web-Fetch optional. Setze "citations": {"enabled": true}, um Claude zu ermöglichen, bestimmte Passagen aus abgerufenen Dokumenten zu zitieren.
Wenn API-Ausgaben direkt an Endbenutzer angezeigt werden, müssen Zitate zur ursprünglichen Quelle enthalten sein. Wenn du Änderungen an API-Ausgaben vornimmst, einschließlich durch Nachbearbeitung und/oder Kombination mit deinem eigenen Material, bevor du sie Endbenutzern 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 URL, die abgerufen wurdecontent: Ein Dokumentblock, der den abgerufenen Inhalt enthältretrieved_at: Zeitstempel, wann der Inhalt abgerufen wurdeDas Web-Fetch-Tool speichert Ergebnisse im Cache, 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.
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:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_error",
"error_code": "url_not_accessible"
}
}Dies sind die möglichen Fehlercodes:
invalid_input: Ungültiges URL-Formaturl_too_long: URL überschreitet die maximale Länge (250 Zeichen)url_not_allowed: URL durch Domain-Filterregeln und Modellbeschränkungen blockierturl_not_accessible: Abrufen des Inhalts fehlgeschlagen (HTTP-Fehler)too_many_requests: Ratenlimit überschrittenunsupported_content_type: Inhaltstyp nicht unterstützt (nur Text 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 erschienen sind. Dazu gehören:
Das Tool kann keine beliebigen URLs abrufen, die Claude generiert, oder URLs aus containerbasierten Server-Tools (Code Execution, Bash usw.).
Web-Fetch arbeitet nahtlos mit der Websuche zusammen, um umfassende Informationen zu sammeln:
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 wird Claude:
Wenn sowohl das Web-Search- 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 Repository anthropics/anthropic-sdk-python"), verwendet Claude die Websuche, um es zu lokalisieren, und ruft dann das Ergebnis ab.
Informationen zum Caching von Tool-Definitionen über mehrere Turns hinweg findest du unter Tool-Nutzung mit Prompt-Caching.
Wenn Streaming aktiviert ist, 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:
Gemeinsame Mechanismen für von Anthropic ausgeführte Tools.
Verzeichnis aller von Anthropic bereitgestellten Tools.
Was this page helpful?