Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Obtén una clave API

Docs · Referencia de la API

Formato de respuesta: todos los campos de una búsqueda, explicados

La respuesta de una búsqueda es un único objeto JSON: unos cuantos campos sobre la llamada y luego un array results ordenado. Cada resultado indica si se leyó su página y, si es así, incluye el contenido. Aquí tienes todos los campos, con los estados que un agente debe gestionar.

Última actualización: · 6 min de lectura

Respuesta rápida

¿Qué devuelve la API de LLMWebSearch en una búsqueda?

LLMWebSearch devuelve JSON con el query, created_at, credits_used y un array results ordenado. Cada resultado tiene su posición, título, URL, host y snippet, y un content_status; cuando es ok, el contenido principal de la página está en content con un word_count. Una búsqueda con hasta 3 páginas leídas cuesta 1 crédito, desde 1,20 US$/1K búsquedas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas.

¿Qué campos describen la llamada?

Nivel superior de una respuesta /search.

CampoTipoSignificado
querystringLa consulta tal como la ejecutamos, tras recortar espacios
created_atstringCuándo se ejecutó la búsqueda, ISO 8601 en UTC
credits_usedenteroLo que costó la llamada: 1, o 2 cuando read era de 4 a 10
resultsarrayResultados ordenados, del mejor al peor, como máximo max_results elementos

¿Qué campos incluye cada resultado?

Un campo que ni la página ni el resultado de búsqueda proporcionan se omite en lugar de enviarse vacío.

CampoTipoCuándo apareceSignificado
positionenteroSiemprePosición en la búsqueda, empezando por 1
titlestringSiempreTítulo del resultado
urlstringSiempreDirección de la página
hoststringSiempreNombre del host de la página, útil para agrupar o citar
snippetstringSiempreExtracto corto que muestra la búsqueda
published_atstringCuando se conoce una fechaFecha de publicación de la página o del resultado de búsqueda
content_statusstringSiempreSi se leyó la página y, si no, por qué
contentstringCuando content_status es okContenido principal en Markdown o texto plano, cortado en max_chars
word_countenteroCuando content_status es okPalabras de todo el texto extraído, contadas antes del corte
target_statusenteroCon target_refusedEl código de estado HTTP con el que respondió el sitio, como 403 o 429

¿Qué significa cada content_status?

Nada de esto cambia el precio de la búsqueda. Describen una página, nunca la llamada completa.

content_statusSignificadoQué debería hacer un agente
okSe leyó la página; content contiene su texto principalÚsalo y cita el url
not_requestedEl resultado está más allá del recuento de readSube read o léelo a través de /extract si es necesario
blocked_by_robotsEl robots.txt del sitio no permite nuestro lector en esta páginaApóyate en el snippet o en otra fuente
blocked_by_site_policyEl sitio declara Content-Signal: ai-input=noApóyate en el snippet o en otra fuente
target_refusedEl sitio rechazó la solicitud; consulta target_statusNo reintentes la página; usa otra fuente
fetch_failedError de DNS, TLS o de conexión, o la página ya no existePrueba otro resultado; un reintento posterior puede funcionar
fetch_timeoutLa página no respondió en 15 segundosPrueba otro resultado; un reintento posterior puede funcionar
unsupported_contentEl enlace es un archivo que no podemos convertir en textoUsa el snippet u otro resultado

¿Cómo se ve una respuesta completa?

El ejemplo siguiente pidió 5 resultados con los primeros 4 leídos, así que costó 2 créditos. Se leyeron los resultados 1 y 3. El resultado 2 pertenece a un sitio cuyo robots.txt deja fuera a nuestro lector, el resultado 4 rechazó la solicitud y el resultado 5 queda más allá de read. Los títulos, las URL y los valores son ilustrativos.

Respuesta de POST /search (ilustrativa)
{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 2,
  "results": [
    {
      "position": 1,
      "title": "Rotating API keys",
      "url": "https://docs.example.com/security/key-rotation",
      "host": "docs.example.com",
      "snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
      "published_at": "2026-09-30",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
      "word_count": 948
    },
    {
      "position": 2,
      "title": "Key rotation checklist",
      "url": "https://blog.example.org/key-rotation-checklist",
      "host": "blog.example.org",
      "snippet": "Keep two keys active during the switch and alert on the old one.",
      "content_status": "blocked_by_robots"
    },
    {
      "position": 3,
      "title": "Secrets management basics",
      "url": "https://security.example.net/secrets-basics",
      "host": "security.example.net",
      "snippet": "Never commit keys to a repository.",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository.",
      "word_count": 1310
    },
    {
      "position": 4,
      "title": "Key management service guide",
      "url": "https://cloud.example.com/kms-guide",
      "host": "cloud.example.com",
      "snippet": "Store keys in a managed vault and rotate them on a schedule.",
      "content_status": "target_refused",
      "target_status": 403
    },
    {
      "position": 5,
      "title": "API key best practices",
      "url": "https://dev.example.com/api-key-best-practices",
      "host": "dev.example.com",
      "snippet": "Scope each key to one service and one environment.",
      "content_status": "not_requested"
    }
  ]
}

¿Qué resultados reciben un estado de página distinto de not_requested?

Solo los primeros read resultados y cada elemento de una llamada de /extract. Esas son las páginas que nuestro lector realmente intentó. Todo lo que va después del recuento de read se queda en not_requested, independientemente de lo que habría respondido el sitio.

El orden nunca cambia: el lector trabaja sobre las posiciones 1, 2, 3 y así sucesivamente, nunca sobre un resultado posterior en lugar de uno anterior que falló. Si un agente necesita un reemplazo para una página rechazada, puede leer el siguiente resultado mediante /extract.

¿Cómo es una respuesta de extract?

/extract devuelve credits_used y un array results en el orden de las URL que enviaste. Cada elemento tiene el url y un content_status; con ok añade title, content y word_count, y con target_refused añade target_status. No hay position, host ni snippet, porque no se ejecutó ninguna búsqueda.

La referencia de extract muestra un ejemplo completo y explica cómo se cuentan sus créditos.

¿Cómo convierto los resultados en contexto para un modelo?

Numera las fuentes, mantén la URL junto a cada una y pasa solo lo que el modelo necesita. Un formato compacto funciona bien: [1] title — url, luego el contenido de esa página y después la siguiente fuente. Pide al modelo que cite con los mismos números.

Cuando un resultado no tiene contenido, dale al modelo su snippet en su lugar e indica que es solo un snippet. Así evitas respuestas basadas en una página que el modelo nunca vio. La página de Python tiene un bucle corto que hace todo esto dentro de un presupuesto de tokens.

Formato de respuesta: preguntas frecuentes

¿El contenido siempre es Markdown?

Markdown por defecto. Envía format: "text" para obtener texto plano sin marcado, por ejemplo cuando solo cuentas palabras o clasificas páginas. El nombre del campo sigue siendo content.

¿Por qué falta published_at en algunos resultados?

Muchas páginas no indican ninguna fecha, y algunos resultados de búsqueda tampoco la muestran. En ese caso el campo se omite, así que comprueba si está presente antes de usarlo.

¿Pueden aparecer campos nuevos más adelante?

Sí. En la versión 1, los campos pueden añadirse, pero nunca se renombran ni se eliminan. Escribe tu parser para que ignore los campos que no conozca.

¿El contenido se almacena de vuestro lado?

No. No entrenamos ningún modelo con tus consultas ni con lo que devuelve la API, y no añadimos ninguna regla propia contra almacenar resultados; los derechos de los sitios cuyas páginas lees siguen aplicándose. Nuestro registro de solicitudes solo guarda un breve rastro de cada llamada, descrito en la página de privacidad.

Desde 1,20 US$/1K búsquedas · sin KYC

Obtén una clave API