For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme

Búsqueda web

Permite que los modelos busquen información actualizada en la web antes de generar una respuesta.

La búsqueda web permite que los modelos consulten información actualizada en internet y citen las fuentes en sus respuestas. Para habilitarla, usa la herramienta de búsqueda web en la API de Responses o, en algunos casos, en Chat Completions.

Elige cómo realizar la búsqueda según la pregunta que necesites responder.

  • Para una consulta rápida, pídele a un modelo que busque un dato específico y cite la fuente.
  • Si la pregunta requiere consultar varias fuentes, usa un modelo de razonamiento como gpt-6-astra. El modelo puede afinar sus búsquedas a medida que lee los resultados. Usa el modo en segundo plano si la solicitud puede tardar varios minutos.

Elegir una integración

Caso de uso Opción recomendada Notas
Nueva integración de búsqueda web API de Responses con web_search y gpt-6-astra La herramienta de búsqueda web alojada admite filtros, consulta de fuentes, control de acceso en tiempo real e investigaciones más largas
Integración de búsqueda existente en Chat Completions Chat Completions con gpt-5-search-api Usa esta opción solo si necesitas conservar una integración con Chat Completions
Investigación de varios pasos o generación de informes que tardan en completarse gpt-6-astra con nivel de razonamiento high o xhigh Usa el modo en segundo plano para los informes que puedan tardar varios minutos

Con la API de Responses, puedes habilitar la búsqueda web si la configuras en el arreglo tools de una solicitud de generación de contenido. Al igual que con cualquier otra herramienta, el modelo puede decidir si busca en la web según el contenido del prompt de entrada.

Para las nuevas integraciones con la API de Responses, usa { "type": "web_search" }. La herramienta anterior, web_search_preview, sigue disponible para las integraciones heredadas, pero no admite controles más recientes como filters, external_web_access y return_token_budget.

Ejemplo de uso de la herramienta de búsqueda 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);

Salida y citas

Las respuestas del modelo que usan la herramienta de búsqueda web incluyen dos partes:

  • Un elemento de salida web_search_call con el ID de la llamada de búsqueda y la acción realizada en web_search_call.action. La acción puede ser una de las siguientes:
    • search representa una búsqueda web. Por lo general, aunque no siempre, incluye las consultas realizadas en queries. Las acciones de búsqueda tienen un costo por llamada a la herramienta (consulta los precios).
    • open_page representa la apertura de una página. Está disponible en los modelos de razonamiento.
    • find_in_page representa una búsqueda dentro de una página. Está disponible en los modelos de razonamiento.
  • Un elemento de salida message que contiene:
    • El texto resultante en message.content[0].text
    • Las anotaciones de las URL citadas en message.content[0].annotations

De forma predeterminada, la respuesta del modelo incluye citas en el texto para las URL encontradas en los resultados de la búsqueda web. Además, el objeto de anotación url_citation contiene la URL, el título y la ubicación de la fuente citada.

Cuando tu interfaz muestre resultados de la web o información extraída de ellos, debes mostrar las citas en el texto como enlaces destacados en los que se pueda hacer clic.

[
  {
    "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..."
          }
        ]
      }
    ]
  }
]

Migrar desde versiones anteriores de la búsqueda web

Si usas Opción recomendada Notas
web_search_preview en Responses Migra a web_search web_search admite controles más recientes como filters, external_web_access y return_token_budget
gpt-4o-search-preview o gpt-4o-mini-search-preview Migra a la herramienta web_search de Responses o usa gpt-5-search-api si necesitas seguir usando Chat Completions Los modelos de búsqueda preliminares quedaron obsoletos y se desactivaron el 23 de julio de 2026
Integraciones de búsqueda con Chat Completions Usa gpt-5-search-api o migra a la herramienta web_search de Responses para tener más controles y hacer que la búsqueda sea opcional Los modelos de búsqueda de Chat Completions siempre buscan antes de responder. En Responses, la búsqueda es una herramienta
o4-mini en Responses Migra a un modelo de razonamiento compatible con web_search El modelo se desactivó el 23 de octubre de 2026

En las integraciones que aún usan gpt-5, la búsqueda web requiere un nivel de esfuerzo de razonamiento superior a minimal.

Tamaño del contexto de búsqueda

search_context_size controla cuánto contexto de los resultados de la búsqueda web recibe el modelo antes de generar una respuesta. Usa low para una consulta que solo requiera unos pocos datos, medium como opción predeterminada equilibrada y high cuando la respuesta pueda requerir más detalles de los resultados. Este ajuste no establece una cantidad exacta de tokens ni garantiza una cantidad específica de fuentes o citas.

Configurar el tamaño del contexto de búsqueda
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);

Realizar investigaciones más extensas en la web

Si tu investigación también utiliza registros privados, realiza las búsquedas en la web pública y las consultas a registros privados mediante MCP en solicitudes separadas.

return_token_budget controla cuánto contenido de los resultados de búsqueda web puede devolver la herramienta durante una búsqueda en la API de Responses con modelos de razonamiento GPT-5 o posteriores. Conserva el valor predeterminado para la mayoría de las solicitudes. Configúralo en unlimited solo para investigaciones o evaluaciones que requieran un esfuerzo considerable y en las que sea necesario revisar muchas páginas, ya que, de otro modo, podrían detenerse al alcanzar el límite estándar de tokens devueltos.

Usa unlimited de forma selectiva porque puede aumentar la latencia y el costo. Para tareas largas que requieran varias búsquedas, usa el modo en segundo plano (background: true) para que la solicitud siga ejecutándose de forma asíncrona y puedas recuperar la respuesta final más tarde.

Valor Comportamiento
default Aplica el límite estándar de tokens que la herramienta puede devolver en los resultados de búsqueda web. Tiene el mismo efecto que omitir return_token_budget.
unlimited Elimina el límite predeterminado de tokens que se pueden devolver durante la búsqueda web.

Este parámetro solo se aplica a la herramienta alojada web_search de la API de Responses cuando la búsqueda web usa modelos de razonamiento GPT-5 o posteriores. No modifica la ventana de contexto de búsqueda ni se aplica a la búsqueda web sin razonamiento, a las rutas heredadas de la API de búsqueda, a la búsqueda web en contenedores, a los modelos de búsqueda de Chat Completions ni a web_search_preview. Solo se admiten los valores default y unlimited. Se rechazan null, los números y cualquier otra cadena.

Realizar búsquedas web más extensas
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."
  }'

Filtrado por dominio

El filtrado por dominio te permite limitar los resultados de la búsqueda web a un conjunto específico de dominios. Con el parámetro filters, puedes configurar hasta 100 dominios permitidos en allowed_domains o hasta 100 dominios bloqueados en blocked_domains. Al indicar los dominios, omite el prefijo HTTP o HTTPS. Por ejemplo, usa openai.com en lugar de https://openai.com/. La búsqueda también incluye los subdominios. El filtrado por dominio solo está disponible en la API de Responses con la herramienta web_search.

Fuentes

Para ver todas las URL obtenidas durante una búsqueda web, usa el campo sources. Las citas en el texto solo muestran las referencias más relevantes, mientras que el campo sources devuelve la lista completa de URL que el modelo consultó para elaborar su respuesta. La cantidad de fuentes suele ser mayor que la de citas. Aquí también aparecen las fuentes de datos de terceros en tiempo real, identificadas como oai-sports, oai-weather u oai-finance. El campo sources está disponible tanto con la herramienta web_search como con web_search_preview.

Obtener la lista de fuentes
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."
  }'

Resultados de búsqueda de imágenes

La búsqueda web puede devolver imágenes junto con los resultados de texto habituales. Usa la búsqueda de imágenes cuando tu aplicación necesite imágenes actuales o procedentes de la web, como fotos de productos, sitios emblemáticos, lugares o eventos, u otras referencias visuales.

Para usar la búsqueda de imágenes, configura search_content_types de modo que incluya image. Agrega text si también quieres obtener resultados de texto que ayuden al modelo a resumir, ordenar por relevancia o explicar las imágenes encontradas.

Usa image_settings para controlar las opciones específicas de las imágenes:

  • max_results: indica un número positivo de imágenes que quieres obtener.
  • caption: solicita descripciones breves de las imágenes cuando estén disponibles.

Para examinar los resultados de imágenes sin procesar, incluye web_search_call.results en la solicitud y lee web_search_call.results[] en la respuesta. Los resultados de imágenes se devuelven por separado del mensaje del asistente. Si tu aplicación necesita las URL o los metadatos, procesa directamente el elemento web_search_call.

Buscar imágenes
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);

Cada image_result incluye:

  • image_url: la URL canónica de la imagen del resultado.
  • source_website_url: la página donde se encontró la imagen.
  • thumbnail_url: la URL de la miniatura, si está disponible.
  • caption: un pie de imagen o una descripción breve, si 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"
        }
      ]
    }
  ]
}

Ubicación del usuario

Para afinar los resultados de búsqueda según la ubicación geográfica, puedes indicar la ubicación aproximada del usuario mediante uno o más de estos datos: país, ciudad, región y zona horaria.

  • Los campos city y region admiten cadenas de texto libre, como Minneapolis y Minnesota, respectivamente.
  • El campo country contiene un código de país ISO de dos letras, como US.
  • El campo timezone contiene una zona horaria de IANA, como America/Chicago.
Personalizar la ubicación del usuario
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);

Acceso a internet en tiempo real

En la API de Responses, puedes controlar si la herramienta de búsqueda web obtiene contenido en tiempo real o usa solo resultados almacenados en caché o indexados.

  • Configura external_web_access: false en la herramienta web_search para ejecutarla sin conexión, usando solo la caché.
  • Si no especificas este parámetro, el valor predeterminado es true (acceso en tiempo real).
  • Las versiones preliminares (web_search_preview) ignoran este parámetro y se comportan como si external_web_access tuviera el valor true.
Controlar el acceso a internet en tiempo real
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."
  }'

Limitaciones

API para completar chats

La API para completar chats solo admite modelos especializados para la búsqueda web. Estos modelos no admiten funciones de la herramienta web_search de la API de Responses, como los filtros de dominio, las listas completas de fuentes, el control de acceso en tiempo real y la configuración del límite de tokens devueltos.

Modelo Ventana de contexto Limitación
gpt-5-search-api 200 000 Usa la ruta de los modelos de búsqueda de Chat Completions

API de Responses

Usa la herramienta alojada web_search. La API de Responses sigue aceptando web_search_preview para las integraciones heredadas, pero usa web_search para las integraciones nuevas.

La ventana de contexto de la búsqueda web se limita a 128 000 tokens, incluso cuando el modelo subyacente tiene una ventana de contexto mayor. Para conocer el límite de contexto de gpt-6-astra o de otro modelo compatible, consulta la página del modelo.

  • gpt-5.4 puede producir resultados de menor calidad si configuras el esfuerzo de razonamiento en none.
  • La búsqueda web de la API de Responses usa los límites de solicitudes que corresponden a cada nivel del modelo subyacente.
  • web_search_preview no admite filters ni return_token_budget e ignora external_web_access.
  • Con tool_choice: "auto", la búsqueda es opcional. Usa tool_choice: "required" o selecciona una herramienta específica de búsqueda web cuando la búsqueda sea obligatoria.

Notas de uso

Disponibilidad por APILímites de solicitudesNotas

Se aplican los mismos límites de solicitudes por nivel que al modelo que usas con la herramienta.

Precios
ZDR y residencia de datos