For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション

ウェブ検索

モデルが応答を生成する前にウェブを検索し、最新の情報を取得できるようにします。

ウェブ検索を使うと、モデルはインターネット上の最新情報にアクセスし、出典の引用を添えて回答できます。有効にするには、Responses API のウェブ検索ツールを使用します。場合によっては、Chat Completions でも使用できます。

OpenAI のモデルで利用できるウェブ検索には、主に次の 3 種類があります。

  1. 推論を伴わないウェブ検索:推論を行わないモデルがユーザーのクエリをウェブ検索ツールに送り、ツールが上位の検索結果に基づいて応答を返します。内部で計画を立てることはなく、モデルは検索ツールの応答をそのまま伝えます。この方式は高速で、簡単な調べ物に適しています。
  2. リーズニングモデルによるエージェント型検索は、モデルが検索プロセスを主体的に管理する方式です。思考の連鎖の一環としてウェブ検索を実行し、結果を分析して、検索を続けるかどうかを判断できます。この柔軟性により複雑なワークフローに適していますが、簡単な調べ物よりも検索に時間がかかります。たとえば、gpt-5.5 などのモデルでは推論レベルを調整することで、検索の深さとレイテンシの両方を変えられます。
  3. deep research は、リーズニングモデルが時間をかけて深く調査するための、エージェント主導の専門的な方式です。モデルは思考の連鎖の一環としてウェブ検索を行い、多くの場合、数百もの情報源を参照します。deep research は実行に数分かかることがあるため、バックグラウンドモードでの使用が適しています。gpt-5.5 を使用し、推論を high または xhigh に設定してください。

連携方法の選択

ユースケース推奨される方法補足
ウェブ検索の新規連携web_searchgpt-5.5 を使用する Responses APIフィルター、情報源、ライブアクセス制御、長時間の調査など、ホスト型ウェブ検索の各種制御に対応
既存の Chat Completions 検索連携gpt-5-search-api を使用する Chat CompletionsChat Completions との連携を維持する必要がある場合にのみ使用
複数ステップの調査や長時間かかるレポート作成推論を high または xhigh に設定した gpt-5.5作成に数分かかる可能性があるレポートにはバックグラウンドモードを使用

Responses API では、コンテンツ生成用の API リクエストの tools 配列でウェブ検索を設定すると、有効にできます。他のツールと同様、モデルは入力プロンプトの内容に基づいて、ウェブを検索するかどうかを選択できます。

Responses API との新規連携には、{ "type": "web_search" } を使用してください。従来の web_search_preview ツールも既存の連携向けに引き続き利用できますが、filtersexternal_web_accessreturn_token_budget などの新しい制御には対応していません。

ウェブ検索ツールの使用例
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);

出力と引用

ウェブ検索ツールを使用したモデルの応答には、次の 2 つの部分が含まれます。

  • 検索呼び出しの ID を含む web_search_call 出力項目。実行されたアクションは web_search_call.action に格納されます。アクションは次のいずれかです。
    • search はウェブ検索を表します。通常は検索に使用した queries が含まれますが、含まれない場合もあります。検索アクションにはツール呼び出しの料金が発生します(料金を参照)。
    • open_page はページを開く操作を表します。リーズニングモデルでサポートされています。
    • find_in_page はページ内の検索を表します。リーズニングモデルでサポートされています。
  • 次の内容を含む message 出力項目:
    • message.content[0].text に格納されたテキスト結果
    • 引用された URL のアノテーション message.content[0].annotations

デフォルトでは、モデルの応答に、ウェブ検索結果で見つかった URL へのインライン引用が含まれます。また、url_citation アノテーションオブジェクトには、引用元の URL、タイトル、引用位置が含まれます。

ウェブ検索結果やその中の情報をエンドユーザーに表示する場合、ユーザーインターフェース上でインライン引用を見やすく、クリックできる形で表示する必要があります。

[
  {
    "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..."
          }
        ]
      }
    ]
  }
]
現在の利用方式推奨される方法補足
Responses の web_search_previewweb_search への移行web_searchfiltersexternal_web_accessreturn_token_budget などの新しい制御に対応
gpt-4o-search-preview または gpt-4o-mini-search-previewResponses の web_search に移行、または Chat Completions を使い続ける必要がある場合は gpt-5-search-api を使用プレビュー版の検索モデルは非推奨で、2026-07-23 に提供終了
Chat Completions の検索連携gpt-5-search-api を使用、またはツール制御を増やし、検索を任意にするには Responses の web_search に移行Chat Completions の検索モデルは応答前に必ず検索を実行し、Responses では検索をツールとして提供

検索コンテキストのサイズ

search_context_size は、モデルが応答を生成する前に利用できるウェブ検索結果のコンテキスト量を制御します。簡単な調べ物には low、バランスの取れたデフォルト設定には medium、回答に検索結果のより詳しい情報が必要になりそうな場合には high を使用してください。この設定は、トークン数を厳密に指定するものではなく、情報源や引用の数を保証するものでもありません。

検索コンテキストサイズの設定
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);

長時間のウェブ調査

return_token_budget は、GPT-5+ のリーズニングモデルを使って Responses API で検索を実行する際に、ツールが返せるウェブ検索結果のコンテンツ量を制御します。ほとんどのリクエストではデフォルトのままにしてください。多数のページを調べる必要があり、標準の返却トークン数の上限では途中で停止する可能性がある、入念な調査や評価を実行する場合にのみ、unlimited に設定してください。

unlimited はレイテンシやコストを増加させる可能性があるため、必要な場合に限って使用してください。複数の検索を行う長時間実行のタスクでは、バックグラウンドモード(background: true)を使用すると、リクエストの処理を非同期で継続し、後から最終的なレスポンスを取得できます。

動作
defaultウェブ検索結果に標準の返却トークン数の上限を適用します。return_token_budget を省略した場合と同じ動作です。
unlimitedウェブ検索の実行時に適用される、デフォルトの返却トークン数の上限を解除します。

このパラメーターは、GPT-5+ の推論を伴うウェブ検索で使用する、Responses API のホスト型 web_search ツールにのみ適用されます。検索コンテキストウィンドウは変更されません。また、推論を伴わないウェブ検索、従来の Search API の利用方式、コンテナでのウェブ検索、Chat Completions の検索モデル、web_search_preview には適用されません。サポートされる値は defaultunlimited のみです。null、数値、その他の文字列は拒否されます。

長時間のウェブ検索の実行
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."
  }'

ドメインによるフィルタリング

ウェブ検索のドメインフィルタリングでは、検索結果を特定のドメイン群に限定できます。filters パラメーターで、最大 100 件の allowed_domains または最大 100 件の blocked_domains を設定できます。ドメインの記述では HTTP や HTTPS のプレフィックスを省略してください。たとえば、https://openai.com/ ではなく openai.com を使用します。この指定では、サブドメインも検索対象に含まれます。ドメインフィルタリングは、Responses API の web_search ツールでのみ利用できます。

情報源

ウェブ検索中に取得したすべての URL を確認するには、sources フィールドを使用します。関連性の高い参照先のみを示すインライン引用とは異なり、sources は、モデルが回答を作成する際に参照した URL の完全なリストを返します。 情報源の数は、引用の数を上回ることがよくあります。サードパーティーのリアルタイムフィードもここに表示され、oai-sportsoai-weatheroai-finance のいずれかのラベルが付きます。sources フィールドは、web_searchweb_search_preview の両方のツールで利用できます。

情報源の一覧表示
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."
  }'

画像検索結果

ウェブ検索では、通常のテキスト結果に加えて画像の結果も返せます。商品の写真、ランドマーク、場所、イベント、参考画像など、最新の画像やウェブ上の情報に基づく画像がアプリケーションで必要な場合は、画像検索を使用してください。

画像検索を使用するには、search_content_typesimage を含めます。取得した画像の要約、順位付け、説明に役立つ補足的なテキスト結果も必要な場合は、text を追加してください。

画像固有の動作は、image_settings で制御します。

  • max_results:取得する画像結果の件数を正の数で指定します。
  • caption:利用可能な場合に画像の短い説明を取得するよう指定します。

画像検索の生の結果を確認するには、リクエストに web_search_call.results を含め、レスポンスの web_search_call.results[] を読み取ります。画像の結果はアシスタントのメッセージとは別に返されるため、アプリケーションで URL やメタデータが必要な場合は、web_search_call 項目を直接解析してください。

画像の検索
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);

image_result には、次の情報が含まれます。

  • image_url:検索結果の画像の正規 URL
  • source_website_url:画像が見つかったページ
  • thumbnail_url:サムネイルの URL(利用可能な場合)
  • caption:短いキャプションまたは説明(利用可能な場合)
{
  "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"
        }
      ]
    }
  ]
}

ユーザーの位置情報

地域に応じて検索結果を絞り込むには、国、都市、地域、タイムゾーンのいずれか、またはそれらの組み合わせで、ユーザーのおおよその位置を指定できます。

  • cityregion は自由形式の文字列フィールドです。たとえば、それぞれに MinneapolisMinnesota を指定します。
  • country フィールドには、US のような 2 文字の ISO 国コードを指定します。
  • timezone フィールドには、America/Chicago のような IANA タイムゾーンを指定します。

ウェブ検索を使用する deep research モデルでは、ユーザーの位置情報はサポートされていません。

ユーザーの位置情報のカスタマイズ
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);

リアルタイムのインターネットアクセス

Responses API のウェブ検索ツールが、コンテンツをリアルタイムに取得するか、キャッシュ済みまたはインデックス済みの結果のみを使用するかを制御します。

  • web_search ツールに external_web_access: false を設定すると、オフラインでキャッシュのみを使用するモードで実行できます。
  • 設定しない場合、デフォルトは true(リアルタイムアクセス)です。
  • プレビュー版(web_search_preview)はこのパラメーターを無視し、external_web_accesstrue に設定されている場合と同じように動作します。
リアルタイムのインターネットアクセスの制御
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."
  }'

制限事項

Chat Completions API

Chat Completions API でウェブ検索を利用できるのは、検索専用モデルのみです。これらのモデルは、ドメインフィルター、情報源の完全なリスト、リアルタイムアクセスの制御、返却トークン数の上限の制御など、Responses API の web_search の機能をサポートしていません。

モデルコンテキストウィンドウ制限事項
gpt-5-search-api200kChat Completions の検索モデルを使用する方式
gpt-4o-search-preview128kChat Completions の検索モデルを使用。非推奨、2026-07-23 に提供終了
gpt-4o-mini-search-preview128kChat Completions の検索モデルを使用。非推奨、2026-07-23 に提供終了

Responses API

ホスト型の web_search ツールを使用してください。Responses API は既存の連携向けに引き続き web_search_preview を受け付けますが、新しい連携には web_search を使用してください。

モデルのコンテキストウィンドウをより大きくしたい場合は、gpt-5.5 を使用してください。ウェブ検索のコンテキストウィンドウは 128k のままです。

モデルモデルのコンテキストウィンドウ制限事項
gpt-4.11M検索コンテキストの上限は 128k
gpt-4.1-mini1M検索コンテキストの上限は 128k
o4-mini200k検索コンテキストの上限は 128k。非推奨、2026-10-23 に提供終了

Responses API のウェブ検索では、モデルのコンテキストウィンドウがより大きい場合でも、検索コンテキストウィンドウの上限は 128k です。

  • ウェブ検索は、推論強度が minimalgpt-5 には対応していません。
  • gpt-5.4 の推論強度を none に設定すると、結果の品質が低下する場合があります。
  • Responses API のウェブ検索には、使用するモデルのティア別レート制限が適用されます。
  • web_search_previewfiltersreturn_token_budget に対応しておらず、external_web_access は無視されます。
  • tool_choice: "auto" では、検索は必須ではありません。必ず検索を実行する必要がある場合は、tool_choice: "required" を使用するか、使用するツールとしてウェブ検索を明示的に指定してください。

利用上の注意

対応 API レート制限 注意事項

ツールで使用するモデルの ティア別レート制限と同じです。

料金
ZDR とデータレジデンシー