API de búsqueda para IA
Una petición HTTP devuelve resultados estructurados — recuperación web en tiempo real para apps de IA, RAG y agentes. Una alternativa a Firecrawl · Exa · Tavily.
Inicio rápido
/api/v1/searchcurl "https://tutusoo.com/api/v1/search?q=rust&limit=5"Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
| q* | string | Consulta de búsqueda (obligatorio); varias palabras usan AND por defecto (todas deben coincidir) |
| limit | int | Número de resultados, por defecto 10, máx. 100 |
| offset | int | Desplazamiento de paginación, por defecto 0, máx. 990 |
| lang | string | Filtro de idioma, p. ej. zh / en |
| time_range | string | Rango de tiempo indexado: 1d/7d/30d/1y/all (por crawled_at) |
| site | string | Restringir a un dominio de sitio |
| lang_priority | string | Prioridad de idioma (impulso suave, no filtro duro): p. ej. zh sube los resultados del idioma coincidente sin ocultar los demás; independiente de lang |
Operadores de consulta (dentro de q)
| site:domain | Restringir a un sitio, p. ej. site:github.com rust |
| intitle:word | Coincide solo con títulos que contengan la palabra |
| "exact phrase" | Cada palabra de la frase debe aparecer |
| -exclude | Excluir resultados con la palabra, p. ej. rust -tutorial |
| A OR B | Coincide con cualquiera, p. ej. rust OR golang |
| filetype:type | Filtrar por tipo de archivo (pdf/doc/ppt/xls), p. ej. filetype:pdf |
Respuesta
{
"total": 586,
"took_ms": 142,
"results": [
{
"id": "a1b2c3d4-…", // page id for local results; may be empty for external fallback
"url": "https://rust-lang.org/",
"title": "Rust Programming Language",
"snippet": "A language empowering everyone to build reliable software…",
"domain": "rust-lang.org",
"site_name": "Rust Programming Language", // display name (optional; client falls back to domain)
"lang": "en",
"score": 12.4,
"source": "local", // local (our index) | brave (web fallback)
"has_llms_txt": true,
"published_at": "2010-01-25T…", // article publish time (nullable; returned when known; RAG freshness/date)
"crawled_at": "2026-07-18T…" // crawl time (freshness; time_range filters on this)
}
]
} site_name: nombre visible; puede omitirse — recae en domain. source: local = nuestro índice / brave = respaldo web cuando los resultados locales no bastan. has_llms_txt: si el sitio destino ofrece un llms.txt (compatible con IA).
Obtener texto completo (RAG)
/api/v1/content/{id}Cuando un resultado tiene source=local y un id no vacío, obtén su texto completo para alimentar un LLM. Los resultados de respaldo externo no tienen cuerpo local y no pueden usar este endpoint.
curl "https://tutusoo.com/api/v1/content/<local_page_id>"
# Response (RAG-relevant fields only, no internal columns):
{
"id": "…",
"url": "https://rust-lang.org/",
"title": "Rust Programming Language",
"body_text": "…full article text…",
"author": "Jane Doe", // author (nullable; RAG citation/byline)
"published_at": "2026-01-…", // original publish time (nullable; freshness)
"lang": "en",
"word_count": 1200,
"crawled_at": "2026-07-18T…",
"has_llms_txt": true
}Acceso y límites de tasa
Los endpoints públicos de búsqueda y contenido no requieren inicio de sesión ni clave de API — pruébalos directamente; la capa pública aplica una limitación de tasa justa por IP de cliente y devuelve 429 cuando se supera. Las claves de API dedicadas las provisiona el operador para integraciones confirmadas; este sitio no muestra un registro de autoservicio que no existe.
Las respuestas con clave dedicada devuelven X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset. Ante un 429, espera según las indicaciones de la respuesta — no reintentes de inmediato sin límite.


















