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

Referencia del endpoint de búsqueda: POST y GET /search

/search ejecuta una búsqueda web en vivo, clasifica hasta 20 resultados y lee las páginas de los primeros. Esta página enumera todos los parámetros, su valor predeterminado, sus límites y su efecto en el precio.

Última actualización: · 9 min de lectura

Respuesta rápida

¿Qué parámetros acepta el endpoint de búsqueda de LLMWebSearch?

El endpoint /search de LLMWebSearch solo necesita q. Los parámetros opcionales definen cuántos resultados se devuelven (max_results), cuántas páginas se leen (read), el formato y la longitud del contenido, noticias o web, un rango de tiempo, el país y el idioma, y los dominios que se conservan o se descartan. Leer hasta 3 páginas cuesta 1 crédito, desde 1,20 US$/1K búsquedas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas.

/search at a glance

MétodosPOST con un cuerpo JSON, o GET con los mismos nombres en la cadena de consulta
URLhttps://llmwebsearch.com/api/v1/search
Obligatorioq: de 1 a 400 caracteres; los operadores de búsqueda se pasan tal como se escriben
Valores predeterminados5 resultados, se leen los 3 primeros, Markdown de hasta 6.000 caracteres por página
FacturaciónUn crédito paga una búsqueda: hasta 20 resultados clasificados, con las páginas de los 3 primeros leídas y devueltas como Markdown. Leer de 4 a 10 páginas pasa a 2 créditos. Una llamada que termina en error no cuesta nada
ResultadosLos resultados provienen de una búsqueda web en vivo ejecutada en el momento de tu llamada, en el orden en que los clasifica el motor de búsqueda; no se sirve nada de un índice antiguo
FiltrosElige el país y el idioma de los resultados, un rango temporal (último día, semana, mes o año), resultados web o de noticias, y dominios que incluir o excluir
Lector de páginasLLMWebSearch/1.0 (+https://llmwebsearch.com/bot/)

Busca en la web y lee los mejores resultados (POST)

POST/api/v1/search

Ejecuta una búsqueda web en vivo y devuelve resultados clasificados. Las páginas de los primeros read resultados se obtienen en paralelo y su contenido principal se devuelve en content. El ejemplo pregunta cómo rotar claves API; los títulos, las fechas y los valores son ilustrativos.

Autenticación: clave API en la cabecera Authorization: Bearer API_KEY.

Cuerpo de la solicitud

CampoTipoObligatorioDescripción
qstringSíLa consulta de búsqueda, de 1 a 400 caracteres. Las comillas y los operadores como site: se mantienen tal como se escriben.
max_resultsintegerNoNúmero de resultados clasificados, de 1 a 20. Predeterminado 5.
readintegerNoCuántos de los primeros resultados se leen y se devuelven con su contenido, de 0 a 10. Predeterminado 3. A partir de 4, la llamada cuesta 2 créditos.
formatstringNomarkdown (predeterminado) o text para el contenido de la página.
max_charsintegerNoLímite de longitud del contenido de cada página, de 500 a 50,000 caracteres. Por defecto 6,000.
topicstringNoweb (predeterminado) o news.
time_rangestringNoday, week, month o year. Sin valor predeterminado: cualquier fecha.
countrystringNoCódigo de país de dos letras (ISO 3166-1 alpha-2) para el lugar donde se ejecuta la búsqueda. Predeterminado us.
languagestringNoIdioma de los resultados, como en, de o pt-BR. Predeterminado en.
include_domainsstring[]NoHasta 20 dominios; solo se conservan los resultados de estos dominios y sus subdominios.
exclude_domainsstring[]NoHasta 20 dominios cuyos resultados se descartan.
Ejemplo: five results, the top three read as Markdown
{
  "q": "how to rotate api keys without downtime",
  "max_results": 5,
  "read": 3,
  "max_chars": 6000
}
Ejemplo: news of the past week from two sites, nothing read
{
  "q": "open source license change",
  "topic": "news",
  "time_range": "week",
  "include_domains": [
    "news.example.com",
    "example.org"
  ],
  "read": 0
}

Respuesta 200

{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 1,
  "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.",
      "published_at": "2026-06-12",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository...",
      "word_count": 1310
    },
    {
      "position": 4,
      "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"
    }
  ]
}

Ejemplos de código

curl
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3}'
Python
import os
import requests

resp = requests.post(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    json={"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3},
    timeout=60,
)
resp.raise_for_status()
for r in resp.json()["results"]:
    print(r["position"], r["content_status"], r["url"])
Node.js
const res = await fetch('https://llmwebsearch.com/api/v1/search', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ q: 'how to rotate api keys without downtime', max_results: 5, read: 3 }),
});
const { results } = await res.json();
for (const r of results) console.log(r.position, r.content_status, r.url);

Busca en la web (GET)

GET/api/v1/search

La misma búsqueda con los parámetros en la cadena de consulta, codificados en URL. Las listas como include_domains se escriben como un único valor separado por comas. Útil para una prueba rápida o para herramientas que solo envían solicitudes GET. El ejemplo pide solo resultados (read=0).

Autenticación: clave API en la cabecera Authorization: Bearer API_KEY.

Parámetros

NombreEnTipoObligatorioDescripción
qquerystringSíLa consulta de búsqueda, codificada para URL, de 1 a 400 caracteres.
max_resultsqueryintegerNoDe 1 a 20. Predeterminado: 5.
readqueryintegerNoDe 0 a 10. Predeterminado: 3; 4 o más cuesta 2 créditos.
formatquerystringNomarkdown (por defecto) o text.
max_charsqueryintegerNoDe 500 a 50.000 por página. Predeterminado: 6.000.
topicquerystringNoweb (predeterminado) o news.
time_rangequerystringNoday, week, month o year.
countryquerystringNoCódigo ISO 3166-1 alpha-2. Predeterminado: us.
languagequerystringNoCódigo de idioma. Predeterminado: en.
include_domainsquerystringNoLista separada por comas, hasta 20 dominios.
exclude_domainsquerystringNoLista separada por comas, hasta 20 dominios.
api_keyquerystringNoTu clave, cuando no envías el header Authorization.

Respuesta 200

{
  "query": "postgres connection pooling",
  "created_at": "2026-10-22T10:21:47Z",
  "credits_used": 1,
  "results": [
    {
      "position": 1,
      "title": "Connection pooling explained",
      "url": "https://docs.example.com/db/pooling",
      "host": "docs.example.com",
      "snippet": "A pool keeps a few database connections open and lends them to requests.",
      "content_status": "not_requested"
    },
    {
      "position": 2,
      "title": "Sizing a connection pool",
      "url": "https://blog.example.org/pool-size",
      "host": "blog.example.org",
      "snippet": "Start small: the right size depends on cores and disk, not on traffic.",
      "published_at": "2026-03-04",
      "content_status": "not_requested"
    }
  ]
}

Ejemplos de código

curl
curl -sG "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  --data-urlencode "q=postgres connection pooling" \
  -d max_results=10 -d read=0
Python
import os
import requests

resp = requests.get(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    params={"q": "postgres connection pooling", "max_results": 10, "read": 0},
    timeout=60,
)
print([r["url"] for r in resp.json()["results"]])
Node.js
const params = new URLSearchParams({ q: 'postgres connection pooling', max_results: '10', read: '0' });
const res = await fetch(`https://llmwebsearch.com/api/v1/search?${params}`, {
  headers: { Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}` },
});
console.log((await res.json()).results.map((r) => r.url));

¿Cómo obtengo resultados sin contenido de las páginas?

Configura read en 0. Cada resultado vuelve entonces con su título, URL, host, snippet y fecha, y content_status: "not_requested". La respuesta es mucho más pequeña, lo que ayuda cuando el agente solo necesita elegir qué enlaces importan.

El precio se mantiene en 1 crédito, igual que leer hasta 3 páginas. Un patrón habitual es una búsqueda read=0 para hacer una preselección y luego una llamada a extract sobre las dos o tres URLs que eligió el modelo.

¿Cuándo cuesta 2 créditos una búsqueda?

Cuando read está entre 4 y 10. Leer más páginas implica más trabajo de nuestro lado, así que el precio se duplica una vez y se mantiene en 2 créditos hasta el máximo de 10 páginas.

credits_used en cada respuesta muestra cuánto costó la llamada. Una página que no se pudo leer, por una regla de robots.txt o por una negativa, no baja ni sube ese precio. Si la mayoría de las veces solo necesitas unas pocas páginas completas, deja read en 3 y llama a /extract para la página extra ocasional.

¿Cómo busco noticias recientes?

Envía topic: "news" y un time_range. Los resultados provienen entonces de artículos de noticias, y time_range conserva solo los del último day, week, month o year. published_at se rellena cuando el artículo o el resultado de búsqueda indica una fecha.

El mismo filtro de actualidad funciona con topic: "web". Es útil para preguntas como lanzamientos recientes o cambios de precios, donde una página antigua engañaría al modelo.

Noticias de la última semana, los 3 artículos principales leídos
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "database release security fix", "topic": "news", "time_range": "week", "read": 3}'

¿Cómo limito los resultados a ciertos sitios?

Lístalos en include_domains, hasta 20 entradas. Solo se conservan los resultados cuyo host sea uno de esos dominios, o uno de sus subdominios: example.com también coincide con docs.example.com. Usa exclude_domains al revés, por ejemplo para excluir tu propio sitio de los resultados.

En un body POST ambos campos son arrays JSON. En una solicitud GET, escríbelos como un único valor separado por comas. La consulta en sí también puede llevar un operador site:; se pasa a la búsqueda tal como está escrita.

¿Qué cambian el país y el idioma?

country define dónde se ejecuta la búsqueda, con un código de dos letras como us, de o br. Los rankings varían según el país, sobre todo para servicios locales, precios y normativas. language define el idioma de los resultados, como en, fr o pt-BR.

Ambos tienen como valor predeterminado Estados Unidos e inglés. Configúralos juntos cuando el agente trabaja para usuarios de un solo mercado: un usuario alemán que pregunta por normas fiscales quiere country: "de" y language: "de".

¿Cuánto texto de la página vuelve?

Hasta max_chars caracteres por página, 6.000 por defecto y desde 500 hasta 50.000. El límite protege la ventana de contexto del modelo: tres páginas de 6.000 caracteres son aproximadamente 4.500 tokens de inglés.

word_count cuenta todo el texto extraído, antes del corte, así que puedes saber cuándo se recortó una página. Cuando una respuesta necesita un documento largo, busca primero con un límite bajo y luego obtén esa página sola mediante /extract con un límite más alto. Una página lenta no se espera indefinidamente: tras 15 segundos vuelve como fetch_timeout, sin contenido.

Endpoint de búsqueda: preguntas frecuentes

¿Debo usar POST o GET?

POST en el código, porque los arrays JSON y las consultas largas son más simples en un body. GET va bien para una prueba rápida en una terminal o en una herramienta que solo envía query strings. Ambos devuelven la misma respuesta y cuestan lo mismo.

¿Puedo pedir más de 20 resultados?

No. 20 es el máximo por llamada. Los agentes rara vez necesitan más: una segunda búsqueda con la consulta reformulada suele traer mejores fuentes que una lista larga.

¿Las páginas se leen una tras otra?

No, en paralelo. Una página que no responde en 15 segundos se devuelve sin contenido, como fetch_timeout, para que un sitio lento no retenga toda la respuesta.

¿Qué motor de búsqueda produce los resultados?

Los resultados provienen de una búsqueda web en vivo ejecutada en el momento de tu llamada, en el orden en que los clasifica el motor de búsqueda; no se sirve nada de un índice antiguo. No publicamos qué proveedores upstream ejecutan la búsqueda.

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

Obtén una clave API