API de recherche pour l’IA
Une requête HTTP renvoie des résultats structurés — récupération web en temps réel pour applis d’IA, RAG et agents. Une alternative à Firecrawl · Exa · Tavily.
Démarrage rapide
/api/v1/searchcurl "https://tutusoo.com/api/v1/search?q=rust&limit=5"Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
| q* | string | Requête de recherche (obligatoire) ; plusieurs mots utilisent AND par défaut (tous doivent correspondre) |
| limit | int | Nombre de résultats, défaut 10, max 100 |
| offset | int | Décalage de pagination, défaut 0, max 990 |
| lang | string | Filtre de langue, p. ex. zh / en |
| time_range | string | Plage de temps indexé : 1d/7d/30d/1y/all (par crawled_at) |
| site | string | Restreindre à un domaine de site |
| lang_priority | string | Priorité de langue (boost léger, pas un filtre strict) : p. ex. zh remonte les résultats de la langue correspondante sans cacher les autres ; indépendant de lang |
Opérateurs de requête (à écrire dans q)
| site:domain | Restreindre à un site, p. ex. site:github.com rust |
| intitle:word | Ne correspond qu’aux titres contenant le mot |
| "exact phrase" | Chaque mot de la phrase doit apparaître |
| -exclude | Exclure les résultats contenant le mot, p. ex. rust -tutorial |
| A OR B | Correspond à l’un ou l’autre, p. ex. rust OR golang |
| filetype:type | Filtrer par type de fichier (pdf/doc/ppt/xls), p. ex. filetype:pdf |
Réponse
{
"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 : nom affiché ; peut être omis — repli sur domain. source : local = notre index / brave = repli web quand les résultats locaux sont insuffisants. has_llms_txt : si le site cible fournit un llms.txt (compatible IA).
Récupérer le texte complet (RAG)
/api/v1/content/{id}Quand un résultat a source=local et un id non vide, récupérez son texte complet pour un LLM. Les résultats de repli externe n’ont pas de corps local et ne peuvent pas utiliser ce point d’accès.
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
}Accès et limites de débit
Les points de terminaison publics de recherche et de contenu ne nécessitent ni connexion ni clé d’API — essayez-les directement ; la couche publique applique une limitation de débit équitable par IP client et renvoie 429 en cas de dépassement. Les clés d’API dédiées sont fournies par l’opérateur pour les intégrations confirmées ; ce site n’affiche pas d’inscription en libre-service qui n’existe pas.
Les réponses avec clé dédiée renvoient X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset. En cas de 429, patientez selon les indications de la réponse — ne réessayez pas immédiatement sans limite.


















