Buscar en un sitio en vivo

Busca en cualquier sitio ahora mismo: su portada, sus secciones y su propio buscador.

POST /v1/search/site busca en un sitio en vivo, no en el índice. Lee primero la portada; si no alcanza, el modelo elige las secciones con más chances de cubrir el tema y prueba el buscador del propio sitio, en paralelo. Las mejores candidatas se leen antes de ordenarlas, como en el modo normal.

Como puede tardar hasta un minuto, devuelve un trabajo. Consúltalo, espéralo con el SDK o recíbelo como flujo de eventos.

Espera el resultado

const res = await ts.siteSearchAndWait('lanacion.com.ar', 'el dólar', { mode: 'normal' });
console.log(res.results.length, res.site);

O maneja el trabajo tú

curl https://api.typesearch.ai/v1/search/site \
  -H "Authorization: Bearer $TYPESEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "site": "lanacion.com.ar", "query": "el dólar" }'
# 202 Accepted · Location: /v1/jobs/job_…

curl https://api.typesearch.ai/v1/jobs/job_… \
  -H "Authorization: Bearer $TYPESEARCH_API_KEY"

Un trabajo pasa de queued a running y a succeeded (con result) o failed (con error). Los trabajos duran un día y sólo los ve la key que los creó.

O recíbelo como flujo

Con stream: true el pedido devuelve Server-Sent Events en vez de un trabajo: pasos, resultados parciales y el resultado final.

for await (const event of ts.siteSearchStream('lanacion.com.ar', 'el dólar')) {
  if (event.type === 'step') console.log(event.step.text);
}

Límites y errores

Sólo leemos el sitio que pides y sus subdominios, con pedidos GET, y nunca intentamos pasar una verificación antibots.

EstadocodeQué significa
400invalid_site, site_not_foundEl sitio no es una dirección pública válida.
403robots_disallowedEl robots.txt del sitio no lo permite o no se pudo leer (lo reintentamos a los 10 minutos).
502site_unreachable, bot_protectionEl sitio no respondió, o respondió con un desafío antibots.
504site_timeoutEl sitio tardó demasiado.

En esta página