Respuesta rápida
¿Cómo ejecuto mi primera búsqueda con una API de búsqueda web para agentes de IA?
Envía tu pregunta a POST https://llmwebsearch.com/api/v1/search con tu clave API como token Bearer. LLMWebSearch ejecuta una búsqueda web en vivo y devuelve hasta 20 resultados clasificados, con las primeras 3 páginas leídas y devueltas como Markdown. Un crédito paga toda esa llamada, desde 1,20 US$/1K búsquedas a octubre de 2026. Sin KYC; paga con criptomonedas.
La API en una tarjeta
| URL base | https://llmwebsearch.com/api/v1 |
|---|---|
| Buscar | POST o GET https://llmwebsearch.com/api/v1/search |
| Lee URLs que ya tengas | POST https://llmwebsearch.com/api/v1/extract |
| Créditos disponibles | GET https://llmwebsearch.com/api/v1/credits, sin coste |
| Autenticación | Pasa tu clave API como token Bearer en la cabecera Authorization, o como parámetro de consulta api_key |
| Facturación | Un 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 |
| Nuestro lector de páginas | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/), token de robots.txt LLMWebSearch |
| Pack más pequeño | 5.000 búsquedas por 9,25 US$; los créditos no caducan |
¿Cómo obtengo una clave API?
No hay formulario de registro. Esperar a que la blockchain confirme tu recarga es la parte más larga.
Recarga tu saldo con criptomonedas
Envía al menos 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC. Inicia sesión con un número de cuenta; la dirección de email es opcional.
Compra un pack de búsquedas
5.000 búsquedas por 9,25 US$ es más que suficiente para integrar la búsqueda en un agente y probar todas las opciones.
Copia la clave
Cuando tu recarga con criptomonedas se confirma y compras un pack, tu clave API te espera en el panel. Guárdala en una variable de entorno llamada
LLMWEBSEARCH_API_KEY.
¿Cómo es la primera búsqueda?
Es un único POST HTTPS con un cuerpo JSON pequeño. Solo q es obligatorio: la pregunta o las palabras clave, tal como las escribiría una persona. Los valores por defecto ya encajan con la mayoría de los agentes. Obtienes 5 resultados ordenados, y las páginas de los 3 primeros se leen y se devuelven como Markdown de hasta 6.000 caracteres cada una.
Los tres fragmentos de abajo envían la misma búsqueda. Elige el que encaje con tu stack, define LLMWEBSEARCH_API_KEY en tu shell y ejecútalo.
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}'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()
data = resp.json()
print("credits used:", data["credits_used"])
for r in data["results"]:
size = r.get("word_count", 0)
print(r["position"], r["title"], r["url"], r["content_status"], size, "words")
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 data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
const first = data.results.find((r) => r.content_status === 'ok');
console.log(first ? `${first.title}\n${first.url}\n\n${first.content.slice(0, 600)}` : 'No page could be read.');
¿Qué devuelve?
Un objeto JSON con tu query, la hora de la llamada en created_at, el precio en credits_used y un array results en orden de relevancia. Cada resultado tiene su position, title, url, host y snippet, además de published_at cuando se conoce la fecha.
El campo que hay que vigilar es content_status. Cuando indica ok, la página se leyó y su contenido principal está en content, con un word_count. Los resultados a partir de read indican not_requested. Una página que no se pudo leer indica por qué, por ejemplo blocked_by_robots. La página de formato de respuesta explica cada campo.
¿Qué parámetros voy a cambiar más a menudo?
Seis parámetros cubren casi cualquier agente. Todos son opcionales.
| Parámetro | Qué cambia |
|---|---|
max_results | Cuántos resultados ordenados se devuelven, de 1 a 20 |
read | Cuántos de los primeros resultados se leen, de 0 a 10 |
max_chars | El límite de longitud del contenido de cada página, de 500 a 50.000 caracteres |
topic y time_range | Noticias en lugar de páginas web, y una ventana de actualidad |
include_domains | Resultados solo de los sitios que indiques |
country y language | Dónde y en qué idioma se ejecuta la búsqueda |
La referencia de búsqueda documenta cada uno con un ejemplo, además de format y exclude_domains.
¿Cuántos créditos consume una llamada?
La mayoría de las llamadas consumen uno. El conjunto completo de reglas:
- Búsqueda que lee de 0 a 3 páginas: 1 crédito. Incluye hasta 20 resultados ordenados.
- Búsqueda que lee de 4 a 10 páginas: 2 créditos.
- Extract: Leer páginas cuyas URL ya tienes cuesta 1 crédito por cada grupo iniciado de 3 páginas devueltas con contenido, hasta 20 URL por llamada; las URL rechazadas o fallidas no se cuentan.
- Errores: 0 créditos. Un parámetro incorrecto, una clave errónea, un saldo vacío o una búsqueda fallida no cuestan nada.
- Una página que no se pudo leer dentro de una búsqueda exitosa no cambia su precio.
- Consultar tu saldo con
GET https://llmwebsearch.com/api/v1/creditses gratis.
Los créditos de búsqueda no caducan: lo que no uses este mes seguirá ahí el año que viene.
¿Qué pasa cuando un sitio no quiere que lo lean?
El resultado aparece igualmente, con su título, URL y snippet, pero sin el contenido de la página. Nuestro lector respeta robots.txt: se identifica como LLMWebSearch, sigue las reglas que un sitio escribe para él o para todos los robots, y deja fuera el contenido de cualquier página que no tenga permitido leer. Un sitio que establece Content-Signal: ai-input=no en su robots.txt mantiene las páginas de su sitio fuera del contenido de tus resultados.
Cuando un sitio responde a nuestro lector con un rechazo, el resultado lleva content_status: "target_refused" y el propio estado HTTP del sitio en target_status. Cuando un sitio rechaza a nuestro lector, el resultado vuelve sin contenido y con el estado del sitio: nunca resolvemos CAPTCHAs, iniciamos sesión en cuentas ni sorteamos un bloqueo o un paywall. La página de errores enumera todos los estados y los que merece la pena reintentar.
¿A dónde voy ahora?
- Endpoint de búsqueda Todos los parámetros de /search, con ejemplos
- Endpoint de extracción Lee de 1 a 20 URLs que ya tengas
- Formato de respuesta Cada campo y cada content_status
- Errores Errores HTTP, estados de página, reglas de reintento
- Python requests, httpx async, una respuesta con citas
- Node.js fetch, un pool pequeño, el mismo bucle de citas
- curl y jq Recetas para la terminal
- Servidor MCP search_web para Claude Code y Claude Desktop
- LangChain y LlamaIndex Una herramienta y un retriever
- Function calling de OpenAI Esquema de la herramienta, bucle y Agents SDK
- n8n Herramienta HTTP Request para un agente de IA
- OpenClaw Nuestra búsqueda a través de MCP
Inicio rápido: preguntas habituales
¿Necesito un SDK?
No. LLMWebSearch es una API HTTPS simple, así que funciona con cualquier cliente HTTP. Esta documentación incluye código para copiar y pegar en Python, Node.js y curl, y definiciones de herramientas para MCP, LangChain, LlamaIndex, OpenAI function calling, n8n y OpenClaw. No publicamos ningún paquete.
¿La API me escribe la respuesta?
No. La API devuelve fuentes, no una respuesta redactada: tu propio modelo lee las páginas, escribe la respuesta y cita las URL. Así puedes elegir libremente el modelo, el prompt y el estilo de las citas.
¿Puedo poner la clave en la URL?
Sí, como el parámetro de consulta api_key de GET /search. La cabecera Authorization es la opción más segura, porque las URL acaban en los logs y en el historial de la shell. Crea una clave API por agente, app o compañero de equipo y revoca cualquiera de ellas desde el panel sin tocar las demás.
¿Hay algún plan gratuito para probarlo?
No. No hay plan gratuito: el pack de 5.000 búsquedas es la forma de probarlo, comprado desde la recarga mínima; lo que hayas añadido solo para alcanzar ese mínimo se devuelve a petición en un plazo de 30 días, en USDT o USDC, siempre que no se haya gastado.