Kurze Antwort
Wie verwende ich eine Web Search API von der Kommandozeile aus?
Senden Sie einen JSON-Body mit curl -d an https://llmwebsearch.com/api/v1/search, Ihren API-Schlüssel in einem Authorization: Bearer-Header, und leiten Sie die Antwort an jq weiter. LLMWebSearch liefert gerankte Ergebnisse mit den besten 3 Seiten als Markdown, sodass eine Zeile Quellen auflisten oder Seiten in Dateien speichern kann. Eine Suchanfrage kostet 1 Credit, ab 1,20 $/1K Suchanfragen Stand Oktober 2026. Ohne KYC; mit Krypto bezahlen.
Wie richte ich das Terminal einmalig ein?
Exportieren Sie Ihren API-Schlüssel in der Shell, damit er weder in den getippten Befehlen noch in Ihrer History landet. Die folgenden Rezepte lesen ihn als $LLMWEBSEARCH_API_KEY. Sie brauchen außerdem jq, das die meisten Paketmanager unter diesem Namen installieren.
Alle Rezepte setzen eine POSIX-Shell wie bash oder zsh voraus. Auf Windows laufen sie unverändert in Git Bash oder WSL.
export LLMWEBSEARCH_API_KEY="your-key"
curl -s "https://llmwebsearch.com/api/v1/credits" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" | jq .Wie liste ich die Quellen einer Suchanfrage auf?
Führen Sie die Suchanfrage mit read auf 0 gesetzt aus und geben Sie pro Ergebnis eine Zeile aus: Position, Host und URL. Das kostet 1 Credit und zeigt Ihnen in einer Sekunde, welche Quellen eine Frage hervorbringt. So können Sie die Formulierung einer Suchanfrage gut abstimmen, bevor ein Agent sie verwendet.
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)"'Wie speichere ich die gelesenen Seiten?
Behalten Sie die Ergebnisse, deren content_status ok ist, und schreiben Sie jede content in ihre eigene Datei. Das folgende Rezept speichert 01.md, 02.md und so weiter, jeweils beginnend mit ihrer Quell-URL. jq wählt die Ergebnisse aus und die Shell-Schleife schreibt die Dateien.
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 ./*.mdWie suche ich News von einigen wenigen Seiten?
Fügen Sie topic, time_range und include_domains zum Body hinzu. Das Rezept behält News der letzten Woche auf zwei Domains und gibt das Datum neben jedem Titel aus, was genügt, um ein Thema über einen Cron-Job zu beobachten.
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)"'Wie verwende ich die GET-Form?
Verwenden Sie curl -G mit --data-urlencode für die Suchanfrage, damit Leerzeichen und Symbole für Sie kodiert werden. Listen wie include_domains werden zu einem kommagetrennten Wert. GET ist praktisch für einen schnellen Test; Skripte, die wachsen, sollten zu POST wechseln.
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'Wie lese ich URLs, die ich bereits habe?
Senden Sie sie als JSON-Array aus 1 bis 20 Adressen an /extract. Das Lesen von Seiten, deren URLs Sie bereits haben, kostet 1 Credit für jede angefangene Gruppe von 3 Seiten, die mit Inhalt zurückgegeben werden, bis zu 20 URLs pro Aufruf; abgelehnte oder fehlgeschlagene URLs werden nicht gezählt. Das Rezept gibt jede URL mit ihrem Status und ihrer Wortzahl aus, was auf einen Blick zeigt, welche Seiten eine Website uns zu lesen erlaubte.
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)")'Wie sehe ich den Fehler, wenn ein Aufruf fehlschlägt?
Geben Sie den HTTP-Status mit -w aus und behalten Sie den Body: Fehler kommen als JSON mit einem code und einem message zurück. Ein Skript kann dann nach dem Status verzweigen, zum Beispiel nur bei 429, 502 oder 504 warten und erneut versuchen. Keiner dieser Fehler verbraucht ein Credit.
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: häufige Fragen
Warum schlägt mein JSON-Body mit invalid_parameter fehl?
Meist ein Quoting-Problem. Setzen Sie den Body in bash in einfache Anführungszeichen, damit die doppelten Anführungszeichen darin erhalten bleiben, und prüfen Sie ihn mit echo '…' | jq ., bevor Sie ihn senden.
Kann ich den API-Schlüssel in der URL übergeben?
Ja, mit -d api_key=… bei der GET-Form. Der Header ist sicherer, weil Shell-History und Proxy-Logs URLs aufzeichnen.
Kostet ein fehlgeschlagener curl-Aufruf ein Credit?
Nein. HTTP-Fehler verbrauchen nie Credits. Nur eine Suchanfrage, die Ergebnisse liefert, wird berechnet, wie credits_used zeigt.