API

API di ricerca per l’IA

Una richiesta HTTP restituisce risultati strutturati — recupero web in tempo reale per app di IA, RAG e agenti. Un’alternativa a Firecrawl · Exa · Tavily.

Avvio rapido

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

Parametri di query

ParametroTipoDescrizione
q*stringQuery di ricerca (obbligatorio); più parole in AND per default (devono corrispondere tutte)
limitintNumero di risultati, default 10, max 100
offsetintOffset di paginazione, default 0, max 990
langstringFiltro lingua, es. zh / en
time_rangestringIntervallo tempo indicizzato: 1d/7d/30d/1y/all (per crawled_at)
sitestringLimita a un dominio di sito
lang_prioritystringPriorità lingua (boost soft, non filtro rigido): es. zh spinge in alto i risultati nella lingua corrispondente senza nascondere gli altri; indipendente da lang

Operatori di query (dentro q)

site:domainLimita a un sito, es. site:github.com rust
intitle:wordCorrisponde solo ai titoli contenenti la parola
"exact phrase"Ogni parola della frase deve comparire
-excludeEscludi i risultati con la parola, es. rust -tutorial
A OR BCorrisponde a uno dei termini, es. rust OR golang
filetype:typeFiltra per tipo di file (pdf/doc/ppt/xls), es. filetype:pdf

Risposta

{
  "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: nome visualizzato; può essere omesso — ripiega su domain. source: local = il nostro indice / brave = fallback web quando i risultati locali sono insufficienti. has_llms_txt: se il sito target fornisce un llms.txt (adatto all’IA).

Recupera il testo completo (RAG)

GET /api/v1/content/{id}

Quando un risultato ha source=local e un id non vuoto, recupera il testo completo per un LLM. I risultati di fallback esterno non hanno corpo locale e non possono usare questo 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
}

Accesso e rate limit

Gli endpoint pubblici di ricerca e contenuto non richiedono login né chiave API — provali direttamente; il livello pubblico applica un rate limiting equo per IP client e restituisce 429 al superamento. Le chiavi API dedicate vengono fornite dall’operatore per integrazioni confermate; questo sito non mostra una registrazione self-service che non esiste.

Le risposte con chiave dedicata restituiscono X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. In caso di 429, attendi secondo le indicazioni della risposta — non riprovare subito senza limiti.