クイック回答
コマンドラインからWeb検索APIを使うには?
curl -dを含むJSONボディをhttps://llmwebsearch.com/api/v1/searchに送り、Authorization: BearerヘッダーにAPIキーを入れ、応答をjqにパイプします。LLMWebSearchは上位3ページをMarkdownとして含むランキング結果を返すので、1行でソースを一覧表示したりページをファイルに保存したりできます。検索1回で1クレジット、2026年10月時点で$1.20/1K検索から。KYC不要、暗号資産で支払い。
ターミナルの初期設定を一度だけ行うには?
シェルでAPIキーをexportしておけば、入力するコマンドや履歴に残りません。以下のレシピはこれを$LLMWEBSEARCH_API_KEYとして読み込みます。またjqも必要で、ほとんどのパッケージマネージャーはその名前でインストールします。
すべてのレシピはbashやzshなどのPOSIXシェルを前提としています。WindowsではGit BashまたはWSLでそのまま実行できます。
export LLMWEBSEARCH_API_KEY="your-key"
curl -s "https://llmwebsearch.com/api/v1/credits" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" | jq .検索のソースを一覧表示するには?
readを0に設定して検索を実行し、結果ごとに1行で出力します:順位、ホスト、URL。これは1クレジットで、ある質問がどんなソースを引き出すかを一瞬で確認できます。エージェントが使う前に検索クエリの文言を調整するのに適した方法です。
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)"'読み取ったページを保存するには?
content_statusがokの結果だけを残し、各contentを個別のファイルに書き込みます。以下のレシピは01.md、02.mdなどを保存し、それぞれのファイルはソースURLで始まります。jqが結果を選択し、シェルのループがファイルを書き込みます。
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 ./*.mdいくつかのサイトからニュースを検索するには?
ボディにtopic、time_range、include_domainsを追加します。このレシピは過去1週間のニュースを2つのドメインから取得し、各タイトルの横に日付を表示します。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)"'GET形式を使うには?
curl -Gに--data-urlencodeを付けて検索クエリを指定すると、スペースや記号が自動でエンコードされます。include_domainsのようなリストはカンマ区切りの1つの値になります。GETは簡単なテストに便利ですが、大きくなるスクリプトは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'すでに持っているURLを読み取るには?
1〜20個のアドレスのJSON配列として/extractにPOSTします。URLをすでに持っているページを読む場合は、コンテンツ付きで返される3ページごとの開始グループにつき1クレジットで、1回の呼び出しにつき最大20 URLです。拒否されたURLや失敗したURLはカウントされません。このレシピは各URLをステータスと単語数とともに出力するので、サイトがどのページの読み取りを許可したかが一目でわかります。
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)")'呼び出しが失敗したとき、エラーをどうやって確認しますか?
HTTPステータスを-wで出力し、本文も保持してください。エラーはcodeとmessageを含むJSONで返ります。スクリプト側ではステータスで分岐でき、たとえば429、502、504のときだけ待機してリトライします。これらのエラーはいずれもクレジットを消費しません。
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: よくある質問
なぜJSON本文がinvalid_parameterで失敗するのですか?
多くの場合はクォートの問題です。bashでは本文をシングルクォートで囲み、中のダブルクォートをそのまま保ち、送信前にecho '…' | jq .で確認してください。
キーをURLで渡せますか?
はい、GET形式で-d api_key=…を使えば可能です。ただしシェルの履歴やproxyのログにURLが記録されるため、ヘッダーのほうが安全です。
失敗したcurl呼び出しでクレジットは消費されますか?
いいえ。HTTPエラーはクレジットを消費しません。課金されるのは結果を返した検索のみで、credits_usedが示すとおりです。