Réponse rapide
Comment utiliser une API de recherche web en ligne de commande ?
Envoyez un corps JSON avec curl -d à https://llmwebsearch.com/api/v1/search, votre clé dans un header Authorization: Bearer, et passez la réponse dans jq. LLMWebSearch renvoie des résultats classés avec les 3 premières pages en Markdown, si bien qu'une seule ligne peut lister les sources ou enregistrer les pages dans des fichiers. Une requête coûte 1 crédit, à partir de 1,20 $US/1K requêtes en octobre 2026. Sans KYC ; paiement en crypto.
Comment configurer le terminal une fois pour toutes ?
Exportez votre clé dans le shell, pour qu'elle reste hors des commandes que vous tapez et hors de votre historique. Les recettes ci-dessous la lisent via $LLMWEBSEARCH_API_KEY. Il vous faut aussi jq, que la plupart des gestionnaires de paquets installent sous ce nom.
Toutes les recettes supposent un shell POSIX comme bash ou zsh. Sous Windows, Git Bash ou WSL les exécutent sans modification.
export LLMWEBSEARCH_API_KEY="your-key"
curl -s "https://llmwebsearch.com/api/v1/credits" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" | jq .Comment lister les sources d'une requête ?
Lancez la recherche avec read défini sur 0 et affichez une ligne par résultat : position, hôte et URL. Cela coûte 1 crédit et vous montre, en une seconde, quelles sources une question fait remonter. C'est un bon moyen d'ajuster la formulation d'une requête avant qu'un agent ne l'utilise.
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "postgres connection pool size", "max_results": 10, "read": 0}' \
| jq -r '.results[] | "\(.position)\t\(.host)\t\(.url)"'Comment enregistrer les pages lues ?
Conservez les résultats dont le content_status vaut ok et écrivez chaque content dans son propre fichier. La recette ci-dessous enregistre 01.md, 02.md, etc., chacun commençant par son URL source. jq sélectionne les résultats et la boucle shell écrit les fichiers.
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "postgres connection pool size", "read": 3}' > search.json
jq -r '.results[] | select(.content_status == "ok") | .position' search.json | while read -r pos; do
jq -r --argjson p "$pos" '.results[] | select(.position == $p) | "Source: " + .url + "\n\n" + .content' \
search.json > "$(printf '%02d' "$pos").md"
done
ls -1 ./*.mdComment rechercher des actualités sur quelques sites ?
Ajoutez topic, time_range et include_domains au corps. La recette conserve les actualités de la semaine passée sur deux domaines et affiche la date à côté de chaque titre, de quoi surveiller un sujet depuis un cron job.
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "database security release", "topic": "news", "time_range": "week", "include_domains": ["news.example.com", "example.org"], "read": 0}' \
| jq -r '.results[] | "\(.published_at // "no date") \(.title) \(.url)"'Comment utiliser la forme GET ?
Utilisez curl -G avec --data-urlencode pour la requête, afin que les espaces et les symboles soient encodés pour vous. Les listes comme include_domains deviennent une seule valeur séparée par des virgules. GET est pratique pour un test rapide ; les scripts qui grossissent devraient passer à POST.
curl -sG "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
--data-urlencode "q=pgbouncer transaction mode" \
-d read=1 -d max_chars=3000 -d include_domains=example.com,example.org \
| jq -r '.results[0].content // .results[0].snippet'Comment lire des URL que j'ai déjà ?
Envoyez-les à /extract sous forme de tableau JSON de 1 à 20 adresses. 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. La recette affiche chaque URL avec son statut et son nombre de mots, ce qui montre en un coup d'œil quelles pages un site nous a autorisés à lire.
curl -s "https://llmwebsearch.com/api/v1/extract" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"]}' \
| jq -r '"credits: \(.credits_used)", (.results[] | "\(.content_status)\t\(.word_count // 0)\t\(.url)")'Comment voir l'erreur quand un appel échoue ?
Affichez le statut HTTP avec -w et conservez le corps : les erreurs reviennent en JSON avec un code et un message. Un script peut ensuite brancher sur le statut, par exemple attendre et réessayer uniquement sur 429, 502 ou 504. Aucune de ces erreurs ne consomme de crédit.
status=$(curl -s -o body.json -w '%{http_code}' "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "test query"}')
if [ "$status" != "200" ]; then
echo "HTTP $status: $(jq -r '.error.code + " - " + .error.message' body.json)"
ficurl : questions fréquentes
Pourquoi mon corps JSON échoue-t-il avec invalid_parameter ?
C'est généralement un problème de quoting. Entourez le corps de guillemets simples dans bash pour que les guillemets doubles à l'intérieur restent intacts, et vérifiez-le avec echo '…' | jq . avant l'envoi.
Puis-je passer la clé dans l'URL ?
Oui, avec -d api_key=… sur la forme GET. Le header est plus sûr, car l'historique du shell et les logs de proxy enregistrent les URL.
Un appel curl qui échoue coûte-t-il un crédit ?
Non. Les erreurs HTTP ne consomment jamais de crédits. Seule une requête qui renvoie des résultats est facturée, comme le montre credits_used.