API

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

GET /api/v1/search
curl "https://tutusoo.com/api/v1/search?q=rust&limit=5"

Parámetros de consulta

ParámetroTipoDescripción
q*stringConsulta de búsqueda (obligatorio); varias palabras usan AND por defecto (todas deben coincidir)
limitintNúmero de resultados, por defecto 10, máx. 100
offsetintDesplazamiento de paginación, por defecto 0, máx. 990
langstringFiltro de idioma, p. ej. zh / en
time_rangestringRango de tiempo indexado: 1d/7d/30d/1y/all (por crawled_at)
sitestringRestringir a un dominio de sitio
lang_prioritystringPrioridad 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:domainRestringir a un sitio, p. ej. site:github.com rust
intitle:wordCoincide solo con títulos que contengan la palabra
"exact phrase"Cada palabra de la frase debe aparecer
-excludeExcluir resultados con la palabra, p. ej. rust -tutorial
A OR BCoincide con cualquiera, p. ej. rust OR golang
filetype:typeFiltrar 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)

GET /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.