Das Web-Suchwerkzeug gibt Claude direkten Zugriff auf Echtzeit-Webinhalte und ermöglicht es, Fragen mit aktuellen Informationen über seinen Wissensstichtag hinaus zu beantworten. Claude zitiert automatisch Quellen aus Suchergebnissen als Teil seiner Antwort.
Bitte kontaktieren Sie uns über unser Feedback-Formular, um Ihre Erfahrungen mit dem Web-Suchwerkzeug zu teilen.

Unterstützte Modelle

Die Web-Suche ist verfügbar auf:
  • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Sonnet 3.7 (veraltet) (claude-3-7-sonnet-20250219)
  • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
  • Claude Haiku 3.5 (claude-3-5-haiku-latest)
  • Claude Opus 4.1 (claude-opus-4-1-20250805)
  • Claude Opus 4 (claude-opus-4-20250514)

Wie die Web-Suche funktioniert

Wenn Sie das Web-Suchwerkzeug zu Ihrer API-Anfrage hinzufügen:
  1. Claude entscheidet basierend auf der Eingabeaufforderung, wann gesucht werden soll.
  2. Die API führt die Suchen aus und stellt Claude die Ergebnisse zur Verfügung. Dieser Prozess kann sich mehrmals während einer einzelnen Anfrage wiederholen.
  3. Am Ende seines Zuges stellt Claude eine endgültige Antwort mit zitierten Quellen bereit.

Wie man die Web-Suche verwendet

Der Administrator Ihrer Organisation muss die Web-Suche in der Konsole aktivieren.
Stellen Sie das Web-Suchwerkzeug in Ihrer API-Anfrage bereit:
curl https://api.anthropic.com/v1/messages \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "anthropic-version: 2023-06-01" \
    --header "content-type: application/json" \
    --data '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "messages": [
            {
                "role": "user",
                "content": "What's the weather in NYC?"
            }
        ],
        "tools": [{
            "type": "web_search_20250305",
            "name": "web_search",
            "max_uses": 5
        }]
    }'

Werkzeugdefinition

Das Web-Suchwerkzeug unterstützt die folgenden Parameter:
JSON
{
  "type": "web_search_20250305",
  "name": "web_search",

  // Optional: Begrenzen Sie die Anzahl der Suchen pro Anfrage
  "max_uses": 5,

  // Optional: Nur Ergebnisse von diesen Domains einschließen
  "allowed_domains": ["example.com", "trusteddomain.org"],

  // Optional: Ergebnisse von diesen Domains niemals einschließen
  "blocked_domains": ["untrustedsource.com"],

  // Optional: Suchergebnisse lokalisieren
  "user_location": {
    "type": "approximate",
    "city": "San Francisco",
    "region": "California",
    "country": "US",
    "timezone": "America/Los_Angeles"
  }
}

Max uses

Der Parameter max_uses begrenzt die Anzahl der durchgeführten Suchen. Wenn Claude versucht, mehr Suchen als zulässig durchzuführen, wird das web_search_tool_result ein Fehler mit dem Fehlercode max_uses_exceeded sein.

Domain-Filterung

Bei Verwendung von Domain-Filtern:
  • Domains sollten nicht das HTTP/HTTPS-Schema enthalten (verwenden Sie example.com statt https://example.com)
  • Subdomains werden automatisch eingeschlossen (example.com deckt docs.example.com ab)
  • Unterpfade werden unterstützt (example.com/blog)
  • Sie können entweder allowed_domains oder blocked_domains verwenden, aber nicht beide in derselben Anfrage.
Domain-Beschränkungen auf Anforderungsebene müssen mit Domain-Beschränkungen auf Organisationsebene kompatibel sein, die in der Konsole konfiguriert sind. Domain-Beschränkungen auf Anforderungsebene können Domains nur weiter einschränken, nicht die Liste auf Organisationsebene außer Kraft setzen oder erweitern. Wenn Ihre Anfrage Domains enthält, die mit Organisationseinstellungen in Konflikt stehen, gibt die API einen Validierungsfehler zurück.

Lokalisierung

Der Parameter user_location ermöglicht es Ihnen, Suchergebnisse basierend auf dem Standort eines Benutzers zu lokalisieren.
  • type: Der Standorttyp (muss approximate sein)
  • city: Der Stadtname
  • region: Die Region oder der Staat
  • country: Das Land
  • timezone: Die IANA-Zeitzone-ID.

Antwort

Hier ist eine Beispielantwortstruktur:
{
  "role": "assistant",
  "content": [
    // 1. Claudes Entscheidung zu suchen
    {
      "type": "text",
      "text": "I'll search for when Claude Shannon was born."
    },
    // 2. Die verwendete Suchanfrage
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
      "name": "web_search",
      "input": {
        "query": "claude shannon birth date"
      }
    },
    // 3. Suchergebnisse
    {
      "type": "web_search_tool_result",
      "tool_use_id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
      "content": [
        {
          "type": "web_search_result",
          "url": "https://en.wikipedia.org/wiki/Claude_Shannon",
          "title": "Claude Shannon - Wikipedia",
          "encrypted_content": "EqgfCioIARgBIiQ3YTAwMjY1Mi1mZjM5LTQ1NGUtODgxNC1kNjNjNTk1ZWI3Y...",
          "page_age": "April 30, 2025"
        }
      ]
    },
    {
      "text": "Based on the search results, ",
      "type": "text"
    },
    // 4. Claudes Antwort mit Zitaten
    {
      "text": "Claude Shannon was born on April 30, 1916, in Petoskey, Michigan",
      "type": "text",
      "citations": [
        {
          "type": "web_search_result_location",
          "url": "https://en.wikipedia.org/wiki/Claude_Shannon",
          "title": "Claude Shannon - Wikipedia",
          "encrypted_index": "Eo8BCioIAhgBIiQyYjQ0OWJmZi1lNm..",
          "cited_text": "Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American mathematician, electrical engineer, computer scientist, cryptographer and i..."
        }
      ]
    }
  ],
  "id": "msg_a930390d3a",
  "usage": {
    "input_tokens": 6039,
    "output_tokens": 931,
    "server_tool_use": {
      "web_search_requests": 1
    }
  },
  "stop_reason": "end_turn"
}

Suchergebnisse

Suchergebnisse enthalten:
  • url: Die URL der Quellseite
  • title: Der Titel der Quellseite
  • page_age: Wann die Website zuletzt aktualisiert wurde
  • encrypted_content: Verschlüsselter Inhalt, der in mehrteiligen Gesprächen für Zitate zurückgegeben werden muss

Zitate

Zitate sind immer für die Web-Suche aktiviert, und jedes web_search_result_location enthält:
  • url: Die URL der zitierten Quelle
  • title: Der Titel der zitierten Quelle
  • encrypted_index: Eine Referenz, die für mehrteilige Gespräche zurückgegeben werden muss.
  • cited_text: Bis zu 150 Zeichen des zitierten Inhalts
Die Web-Suche-Zitierfelder cited_text, title und url zählen nicht zur Eingabe- oder Ausgabe-Token-Nutzung.
Bei der direkten Anzeige von API-Ausgaben für Endbenutzer müssen Zitate zur ursprünglichen Quelle eingeschlossen werden. Wenn Sie API-Ausgaben ändern, einschließlich durch Neuverarbeitung und/oder Kombination mit Ihrem eigenen Material, bevor Sie sie Endbenutzern anzeigen, zeigen Sie Zitate nach Rücksprache mit Ihrem Rechtsteam an.

Fehler

Wenn das Web-Suchwerkzeug auf einen Fehler stößt (z. B. Ratenlimit-Überschreitung), gibt die Claude API dennoch eine 200-Antwort (Erfolg) zurück. Der Fehler wird im Antwortkörper mit der folgenden Struktur dargestellt:
{
  "type": "web_search_tool_result",
  "tool_use_id": "servertoolu_a93jad",
  "content": {
    "type": "web_search_tool_result_error",
    "error_code": "max_uses_exceeded"
  }
}
Dies sind die möglichen Fehlercodes:
  • too_many_requests: Ratenlimit überschritten
  • invalid_input: Ungültiger Suchanfrageparameter
  • max_uses_exceeded: Maximale Web-Suchwerkzeug-Nutzung überschritten
  • query_too_long: Anfrage überschreitet maximale Länge
  • unavailable: Ein interner Fehler ist aufgetreten

pause_turn Stop-Grund

Die Antwort kann einen pause_turn Stop-Grund enthalten, der anzeigt, dass die API einen lang laufenden Zug unterbrochen hat. Sie können die Antwort in einer nachfolgenden Anfrage unverändert zurückgeben, um Claude seinen Zug fortsetzen zu lassen, oder den Inhalt ändern, wenn Sie das Gespräch unterbrechen möchten.

Prompt-Caching

Die Web-Suche funktioniert mit Prompt-Caching. Um Prompt-Caching zu aktivieren, fügen Sie mindestens einen cache_control Breakpoint in Ihre Anfrage ein. Das System speichert automatisch bis zum letzten web_search_tool_result Block, wenn das Werkzeug ausgeführt wird. Für mehrteilige Gespräche setzen Sie einen cache_control Breakpoint auf oder nach dem letzten web_search_tool_result Block, um zwischengespeicherte Inhalte wiederzuverwenden. Um beispielsweise Prompt-Caching mit Web-Suche für ein mehrteiliges Gespräch zu verwenden:
import anthropic

client = anthropic.Anthropic()

# Erste Anfrage mit Web-Suche und Cache-Breakpoint
messages = [
    {
        "role": "user",
        "content": "What's the current weather in San Francisco today?"
    }
]

response1 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=messages,
    tools=[{
        "type": "web_search_20250305",
        "name": "web_search",
        "user_location": {
            "type": "approximate",
            "city": "San Francisco",
            "region": "California",
            "country": "US",
            "timezone": "America/Los_Angeles"
        }
    }]
)

# Fügen Sie Claudes Antwort zum Gespräch hinzu
messages.append({
    "role": "assistant",
    "content": response1.content
})

# Zweite Anfrage mit Cache-Breakpoint nach den Suchergebnissen
messages.append({
    "role": "user",
    "content": "Should I expect rain later this week?",
    "cache_control": {"type": "ephemeral"}  # Cache bis zu diesem Punkt
})

response2 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=messages,
    tools=[{
        "type": "web_search_20250305",
        "name": "web_search",
        "user_location": {
            "type": "approximate",
            "city": "San Francisco",
            "region": "California",
            "country": "US",
            "timezone": "America/Los_Angeles"
        }
    }]
)
# Die zweite Antwort profitiert von zwischengespeicherten Suchergebnissen
# während sie immer noch neue Suchen durchführen kann, falls erforderlich
print(f"Cache read tokens: {response2.usage.get('cache_read_input_tokens', 0)}")

Streaming

Mit aktiviertem Streaming erhalten Sie Suchereignisse als Teil des Streams. Es gibt eine Pause während die Suche ausgeführt wird:
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": ""}}

// Claudes Entscheidung zu suchen

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_search"}}

// Suchanfrage gestreamt
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"query\":\"latest quantum computing breakthroughs 2025\"}"}}

// Pause während die Suche ausgeführt wird

// Suchergebnisse gestreamt
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_search_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": [{"type": "web_search_result", "title": "Quantum Computing Breakthroughs in 2025", "url": "https://example.com"}]}}

// Claudes Antwort mit Zitaten (in diesem Beispiel weggelassen)

Batch-Anfragen

Sie können das Web-Suchwerkzeug in die Messages Batches API einschließen. Web-Suchwerkzeug-Aufrufe über die Messages Batches API werden genauso berechnet wie die in regulären Messages API-Anfragen.

Nutzung und Preisgestaltung

Web search usage is charged in addition to token usage:
"usage": {
  "input_tokens": 105,
  "output_tokens": 6039,
  "cache_read_input_tokens": 7123,
  "cache_creation_input_tokens": 7345,
  "server_tool_use": {
    "web_search_requests": 1
  }
}
Web search is available on the Claude API for $10 per 1,000 searches, plus standard token costs for search-generated content. Web search results retrieved throughout a conversation are counted as input tokens, in search iterations executed during a single turn and in subsequent conversation turns. Each web search counts as one use, regardless of the number of results returned. If an error occurs during web search, the web search will not be billed.