For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Recherche web

Permettez aux modèles de rechercher des informations à jour sur le Web avant de générer une réponse.

La recherche web permet aux modèles de consulter des informations à jour sur Internet et de citer leurs sources dans leurs réponses. Pour l’activer, utilisez l’outil de recherche web dans l’API Responses ou, dans certains cas, dans l’API Chat Completions.

Choisissez une méthode de recherche adaptée à la question à laquelle vous devez répondre.

  • Pour une vérification rapide, demandez à un modèle de rechercher une information précise et de citer sa source.
  • Si la question nécessite de consulter plusieurs sources, utilisez un modèle de raisonnement comme gpt-6-astra. Il peut affiner ses recherches à mesure qu’il consulte les résultats. Utilisez le mode en arrière-plan pour une requête susceptible de prendre plusieurs minutes.

Choisissez une intégration

Cas d’usage Intégration recommandée Remarques
Nouvelle intégration de recherche web API Responses avec web_search et gpt-6-astra L’outil de recherche web hébergé permet de filtrer les domaines, de consulter les sources, de contrôler l’accès en direct et de mener des recherches plus longues.
Intégration de recherche existante dans Chat Completions Chat Completions avec gpt-5-search-api Utilisez cette option uniquement si vous devez conserver une intégration Chat Completions.
Recherche en plusieurs étapes ou production de rapports de longue durée gpt-6-astra avec un effort de raisonnement réglé sur high ou xhigh Utilisez le mode en arrière-plan pour les rapports dont la production peut prendre plusieurs minutes.

Avec l’API Responses, vous pouvez activer la recherche web en configurant l’outil dans le tableau tools d’une requête de génération de contenu. Comme pour tout autre outil, le modèle décide de l’utiliser ou non en fonction du contenu du prompt.

Pour toute nouvelle intégration avec l’API Responses, utilisez { "type": "web_search" }. L’ancien outil web_search_preview reste disponible pour les intégrations existantes, mais ne prend pas en charge les paramètres plus récents tels que filters, external_web_access et return_token_budget.

Exemple d’utilisation de l’outil de recherche web
import OpenAI from "openai";
const client = new OpenAI();

const response = await client.responses.create({
  model: "gpt-6-astra",
  tools: [{ type: "web_search" }],
  input: "What was a positive news story from today?",
});

console.log(response.output_text);

Résultats et citations

Lorsque le modèle utilise l’outil de recherche web, sa réponse comprend deux éléments :

  • Un élément de sortie web_search_call qui contient l’identifiant de l’appel de recherche et indique l’action effectuée dans web_search_call.action. Les actions possibles sont les suivantes :
    • search correspond à une recherche web. Cette action inclut généralement, mais pas systématiquement, les requêtes exécutées dans queries. Chaque action de recherche est facturée comme un appel d’outil (voir les tarifs).
    • open_page correspond à l’ouverture d’une page. Les modèles de raisonnement prennent en charge cette action.
    • find_in_page correspond à une recherche dans une page. Les modèles de raisonnement prennent en charge cette action.
  • Un élément de sortie message qui contient :
    • Le texte de la réponse dans message.content[0].text
    • Les annotations message.content[0].annotations pour les URL citées

Par défaut, le modèle insère dans le texte de sa réponse des citations qui renvoient aux URL trouvées lors de la recherche web. L’objet d’annotation url_citation indique également l’URL et le titre de la source citée, ainsi que l’emplacement de la citation dans la réponse.

Lorsque votre interface affiche des résultats de recherche web ou des informations qui en sont issues, vous devez présenter les citations dans le texte sous forme de liens bien visibles et cliquables.

[
  {
    "type": "web_search_call",
    "id": "ws_67c9fa0502748190b7dd390736892e100be649c1a5ff9609",
    "status": "completed",
    "action": {
      "type": "search",
      "query": "latest news about AI"
    }
  },
  {
    "id": "msg_67c9fa077e288190af08fdffda2e34f20be649c1a5ff9609",
    "type": "message",
    "status": "completed",
    "role": "assistant",
    "content": [
      {
        "type": "output_text",
        "text": "On March 6, 2025, several news...",
        "annotations": [
          {
            "type": "url_citation",
            "start_index": 2606,
            "end_index": 2758,
            "url": "https://...",
            "title": "Title..."
          }
        ]
      }
    ]
  }
]

Migration depuis les anciennes intégrations de recherche web

Si vous utilisez Migration recommandée Remarques
web_search_preview dans l’API Responses Passez à web_search web_search prend en charge des paramètres plus récents tels que filters, external_web_access et return_token_budget.
gpt-4o-search-preview ou gpt-4o-mini-search-preview Passez à l’outil web_search de l’API Responses ou utilisez gpt-5-search-api si vous devez conserver Chat Completions. Les modèles de recherche en préversion sont obsolètes et ont été mis hors service le 23 juillet 2026.
Une intégration de recherche avec Chat Completions Utilisez gpt-5-search-api ou passez à l’outil web_search de l’API Responses pour bénéficier de réglages supplémentaires et rendre la recherche facultative. Les modèles de recherche de Chat Completions effectuent toujours une recherche avant de répondre. Dans l’API Responses, la recherche est un outil.
o4-mini dans l’API Responses Passez à un modèle de raisonnement pris en charge et utilisez-le avec web_search. Le modèle a été mis hors service le 23 octobre 2026.

Si votre intégration utilise encore gpt-5, la recherche web exige un effort de raisonnement supérieur à minimal.

Taille du contexte de recherche

search_context_size détermine la quantité d’informations issues des résultats de recherche web dont dispose le modèle avant de générer sa réponse. Utilisez low si quelques détails suffisent, medium comme valeur par défaut équilibrée et high lorsque la réponse peut nécessiter davantage de détails tirés des résultats. Ce réglage ne fixe pas un nombre exact de tokens et ne garantit aucun nombre précis de sources ou de citations.

Réglage de la taille du contexte de recherche
import OpenAI from "openai";
const openai = new OpenAI();

const response = await openai.responses.create({
  model: "gpt-6-astra",
  tools: [
    {
      type: "web_search",
      search_context_size: "low",
    },
  ],
  input: "What movie won best picture in 2025?",
});
console.log(response.output_text);

Menez des recherches web plus longues

Si votre recherche s’appuie aussi sur des données privées, effectuez la recherche sur le Web public et la consultation des données privées via MCP dans des requêtes distinctes.

return_token_budget détermine la quantité de contenu que l’outil peut renvoyer dans ses résultats de recherche web lors d’une recherche avec l’API Responses et les modèles de raisonnement GPT-5 ou ultérieurs. Conservez la valeur par défaut pour la plupart des requêtes. Utilisez unlimited uniquement pour les recherches ou évaluations qui demandent un effort important et nécessitent de consulter de nombreuses pages, si le plafond habituel de tokens renvoyés risque de les interrompre.

Réservez unlimited à ces cas, car cette valeur peut augmenter la latence et le coût. Pour les tâches de longue durée qui enchaînent plusieurs recherches, utilisez le mode en arrière-plan (background: true). La requête peut ainsi se poursuivre de manière asynchrone et vous pouvez récupérer la réponse finale ultérieurement.

Valeur Comportement
default Applique le budget standard de tokens que l’outil peut renvoyer dans les résultats de recherche web. Vous obtenez le même comportement en omettant return_token_budget.
unlimited Supprime le plafond appliqué par défaut au nombre de tokens que l’outil peut renvoyer au cours de la recherche web.

Ce paramètre s’applique uniquement à l’outil hébergé web_search de l’API Responses lorsque la recherche web fait appel à un modèle de raisonnement GPT-5 ou ultérieur. Il ne modifie pas la fenêtre de contexte de recherche. Il ne s’applique ni à la recherche web sans raisonnement, ni aux anciennes intégrations de l’API Search, ni à la recherche web dans un conteneur, ni aux modèles de recherche de Chat Completions, ni à web_search_preview. Les seules valeurs acceptées sont default et unlimited. L’API rejette null, les nombres et toute autre chaîne de caractères.

Exécution de recherches web plus longues
curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "reasoning": { "effort": "xhigh" },
    "tools": [
      {
        "type": "web_search",
        "return_token_budget": "unlimited"
      }
    ],
    "input": "Research the economic impact of semaglutide on global healthcare systems.\n\nDo:\n- Include specific figures, trends, statistics, and measurable outcomes.\n- Prioritize reliable, up-to-date sources: peer-reviewed research, health organizations (e.g., WHO, CDC), regulatory agencies, or pharmaceutical earnings reports.\n- Include inline citations and return all source metadata.\n\nBe analytical, avoid generalities, and ensure that each section supports data-backed reasoning that could inform healthcare policy or financial modeling."
  }'

Filtrage par domaine

Le filtrage par domaine permet de limiter les résultats de recherche web à un ensemble de domaines précis. Avec le paramètre filters, vous pouvez spécifier jusqu’à 100 domaines autorisés dans allowed_domains ou jusqu’à 100 domaines bloqués dans blocked_domains. Saisissez les domaines sans le préfixe HTTP ou HTTPS. Par exemple, utilisez openai.com au lieu de https://openai.com/. Le filtre s’applique également aux sous-domaines. Le filtrage par domaine est disponible uniquement dans l’API Responses avec l’outil web_search.

Sources

Pour consulter toutes les URL récupérées au cours d’une recherche web, utilisez le champ sources. Les citations intégrées au texte ne présentent que les références les plus pertinentes, tandis que le champ sources renvoie la liste complète des URL que le modèle a consultées pour formuler sa réponse. Les sources sont souvent plus nombreuses que les citations. Ce champ recense également les flux de données tiers en temps réel sous les identifiants oai-sports, oai-weather ou oai-finance. Le champ sources est disponible avec les outils web_search et web_search_preview.

Liste des sources
curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "reasoning": { "effort": "low" },
    "tools": [
      {
        "type": "web_search",
        "filters": {
          "allowed_domains": [
            "pubmed.ncbi.nlm.nih.gov",
            "clinicaltrials.gov",
            "www.who.int",
            "www.cdc.gov",
            "www.fda.gov"
          ],
          "blocked_domains": [
            "reddit.com",
            "quora.com",
            "wikipedia.org"
          ]
        }
      }
    ],
    "tool_choice": "auto",
    "include": ["web_search_call.action.sources"],
    "input": "Please perform a web search on how semaglutide is used in the treatment of diabetes."
  }'

Résultats de recherche d’images

La recherche web peut renvoyer des images en plus des résultats textuels habituels. Utilisez la recherche d’images lorsque votre application a besoin de visuels récents ou provenant du Web, par exemple des photos de produits, de monuments, de lieux ou d’événements, ou encore des références visuelles.

Pour rechercher des images, configurez search_content_types de manière à inclure image. Ajoutez text si vous souhaitez également obtenir des résultats textuels pour aider le modèle à résumer, classer ou expliquer les images récupérées.

Utilisez image_settings pour régler les options propres aux images :

  • max_results : indiquez un nombre de résultats d’images strictement positif.
  • caption : demandez une courte description de chaque image lorsqu’elle est disponible.

Pour examiner les résultats d’images bruts, incluez web_search_call.results dans la requête et lisez web_search_call.results[] dans la réponse. L’API renvoie ces résultats séparément du message de l’assistant. Si votre application a besoin des URL ou des métadonnées, analysez directement l’élément web_search_call.

Recherche d’images
import OpenAI from "openai";
const client = new OpenAI();

const response = await client.responses.create({
  model: "gpt-6-astra",
  reasoning: { effort: "low" },
  tools: [
    {
      type: "web_search",
      search_content_types: ["image", "text"],
      image_settings: {
        max_results: 3,
        caption: true,
      },
    },
  ],
  include: ["web_search_call.results"],
  input:
    "Search for recent images and supporting text sources about the Golden Gate Bridge at sunset.",
});

console.log(response.output);

Chaque élément image_result contient les champs suivants :

  • image_url : l’URL canonique de l’image trouvée.
  • source_website_url : la page sur laquelle l’image a été trouvée.
  • thumbnail_url : l’URL de la miniature, si elle est disponible.
  • caption : une courte légende ou description, si elle est disponible.
{
  "output": [
    {
      "type": "web_search_call",
      "status": "completed",
      "results": [
        {
          "type": "image_result",
          "image_url": "https://cdn.example/golden-gate-sunset.jpg",
          "thumbnail_url": "https://cdn.example/golden-gate-sunset-thumb.jpg",
          "source_website_url": "https://example.com/source-page",
          "caption": "Golden Gate Bridge at sunset"
        }
      ]
    }
  ]
}

Localisation de l’utilisateur

Pour affiner les résultats de recherche en fonction de la situation géographique de l’utilisateur, vous pouvez indiquer sa localisation approximative en précisant un ou plusieurs éléments parmi le pays, la ville, la région et le fuseau horaire.

  • Les champs city et region acceptent du texte libre, par exemple Minneapolis et Minnesota, respectivement.
  • Le champ country attend un code pays ISO à deux lettres, par exemple US.
  • Le champ timezone attend un fuseau horaire IANA, par exemple America/Chicago.
Personnalisation de la localisation de l’utilisateur
import OpenAI from "openai";
const openai = new OpenAI();

const response = await openai.responses.create({
  model: "gpt-6-astra",
  tools: [
    {
      type: "web_search",
      user_location: {
        type: "approximate",
        country: "GB",
        city: "London",
        region: "London",
      },
    },
  ],
  input: "What are the best restaurants near me?",
});
console.log(response.output_text);

Accès à Internet en direct

Dans l’API Responses, vous pouvez choisir si l’outil de recherche web récupère du contenu en direct ou utilise uniquement des résultats mis en cache ou indexés.

  • Définissez external_web_access: false sur l’outil web_search pour l’exécuter hors ligne, en utilisant uniquement le cache.
  • Si vous omettez ce paramètre, sa valeur par défaut est true (accès en direct).
  • Les variantes en préversion (web_search_preview) ignorent ce paramètre et se comportent comme si external_web_access valait true.
Contrôle de l’accès à Internet en direct
curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "tools": [
      { "type": "web_search", "external_web_access": false }
    ],
    "tool_choice": "auto",
    "input": "Find when the Eiffel Tower opened to the public and cite the source."
  }'

Limites

API Chat Completions

L’API Chat Completions prend uniquement en charge des modèles de recherche spécialisés pour la recherche web. Ces modèles ne proposent pas les fonctionnalités de l’outil web_search de l’API Responses, telles que le filtrage par domaine, la liste complète des sources, le contrôle de l’accès en direct et le réglage du budget de tokens renvoyés.

Modèle Fenêtre de contexte Limite
gpt-5-search-api 200 000 Utilise l’intégration de recherche de Chat Completions.

API Responses

Utilisez l’outil hébergé web_search. L’API Responses accepte toujours web_search_preview pour les intégrations existantes, mais utilisez web_search pour toute nouvelle intégration.

La fenêtre de contexte de la recherche web est limitée à 128 000 tokens, même si celle du modèle sous-jacent est plus grande. Pour connaître la taille maximale de la fenêtre de contexte de gpt-6-astra ou d’un autre modèle pris en charge, consultez la page du modèle.

  • gpt-5.4 peut produire des résultats de moindre qualité lorsque l’effort de raisonnement est réglé sur none.
  • Dans l’API Responses, la recherche web est soumise aux limites de débit du modèle sous-jacent pour votre niveau d’utilisation.
  • web_search_preview ne prend en charge ni filters ni return_token_budget et ignore external_web_access.
  • Avec tool_choice: "auto", la recherche est facultative. Pour imposer une recherche, utilisez tool_choice: "required" ou sélectionnez explicitement l’outil de recherche web.

Notes d’utilisation

Disponibilité par APILimites de débitRemarques

Les limites sont celles du modèle utilisé avec l’outil, selon votre niveau d’utilisation.

Tarifs
ZDR et résidence des données