For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

웹 검색

모델이 응답을 생성하기 전에 웹에서 최신 정보를 검색할 수 있도록 설정하세요.

웹 검색을 사용하면 모델이 인터넷에서 최신 정보를 찾아 답변에 출처를 인용할 수 있습니다. 이 기능을 사용하려면 Responses API에서 웹 검색 도구를 활성화하세요. 일부 경우에는 Chat Completions에서도 웹 검색을 사용할 수 있습니다.

답하려는 질문에 맞춰 검색 워크플로우를 선택하세요.

  • 특정 사실을 빠르게 확인하려면 모델에 해당 사실을 검색하고 출처를 인용해 달라고 요청하세요.
  • 여러 출처를 참고해야 하는 질문에는 gpt-6-astra 같은 추론 모델을 사용하세요. 추론 모델은 검색 결과를 읽으면서 다음 검색을 구체화할 수 있습니다. 요청 처리에 몇 분이 걸릴 수 있다면 백그라운드 모드를 사용하세요.

통합 방식 선택

사용 사례 권장 방식 참고 사항
웹 검색을 새로 통합하는 경우 Responses API에서 web_search와 gpt-6-astra 사용 호스팅형 웹 검색에서 필터 설정, 출처 확인, 실시간 접근 제어, 장시간 리서치를 지원합니다.
기존 Chat Completions 검색 통합 Chat Completions에서 gpt-5-search-api 사용 기존 Chat Completions 통합을 유지해야 할 때만 사용하세요.
여러 단계의 리서치 또는 작성에 오래 걸리는 보고서 gpt-6-astra의 추론 수준을 high 또는 xhigh로 설정 보고서 작성에 몇 분이 걸릴 수 있다면 백그라운드 모드를 사용하세요.

Responses API에서는 콘텐츠 생성 요청의 tools 배열에 웹 검색 도구를 지정해 웹 검색을 활성화할 수 있습니다. 다른 도구와 마찬가지로 모델은 입력 프롬프트의 내용에 따라 웹 검색을 사용할지 결정합니다.

Responses API에 웹 검색을 새로 통합할 때는 { "type": "web_search" }를 사용하세요. 기존 통합에서는 이전 도구인 web_search_preview를 계속 사용할 수 있지만, 이 도구는 filters, external_web_access, return_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);

출력과 인용

웹 검색 도구를 사용한 모델 응답에는 두 가지 출력 항목이 포함됩니다.

  • web_search_call 출력 항목에는 검색 호출 ID가 들어 있으며, 수행한 작업은 web_search_call.action에 표시됩니다. 작업 유형은 다음 중 하나입니다.
    • search는 웹 검색을 나타냅니다. 일반적으로 검색에 사용한 질의가 queries에 포함되지만 생략될 때도 있습니다. 검색 작업에는 도구 호출 비용이 발생합니다(요금 참고).
    • open_page는 페이지를 여는 작업입니다. 추론 모델에서 지원합니다.
    • find_in_page는 페이지 내에서 검색하는 작업입니다. 추론 모델에서 지원합니다.
  • message 출력 항목에는 다음이 포함됩니다.
    • message.content[0].text에 담긴 텍스트 결과
    • message.content[0].annotations에 담긴 인용 URL 주석

기본적으로 모델은 웹 검색 결과에서 찾은 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_preview web_search로 마이그레이션 web_search는 filters, external_web_access, return_token_budget 같은 최신 설정을 지원합니다.
gpt-4o-search-preview 또는 gpt-4o-mini-search-preview Responses의 web_search로 마이그레이션하거나, Chat Completions를 유지해야 한다면 gpt-5-search-api 사용 프리뷰 검색 모델은 사용 중단 예정(deprecated)으로 지정된 후 2026년 7월 23일에 종료되었습니다.
Chat Completions 검색 통합 gpt-5-search-api를 사용하거나, 더 다양한 도구 설정과 선택적 검색이 필요하면 Responses의 web_search로 마이그레이션 Chat Completions 검색 모델은 응답 전에 항상 검색합니다. Responses에서는 검색을 도구로 호출합니다.
Responses의 o4-mini 현재 지원되는 추론 모델로 마이그레이션하고 web_search 사용 이 모델은 2026년 10월 23일에 종료되었습니다.

기존 통합에서 gpt-5를 계속 사용하는 경우 웹 검색을 사용하려면 추론 수준을 minimal보다 높게 설정해야 합니다.

검색 컨텍스트 크기

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);

장시간 웹 리서치 실행

리서치에 비공개 기록도 사용한다면 공개 웹 검색과 MCP를 통한 비공개 기록 조회를 별도의 요청으로 실행하세요.

return_token_budget은 GPT-5 이상 추론 모델로 Responses API에서 검색할 때 도구가 반환할 수 있는 웹 검색 결과의 분량을 제어합니다. 대부분의 요청에는 기본값을 유지하세요. 많은 페이지를 살펴봐야 하는 집중적인 리서치나 평가에서 기본 반환 토큰 한도에 도달해 작업이 중단될 수 있는 경우에만 unlimited로 설정하세요.

unlimited를 사용하면 지연 시간과 비용이 늘어날 수 있으므로 필요한 경우에만 사용하세요. 여러 번 검색하는 장시간 작업에는 백그라운드 모드(background: true)를 사용하세요. 요청을 비동기적으로 계속 실행하고 나중에 최종 응답을 가져올 수 있습니다.

값 동작
default 웹 검색 결과에 기본 반환 토큰 한도를 적용합니다. return_token_budget을 생략했을 때와 동작이 같습니다.
unlimited 해당 웹 검색 실행에서 기본 반환 토큰 한도를 해제합니다.

이 매개변수는 Responses API의 호스팅형 web_search 도구로 GPT-5 이상 추론 모델의 웹 검색을 실행할 때만 적용됩니다. 검색 컨텍스트 윈도우는 바뀌지 않으며, 비추론 웹 검색, 기존 Search API 경로, 컨테이너 웹 검색, Chat Completions 검색 모델, web_search_preview에는 적용되지 않습니다. 지원하는 값은 default와 unlimited뿐입니다. 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 매개변수에서 allowed_domains에 허용할 도메인을 최대 100개 지정하거나 blocked_domains에 차단할 도메인을 최대 100개 지정할 수 있습니다. 도메인을 입력할 때는 HTTP 또는 HTTPS 접두사를 생략하세요. 예를 들어 openai.com으로 입력하세요. https://openai.com/처럼 전체 URL을 입력하지 마세요. 지정한 도메인의 하위 도메인에도 필터가 적용됩니다. 도메인 필터링은 Responses API의 web_search 도구에서만 사용할 수 있습니다.

출처

웹 검색 중에 가져온 모든 URL을 확인하려면 sources 필드를 사용하세요. 본문 인용에는 가장 관련성 높은 출처만 표시되지만, sources 필드는 모델이 응답을 작성할 때 참조한 전체 URL 목록을 반환합니다. 출처 수는 인용 수보다 많은 경우가 흔합니다. 외부 제공업체의 실시간 피드도 이 목록에 oai-sports, oai-weather 또는 oai-finance로 표시됩니다. sources 필드는 web_search와 web_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_types에 image를 포함하세요. 모델이 검색한 이미지를 요약하거나 순위를 매기거나 설명하는 데 도움이 되는 텍스트 결과도 필요하다면 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: 이미지를 찾은 페이지의 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"
        }
      ]
    }
  ]
}

사용자 위치

지역에 맞는 검색 결과를 얻으려면 국가, 도시, 지역, 시간대 중 하나 이상을 사용해 사용자의 대략적인 위치를 지정하세요.

  • city와 region 필드에는 자유 형식의 문자열을 입력합니다. 예를 들어 각각 Minneapolis와 Minnesota를 지정할 수 있습니다.
  • country 필드에는 두 글자로 된 ISO 국가 코드를 입력합니다. 예를 들면 US입니다.
  • timezone 필드에는 IANA 시간대를 입력합니다. 예를 들면 America/Chicago입니다.
사용자 위치 설정
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에서는 웹 검색 도구가 실시간 콘텐츠를 가져올지, 캐시 또는 색인에 있는 결과만 사용할지 설정할 수 있습니다.

  • external_web_access: false를 web_search 도구에 설정하면 오프라인 모드로 실행되어 캐시된 결과만 사용합니다.
  • 설정을 생략하면 기본값은 true이며 실시간 접근이 허용됩니다.
  • 프리뷰 베리언트(web_search_preview)는 이 매개변수를 무시하고 external_web_access가 true인 것처럼 동작합니다.
실시간 인터넷 접근 제어
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-api 200k Chat Completions 검색 모델 경로를 사용합니다.

Responses API

호스팅형 web_search 도구를 사용하세요. Responses API는 기존 통합을 위해 web_search_preview를 계속 지원하지만 새로 통합할 때는 web_search를 사용하세요.

사용하는 모델의 컨텍스트 윈도우가 더 크더라도 웹 검색 컨텍스트 윈도우는 128k로 제한됩니다. gpt-6-astra 또는 다른 지원 모델의 컨텍스트 한도는 해당 모델 페이지에서 확인하세요.

  • gpt-5.4의 추론 수준을 none으로 설정하면 결과 품질이 낮아질 수 있습니다.
  • Responses API 웹 검색에는 사용하는 모델의 등급별 요청 한도가 적용됩니다.
  • web_search_preview는 filters와 return_token_budget을 지원하지 않으며 external_web_access를 무시합니다.
  • tool_choice: "auto"로 설정하면 검색 여부는 모델이 결정합니다. 검색을 반드시 실행해야 한다면 tool_choice: "required"를 사용하거나 특정 웹 검색 도구를 지정하세요.

사용 시 참고 사항

API 지원 여부요청 한도참고 사항

도구와 함께 사용하는 모델의 등급별 요청 한도와 같습니다.

요금
ZDR 및 데이터 레지던시