Loading...
    • Guide du développeur
    • Référence API
    • MCP
    • Ressources
    • Notes de version
    Search...
    ⌘K
    Premiers pas
    Introduction à ClaudeDémarrage rapide
    Modèles et tarification
    Aperçu des modèlesChoisir un modèleNouveautés dans Claude 4.5Migration vers Claude 4.5Dépréciation des modèlesTarification
    Créer avec Claude
    Aperçu des fonctionnalitésUtiliser l'API MessagesFenêtres de contexteMeilleures pratiques de prompting
    Capacités
    Mise en cache des promptsÉdition de contexteRéflexion étendueEffortStreaming de messagesTraitement par lotsCitationsSupport multilingueComptage de tokensEmbeddingsVisionSupport PDFAPI FilesRésultats de rechercheSorties structurées
    Outils
    AperçuComment implémenter l'utilisation d'outilsStreaming d'outils granulaireOutil BashOutil d'exécution de codeAppel d'outils programmatiqueOutil Computer useOutil Éditeur de texteOutil Web fetchOutil Web searchOutil MemoryOutil Tool search
    Agent Skills
    AperçuDémarrage rapideMeilleures pratiquesUtiliser Skills avec l'API
    Agent SDK
    AperçuDémarrage rapideSDK TypeScriptTypeScript V2 (aperçu)SDK PythonGuide de migration
    MCP dans l'API
    Connecteur MCPServeurs MCP distants
    Claude sur des plateformes tierces
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingénierie des prompts
    AperçuGénérateur de promptsUtiliser des modèles de promptsAméliorateur de promptsÊtre clair et directUtiliser des exemples (prompting multi-shot)Laisser Claude réfléchir (CoT)Utiliser des balises XMLDonner un rôle à Claude (prompts système)Pré-remplir la réponse de ClaudeChaîner des prompts complexesConseils pour le contexte longConseils pour la réflexion étendue
    Tester et évaluer
    Définir les critères de succèsDévelopper des cas de testUtiliser l'outil d'évaluationRéduire la latence
    Renforcer les garde-fous
    Réduire les hallucinationsAugmenter la cohérence des résultatsAtténuer les jailbreaksRefus en streamingRéduire les fuites de promptsGarder Claude dans le rôle
    Administration et surveillance
    Aperçu de l'API AdminAPI Utilisation et coûtsAPI Claude Code Analytics
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Outils

    Outil de recherche web

    L'outil de recherche web donne à Claude un accès direct au contenu web en temps réel, lui permettant de répondre aux questions avec des informations à jour au-delà de sa date limite de connaissance.

    L'outil de recherche web donne à Claude un accès direct au contenu web en temps réel, lui permettant de répondre aux questions avec des informations à jour au-delà de sa date limite de connaissance. Claude cite automatiquement les sources des résultats de recherche dans sa réponse.

    Veuillez nous contacter via notre formulaire de retours pour partager votre expérience avec l'outil de recherche web.

    Modèles supportés

    La recherche web est disponible sur :

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (déprécié) (claude-3-7-sonnet-20250219)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Haiku 3.5 (déprécié) (claude-3-5-haiku-latest)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    Comment fonctionne la recherche web

    Lorsque vous ajoutez l'outil de recherche web à votre requête API :

    1. Claude décide quand effectuer une recherche en fonction de l'invite.
    2. L'API exécute les recherches et fournit à Claude les résultats. Ce processus peut se répéter plusieurs fois au cours d'une seule requête.
    3. À la fin de son tour, Claude fournit une réponse finale avec des sources citées.

    Comment utiliser la recherche web

    L'administrateur de votre organisation doit activer la recherche web dans la Console.

    Fournissez l'outil de recherche web dans votre requête API :

    Définition de l'outil

    L'outil de recherche web supporte les paramètres suivants :

    JSON
    {
      "type": "web_search_20250305",
      "name": "web_search",
    
      // Optionnel : Limiter le nombre de recherches par requête
      "max_uses": 5,
    
      // Optionnel : Inclure uniquement les résultats de ces domaines
      "allowed_domains": ["example.com", "trusteddomain.org"],
    
      // Optionnel : Ne jamais inclure les résultats de ces domaines
      "blocked_domains": ["untrustedsource.com"],
    
      // Optionnel : Localiser les résultats de recherche
      "user_location": {
        "type": "approximate",
        "city": "San Francisco",
        "region": "California",
        "country": "US",
        "timezone": "America/Los_Angeles"
      }
    }

    Max uses

    Le paramètre max_uses limite le nombre de recherches effectuées. Si Claude tente plus de recherches que permis, le web_search_tool_result sera une erreur avec le code d'erreur max_uses_exceeded.

    Filtrage des domaines

    Lors de l'utilisation de filtres de domaines :

    • Les domaines ne doivent pas inclure le schéma HTTP/HTTPS (utilisez example.com au lieu de https://example.com)
    • Les sous-domaines sont automatiquement inclus (example.com couvre docs.example.com)
    • Les sous-domaines spécifiques limitent les résultats à ce sous-domaine uniquement (docs.example.com retourne uniquement les résultats de ce sous-domaine, pas de example.com ou api.example.com)
    • Les sous-chemins sont supportés et correspondent à tout ce qui suit le chemin (example.com/blog correspond à example.com/blog/post-1)
    • Vous pouvez utiliser soit allowed_domains soit blocked_domains, mais pas les deux dans la même requête.

    Support des caractères génériques :

    • Un seul caractère générique (*) est autorisé par entrée de domaine, et il doit apparaître après la partie domaine (dans le chemin)
    • Valide : example.com/*, example.com/*/articles
    • Invalide : *.example.com, ex*.com, example.com/*/news/*

    Les formats de domaine invalides retourneront une erreur d'outil invalid_tool_input.

    Les restrictions de domaines au niveau de la requête doivent être compatibles avec les restrictions de domaines au niveau de l'organisation configurées dans la Console. Les domaines au niveau de la requête ne peuvent que restreindre davantage les domaines, pas contourner ou dépasser la liste au niveau de l'organisation. Si votre requête inclut des domaines qui entrent en conflit avec les paramètres de l'organisation, l'API retournera une erreur de validation.

    Localisation

    Le paramètre user_location vous permet de localiser les résultats de recherche en fonction de la localisation d'un utilisateur.

    • type : Le type de localisation (doit être approximate)
    • city : Le nom de la ville
    • region : La région ou l'état
    • country : Le pays
    • timezone : L'ID de fuseau horaire IANA.

    Réponse

    Voici un exemple de structure de réponse :

    {
      "role": "assistant",
      "content": [
        // 1. Décision de Claude de faire une recherche
        {
          "type": "text",
          "text": "I'll search for when Claude Shannon was born."
        },
        // 2. La requête de recherche utilisée
        {
          "type": "server_tool_use",
          "id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
          "name": "web_search",
          "input": {
            "query": "claude shannon birth date"
          }
        },
        // 3. Résultats de recherche
        {
          "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. Réponse de Claude avec citations
        {
          "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"
    }

    Résultats de recherche

    Les résultats de recherche incluent :

    • url : L'URL de la page source
    • title : Le titre de la page source
    • page_age : Quand le site a été mis à jour pour la dernière fois
    • encrypted_content : Contenu chiffré qui doit être renvoyé dans les conversations multi-tours pour les citations

    Citations

    Les citations sont toujours activées pour la recherche web, et chaque web_search_result_location inclut :

    • url : L'URL de la source citée
    • title : Le titre de la source citée
    • encrypted_index : Une référence qui doit être renvoyée pour les conversations multi-tours.
    • cited_text : Jusqu'à 150 caractères du contenu cité

    Les champs de citation de recherche web cited_text, title et url ne comptent pas vers l'utilisation des jetons d'entrée ou de sortie.

    Lors de l'affichage des résultats de l'API directement aux utilisateurs finaux, les citations doivent être incluses vers la source originale. Si vous apportez des modifications aux résultats de l'API, notamment en les retraitant et/ou en les combinant avec votre propre matériel avant de les afficher aux utilisateurs finaux, affichez les citations comme approprié en fonction de la consultation avec votre équipe juridique.

    Erreurs

    Lorsque l'outil de recherche web rencontre une erreur (comme atteindre les limites de débit), l'API Claude retourne toujours une réponse 200 (succès). L'erreur est représentée dans le corps de la réponse en utilisant la structure suivante :

    {
      "type": "web_search_tool_result",
      "tool_use_id": "servertoolu_a93jad",
      "content": {
        "type": "web_search_tool_result_error",
        "error_code": "max_uses_exceeded"
      }
    }

    Voici les codes d'erreur possibles :

    • too_many_requests : Limite de débit dépassée
    • invalid_input : Paramètre de requête de recherche invalide
    • max_uses_exceeded : Nombre maximal d'utilisations de l'outil de recherche web dépassé
    • query_too_long : La requête dépasse la longueur maximale
    • unavailable : Une erreur interne s'est produite

    Raison d'arrêt pause_turn

    La réponse peut inclure une raison d'arrêt pause_turn, qui indique que l'API a mis en pause un tour de longue durée. Vous pouvez fournir la réponse telle quelle dans une requête ultérieure pour laisser Claude continuer son tour, ou modifier le contenu si vous souhaitez interrompre la conversation.

    Mise en cache des invites

    La recherche web fonctionne avec la mise en cache des invites. Pour activer la mise en cache des invites, ajoutez au moins un point d'arrêt cache_control dans votre requête. Le système mettra automatiquement en cache jusqu'au dernier bloc web_search_tool_result lors de l'exécution de l'outil.

    Pour les conversations multi-tours, définissez un point d'arrêt cache_control sur ou après le dernier bloc web_search_tool_result pour réutiliser le contenu en cache.

    Par exemple, pour utiliser la mise en cache des invites avec la recherche web pour une conversation multi-tours :

    import anthropic
    
    client = anthropic.Anthropic()
    
    # Première requête avec recherche web et point d'arrêt de cache
    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"
            }
        }]
    )
    
    # Ajouter la réponse de Claude à la conversation
    messages.append({
        "role": "assistant",
        "content": response1.content
    })
    
    # Deuxième requête avec point d'arrêt de cache après les résultats de recherche
    messages.append({
        "role": "user",
        "content": "Should I expect rain later this week?",
        "cache_control": {"type": "ephemeral"}  # Cache jusqu'à ce point
    })
    
    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"
            }
        }]
    )
    # La deuxième réponse bénéficiera des résultats de recherche en cache
    # tout en étant capable d'effectuer de nouvelles recherches si nécessaire
    print(f"Cache read tokens: {response2.usage.get('cache_read_input_tokens', 0)}")

    Streaming

    Avec le streaming activé, vous recevrez les événements de recherche dans le flux. Il y aura une pause pendant que la recherche s'exécute :

    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": ""}}
    
    // Décision de Claude de faire une recherche
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_search"}}
    
    // Requête de recherche en streaming
    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 pendant que la recherche s'exécute
    
    // Résultats de recherche en streaming
    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"}]}}
    
    // Réponse de Claude avec citations (omise dans cet exemple)

    Requêtes par lot

    Vous pouvez inclure l'outil de recherche web dans l'API Messages Batches. Les appels d'outil de recherche web via l'API Messages Batches sont facturés de la même manière que ceux des requêtes régulières de l'API Messages.

    Utilisation et tarification

    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.

    • Modèles supportés
    • Comment fonctionne la recherche web
    • Comment utiliser la recherche web
    • Définition de l'outil
    • Réponse
    • Mise en cache des invites
    • Streaming
    • Requêtes par lot
    • Utilisation et tarification
    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 is the weather in NYC?"
                }
            ],
            "tools": [{
                "type": "web_search_20250305",
                "name": "web_search",
                "max_uses": 5
            }]
        }'