Réponse rapide
Comment lancer ma première recherche avec une API de recherche web pour agents IA ?
Envoyez votre question à POST https://llmwebsearch.com/api/v1/search avec votre clé API en tant que token Bearer. LLMWebSearch lance une recherche web en direct et renvoie jusqu’à 20 résultats classés, avec les 3 premières pages lues et renvoyées en Markdown. Un crédit paie tout cet appel, à partir de 1,20 $US/1K requêtes en octobre 2026. Sans KYC ; payez en crypto.
L’API sur une carte
| URL de base | https://llmwebsearch.com/api/v1 |
|---|---|
| Rechercher | POST ou GET https://llmwebsearch.com/api/v1/search |
| Lire des URL que vous possédez déjà | POST https://llmwebsearch.com/api/v1/extract |
| Crédits restants | GET https://llmwebsearch.com/api/v1/credits, sans frais |
| Authentification | Passez votre clé API comme Bearer token dans l'en-tête Authorization, ou comme paramètre de requête api_key |
| Facturation | Un crédit paie une recherche : jusqu'à 20 résultats classés, avec les pages des 3 premiers lues et renvoyées en Markdown. Lire 4 à 10 pages coûte 2 crédits. Un appel qui se termine sur une erreur ne coûte rien |
| Notre lecteur de pages | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/), jeton robots.txt LLMWebSearch |
| Plus petit pack | 5 000 requêtes pour 9,25 $US ; les crédits n'expirent jamais |
Comment obtenir une clé API ?
Il n'y a pas de formulaire d'inscription. Attendre la confirmation de votre recharge par la blockchain est l'étape la plus longue.
Alimenter votre solde en crypto
Envoyez au moins 25 $US en BTC, USDT, USDC, ETH, SOL, LTC. Connectez-vous avec un numéro de compte ; une adresse e-mail est facultative.
Acheter un pack de requêtes
5 000 requêtes pour 9,25 $US suffit largement pour intégrer la recherche dans un agent et essayer toutes les options.
Copier la clé
Une fois votre recharge en crypto confirmée et un pack acheté, votre clé API vous attend dans le dashboard. Conservez-la dans une variable d'environnement appelée
LLMWEBSEARCH_API_KEY.
À quoi ressemble la première requête ?
C'est un simple POST HTTPS avec un petit corps JSON. Seul q est obligatoire : la question ou les mots-clés, tels qu'une personne les taperait. Les valeurs par défaut conviennent déjà à la plupart des agents. Vous obtenez 5 résultats classés, et les pages derrière les 3 premiers sont lues et renvoyées en Markdown de 6 000 caractères maximum chacune.
Les trois extraits ci-dessous envoient la même requête. Choisissez celui qui correspond à votre stack, définissez LLMWEBSEARCH_API_KEY dans votre shell, puis exécutez-le.
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3}'import os
import requests
resp = requests.post(
"https://llmwebsearch.com/api/v1/search",
headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
json={"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3},
timeout=60,
)
resp.raise_for_status()
data = resp.json()
print("credits used:", data["credits_used"])
for r in data["results"]:
size = r.get("word_count", 0)
print(r["position"], r["title"], r["url"], r["content_status"], size, "words")
const res = await fetch('https://llmwebsearch.com/api/v1/search', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ q: 'how to rotate api keys without downtime', max_results: 5, read: 3 }),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
const first = data.results.find((r) => r.content_status === 'ok');
console.log(first ? `${first.title}\n${first.url}\n\n${first.content.slice(0, 600)}` : 'No page could be read.');
Que renvoie l'API ?
Un objet JSON avec votre query, l'heure de l'appel en created_at, le prix en credits_used et un tableau results par ordre de pertinence. Chaque résultat a son position, title, url, host et snippet, plus published_at quand la date est connue.
Le champ à surveiller est content_status. Quand il indique ok, la page a été lue et son contenu principal se trouve dans content, avec un word_count. Les résultats au-delà de read indiquent not_requested. Une page qui n'a pas pu être lue indique pourquoi, par exemple blocked_by_robots. La page format de réponse explique chaque champ.
Quels paramètres vais-je modifier le plus souvent ?
Six paramètres couvrent presque tous les agents. Ils sont tous facultatifs.
| Paramètre | Ce qu'il change |
|---|---|
max_results | Le nombre de résultats classés renvoyés, de 1 à 20 |
read | Le nombre de premiers résultats lus, de 0 à 10 |
max_chars | La limite de longueur du contenu de chaque page, de 500 à 50 000 caractères |
topic et time_range | Des actualités au lieu de pages web, et une fenêtre de fraîcheur |
include_domains | Des résultats uniquement issus des sites que vous listez |
country et language | Où et dans quelle langue la requête s'exécute |
La référence search documente chacun avec un exemple, plus format et exclude_domains.
Combien de crédits consomme un appel ?
La plupart des appels en utilisent un. L'ensemble des règles :
- Recherche lisant 0 à 3 pages : 1 crédit. Cela inclut jusqu'à 20 résultats classés.
- Recherche lisant 4 à 10 pages : 2 crédits.
- Extract : Lire des pages dont vous avez déjà les URLs coûte 1 crédit par groupe de 3 pages entamé, renvoyées avec leur contenu, jusqu'à 20 URLs par appel ; les URLs refusées ou en échec ne sont pas comptées.
- Erreurs : 0 crédit. Un paramètre invalide, une mauvaise clé, un solde vide ou une requête échouée ne coûtent rien.
- Une page qui n'a pas pu être lue au sein d'une requête réussie ne change pas son prix.
- Vérifier votre solde avec
GET https://llmwebsearch.com/api/v1/creditsest gratuit.
Les crédits de recherche n'ont pas de date d'expiration : ce que vous n'utilisez pas ce mois-ci est toujours là l'année prochaine.
Que se passe-t-il quand un site ne veut pas être lu ?
Le résultat apparaît quand même, avec son titre, son URL et son snippet, mais sans le contenu de la page. Notre lecteur respecte robots.txt : il s'annonce comme LLMWebSearch, suit les règles qu'un site écrit pour lui ou pour tous les robots, et laisse de côté le contenu de toute page qu'il n'est pas autorisé à lire. Un site qui définit Content-Signal: ai-input=no dans son robots.txt garde ses pages hors du contenu de vos résultats.
Quand un site répond à notre lecteur par un refus, le résultat porte content_status: "target_refused" et le statut HTTP du site dans target_status. Quand un site refuse notre lecteur, le résultat revient sans contenu et avec le statut du site : nous ne résolvons jamais de CAPTCHA, ne nous connectons pas à des comptes et ne contournons ni un blocage ni un paywall. La page des erreurs liste chaque statut et ceux qui méritent une nouvelle tentative.
Où aller ensuite ?
- Endpoint de recherche Chaque paramètre de /search, avec des exemples
- Endpoint d'extraction Lire de 1 à 20 URL que vous possédez déjà
- Format de réponse Chaque champ et chaque content_status
- Erreurs Erreurs HTTP, statuts de page, règles de nouvelle tentative
- Python requests, httpx asynchrone, une réponse avec citations
- Node.js fetch, un petit pool, la même boucle de citations
- curl et jq Recettes pour le terminal
- Serveur MCP search_web pour Claude Code et Claude Desktop
- LangChain et LlamaIndex Un outil et un retriever
- OpenAI function calling Schéma d'outil, boucle et Agents SDK
- n8n Outil HTTP Request pour un AI Agent
- OpenClaw Notre recherche via MCP
Démarrage rapide : questions courantes
Ai-je besoin d'un SDK ?
Non. LLMWebSearch est une API HTTPS simple, donc n'importe quel client HTTP fonctionne. Cette documentation fournit du code à copier-coller pour Python, Node.js et curl, ainsi que des définitions d'outils pour MCP, LangChain, LlamaIndex, OpenAI function calling, n8n et OpenClaw. Nous ne publions aucun package.
L'API rédige-t-elle la réponse à ma place ?
Non. L'API renvoie des sources, pas une réponse rédigée : c'est votre propre modèle qui lit les pages, rédige la réponse et cite les URLs. Vous restez libre de choisir le modèle, le prompt et le style de citation.
Puis-je mettre la clé dans l'URL ?
Oui, via le paramètre de requête api_key de GET /search. L'en-tête Authorization est le choix le plus sûr, car les URL finissent dans les logs et l'historique du shell. Créez une clé API par agent, application ou coéquipier et révoquez n'importe laquelle depuis le dashboard sans toucher aux autres.
Existe-t-il un palier gratuit pour l'essayer ?
Non. Il n'y a pas d'offre gratuite : le pack de 5 000 recherches est le moyen de l'essayer, acheté à partir de la recharge minimale ; ce que vous n'avez ajouté que pour atteindre ce minimum vous est rendu sur demande sous 30 jours, en USDT ou USDC, tant qu'il n'est pas dépensé.