Szybka odpowiedź
Jak używać web search API z wiersza poleceń?
Wyślij ciało JSON z curl -d do https://llmwebsearch.com/api/v1/search, swój klucz w nagłówku Authorization: Bearer, a odpowiedź przekieruj do jq. LLMWebSearch zwraca uszeregowane wyniki z 3 najlepszymi stronami jako Markdown, więc jedna linia może wylistować źródła lub zapisać strony do plików. Wyszukiwanie kosztuje 1 kredyt, od 1,20 USD/1K wyszukiwań według stanu na październik 2026. Bez KYC; płatność kryptowalutą.
Jak skonfigurować terminal raz na zawsze?
Wyeksportuj klucz w powłoce, żeby nie trafiał do wpisywanych poleceń ani do historii. Poniższe przepisy odczytują go jako $LLMWEBSEARCH_API_KEY. Potrzebujesz też jq, który większość menedżerów pakietów instaluje pod tą nazwą.
Wszystkie przepisy zakładają powłokę POSIX, taką jak bash lub zsh. W Windows Git Bash lub WSL uruchamiają je bez zmian.
export LLMWEBSEARCH_API_KEY="your-key"
curl -s "https://llmwebsearch.com/api/v1/credits" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" | jq .Jak wylistować źródła wyszukiwania?
Uruchom wyszukiwanie z read ustawionym na 0 i wypisz jedną linię na wynik: pozycja, host i URL. To kosztuje 1 kredyt i w sekundę pokazuje, jakie źródła wywołuje pytanie. Dobry sposób na dostrojenie sformułowania zapytania, zanim użyje go agent.
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)"'Jak zapisać odczytane strony?
Zatrzymaj wyniki, których content_status to ok, i zapisz każdy content do osobnego pliku. Poniższy przepis zapisuje 01.md, 02.md i tak dalej, każdy zaczynając od URL źródła. jq wybiera wyniki, a pętla powłoki zapisuje pliki.
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 ./*.mdJak wyszukiwać newsy z kilku witryn?
Dodaj topic, time_range i include_domains do ciała zapytania. Przepis zachowuje newsy z ostatniego tygodnia na dwóch domenach i wypisuje datę obok każdego tytułu, co wystarczy, by śledzić temat z zadania cron.
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)"'Jak używać formy GET?
Użyj curl -G z --data-urlencode dla zapytania, żeby spacje i symbole zostały zakodowane za Ciebie. Listy takie jak include_domains stają się jedną wartością rozdzieloną przecinkami. GET jest wygodny do szybkiego testu; skrypty, które rosną, powinny przejść na 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'Jak odczytać URL, które już mam?
Wyślij je do /extract jako tablicę JSON od 1 do 20 adresów. Odczyt stron, których adresy URL już masz, kosztuje 1 kredyt za każdą rozpoczętą grupę 3 stron zwróconych z treścią, do 20 adresów URL na wywołanie; adresy URL odrzucone lub nieudane nie są liczone. Przepis wypisuje każdy URL z jego statusem i liczbą słów, co od razu pokazuje, które strony witryna pozwoliła nam odczytać.
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)")'Jak zobaczyć błąd, gdy wywołanie się nie powiedzie?
Wypisz status HTTP za pomocą -w i zachowaj treść odpowiedzi: błędy wracają jako JSON z code i message. Skrypt może wtedy rozgałęziać się na podstawie statusu, na przykład czekając i ponawiając tylko przy 429, 502 lub 504. Żaden z tych błędów nie zużywa kredytu.
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: najczęstsze pytania
Dlaczego moja treść JSON zwraca błąd invalid_parameter?
Zwykle to problem z cudzysłowami. W bashu obejmij treść pojedynczymi cudzysłowami, żeby cudzysłowy podwójne w środku pozostały nienaruszone, i sprawdź ją za pomocą echo '…' | jq . przed wysłaniem.
Czy mogę przekazać klucz w URL?
Tak, za pomocą -d api_key=… w formie GET. Nagłówek jest bezpieczniejszy, bo historia powłoki i logi proxy zapisują URLe.
Czy nieudane wywołanie curl kosztuje kredyt?
Nie. Błędy HTTP nigdy nie zużywają kredytów. Płatne jest tylko wyszukiwanie, które zwraca wyniki, jak pokazuje credits_used.