クイック回答
LLMWebSearchの検索エンドポイントはどのようなパラメーターを取りますか?
LLMWebSearchの/searchエンドポイントに必要なのはqだけです。オプションのパラメーターで、返す結果数(max_results)、読み取るページ数(read)、コンテンツの形式と長さ、ニュースかWebか、期間、国と言語、保持または除外するドメインを設定できます。最大3ページの読み取りで1クレジット、2026年10月時点では$1.20/1K検索からです。KYC不要、暗号資産で支払い。
/search at a glance
| メソッド | JSONボディ付きのPOST、または同じ名前をクエリ文字列に指定するGET |
|---|---|
| URL | https://llmwebsearch.com/api/v1/search |
| 必須 | q:1〜400文字。検索演算子は書かれたとおりに渡されます |
| デフォルト | 結果5件、最初の3件を読み取り、Markdownで1ページあたり最大6,000文字 |
| 課金 | 1クレジットで検索1回分です。最大20件のランク付けされた結果を取得でき、上位3ページは本文抽出されてMarkdownで返されます。4〜10ページを読む場合は2クレジットです。エラーで終わった呼び出しは無料です |
| 結果 | 結果は呼び出しの時点で実行されるライブのWeb検索から、検索エンジンがランク付けした順で返されます。古いインデックスから提供されるものはありません |
| フィルター | 結果の国と言語、期間(過去1日、1週間、1か月、1年)、Webまたはニュースの結果、含める/除外するドメインを選択できます |
| ページリーダー | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/) |
Webを検索して上位結果を読み取る(POST)
POST/api/v1/search
ライブのWeb検索を実行し、ランク付けされた結果を返します。最初のread件の結果のページは並列に取得され、その本文がcontentで返されます。例ではAPIキーのローテーション方法を問い合わせており、タイトル、日付、値は例示です。
認証:Authorization: Bearer API_KEYヘッダーにAPIキーを指定します。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
q | string | はい | 検索クエリ、1〜400文字。引用符やsite:などの演算子は書かれたとおりに保持されます。 |
max_results | integer | いいえ | ランク付けされた結果の件数、1〜20。デフォルトは5。 |
read | integer | いいえ | 最初の結果のうち何件を読み取り、その内容とともに返すか、0〜10。デフォルトは3。4以上の場合、呼び出しは2クレジットになります。 |
format | string | いいえ | markdown(デフォルト)、またはページ内容にtext。 |
max_chars | integer | いいえ | 各ページの内容の長さ上限で、500〜50,000文字。デフォルトは6,000。 |
topic | string | いいえ | web(デフォルト)、またはnews。 |
time_range | string | いいえ | day、week、month、year。デフォルトなし:任意の日付。 |
country | string | いいえ | 検索を実行する国を指定する2文字の国コード(ISO 3166-1 alpha-2)。デフォルトはus。 |
language | string | いいえ | 結果の言語(en、de、pt-BRなど)。デフォルトはen。 |
include_domains | string[] | いいえ | 最大20ドメイン。これらのドメインとそのサブドメインの結果のみが保持されます。 |
exclude_domains | string[] | いいえ | 結果を除外するドメイン、最大20件。 |
{
"q": "how to rotate api keys without downtime",
"max_results": 5,
"read": 3,
"max_chars": 6000
}{
"q": "open source license change",
"topic": "news",
"time_range": "week",
"include_domains": [
"news.example.com",
"example.org"
],
"read": 0
}レスポンス 200
{
"query": "how to rotate api keys without downtime",
"created_at": "2026-10-22T10:15:04Z",
"credits_used": 1,
"results": [
{
"position": 1,
"title": "Rotating API keys",
"url": "https://docs.example.com/security/key-rotation",
"host": "docs.example.com",
"snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
"published_at": "2026-09-30",
"content_status": "ok",
"content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
"word_count": 948
},
{
"position": 2,
"title": "Key rotation checklist",
"url": "https://blog.example.org/key-rotation-checklist",
"host": "blog.example.org",
"snippet": "Keep two keys active during the switch and alert on the old one.",
"content_status": "blocked_by_robots"
},
{
"position": 3,
"title": "Secrets management basics",
"url": "https://security.example.net/secrets-basics",
"host": "security.example.net",
"snippet": "Never commit keys to a repository.",
"published_at": "2026-06-12",
"content_status": "ok",
"content": "# Secrets management basics\n\n**Never** commit keys to a repository...",
"word_count": 1310
},
{
"position": 4,
"title": "API key best practices",
"url": "https://dev.example.com/api-key-best-practices",
"host": "dev.example.com",
"snippet": "Scope each key to one service and one environment.",
"content_status": "not_requested"
}
]
}コード例
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()
for r in resp.json()["results"]:
print(r["position"], r["content_status"], r["url"])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 { results } = await res.json();
for (const r of results) console.log(r.position, r.content_status, r.url);Webを検索(GET)
GET/api/v1/search
パラメーターをクエリ文字列にURLエンコードして指定する同じ検索です。include_domainsなどのリストはカンマ区切りの1つの値として記述します。簡単なテストや、GETリクエストしか送信しないツールに便利です。例では結果のみ(read=0)を要求しています。
認証:Authorization: Bearer API_KEYヘッダーにAPIキーを指定します。
パラメータ
| 名前 | 場所 | 型 | 必須 | 説明 |
|---|---|---|---|---|
q | query | string | はい | 検索クエリ。URLエンコード済み、1〜400文字。 |
max_results | query | integer | いいえ | 1〜20。デフォルトは5。 |
read | query | integer | いいえ | 0〜10。デフォルトは3。4以上は2クレジットかかります。 |
format | query | string | いいえ | markdown (デフォルト) または text。 |
max_chars | query | integer | いいえ | 1ページあたり500〜50,000。デフォルトは6,000。 |
topic | query | string | いいえ | web(デフォルト)、またはnews。 |
time_range | query | string | いいえ | day、week、month、またはyear。 |
country | query | string | いいえ | ISO 3166-1 alpha-2コード。デフォルトはus。 |
language | query | string | いいえ | 言語コード。デフォルトはen。 |
include_domains | query | string | いいえ | カンマ区切りのリスト。最大20ドメイン。 |
exclude_domains | query | string | いいえ | カンマ区切りのリスト。最大20ドメイン。 |
api_key | query | string | いいえ | Authorizationヘッダーを送らない場合に使うあなたのAPIキー。 |
レスポンス 200
{
"query": "postgres connection pooling",
"created_at": "2026-10-22T10:21:47Z",
"credits_used": 1,
"results": [
{
"position": 1,
"title": "Connection pooling explained",
"url": "https://docs.example.com/db/pooling",
"host": "docs.example.com",
"snippet": "A pool keeps a few database connections open and lends them to requests.",
"content_status": "not_requested"
},
{
"position": 2,
"title": "Sizing a connection pool",
"url": "https://blog.example.org/pool-size",
"host": "blog.example.org",
"snippet": "Start small: the right size depends on cores and disk, not on traffic.",
"published_at": "2026-03-04",
"content_status": "not_requested"
}
]
}コード例
curl -sG "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
--data-urlencode "q=postgres connection pooling" \
-d max_results=10 -d read=0import os
import requests
resp = requests.get(
"https://llmwebsearch.com/api/v1/search",
headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
params={"q": "postgres connection pooling", "max_results": 10, "read": 0},
timeout=60,
)
print([r["url"] for r in resp.json()["results"]])const params = new URLSearchParams({ q: 'postgres connection pooling', max_results: '10', read: '0' });
const res = await fetch(`https://llmwebsearch.com/api/v1/search?${params}`, {
headers: { Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}` },
});
console.log((await res.json()).results.map((r) => r.url));ページ本文を含めずに結果を取得するには?
readを0に設定します。すると各結果はタイトル、URL、ホスト、スニペット、日付、そしてcontent_status: "not_requested"を付けて返ります。レスポンスはずっと小さくなり、エージェントがどのリンクが重要かを選ぶだけでよい場合に役立ちます。
料金は1クレジットのままで、最大3ページを読む場合と同じです。よくあるパターンは、read=0検索で候補を絞り込み、モデルが選んだ2〜3個のURLに対して本文抽出を呼び出すことです。
検索が2クレジットになるのはいつ?
readが4〜10のときです。より多くのページを読むとこちらの処理が増えるため、料金は一度だけ倍になり、最大10ページまで2クレジットのままです。
各レスポンスのcredits_usedに、その呼び出しのコストが表示されます。robots.txtのルールや拒否により読み取れなかったページがあっても、その料金が下がることも上がることもありません。通常は数ページの全文だけが必要なら、readを3のままにして、まれな追加ページには/extractを呼び出してください。
最近のニュースを検索するには?
topic: "news"とtime_rangeを送ります。すると結果はニュース記事から返り、time_rangeで過去day、week、month、またはyearのものだけに絞り込めます。記事または検索結果に日付があれば、published_atが入ります。
同じ鮮度フィルターはtopic: "web"でも機能します。最近のリリースや価格変更など、古いページだとモデルを誤らせるような質問に役立ちます。
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "database release security fix", "topic": "news", "time_range": "week", "read": 3}'結果を特定のサイトに限定するには?
include_domainsにリストします。最大20件まで。ホストがそのドメイン、またはそのサブドメインのいずれかである結果だけが保持されます。example.comはdocs.example.comにも一致します。逆の用途にはexclude_domainsを使い、たとえば結果から自分のサイトを除外できます。
POSTのボディでは、どちらのフィールドもJSON配列です。GETリクエストでは、カンマ区切りの1つの値として書きます。検索クエリ自体にsite:演算子を含めることもでき、そのまま検索に渡されます。
国と言語は何を変える?
countryは検索を実行する場所を設定し、us、de、brなどの2文字コードを使います。ランキングは国によって異なり、特に地域のサービス、価格、規制で差が出ます。languageは結果の言語を設定し、en、fr、pt-BRなどを指定します。
どちらもデフォルトはアメリカ合衆国と英語です。エージェントが1つの市場のユーザー向けに動く場合は、両方を一緒に設定してください。税のルールについて質問するドイツのユーザーには、country: "de"とlanguage: "de"が適しています。
返ってくるページ本文の量は?
1ページあたり最大max_chars文字で、デフォルトは6,000、500〜50,000の範囲です。この上限はモデルのコンテキストウィンドウを守ります。6,000文字で3ページなら、おおよそ英語で4,500トークンです。
word_countは切り詰める前の抽出テキスト全体を数えるので、ページが切り詰められたかどうかが分かります。1つの長い文書が必要な回答では、まず低い上限で検索し、そのページだけをより高い上限で/extract経由で取得してください。遅いページを無期限に待つことはありません。15秒経過すると、本文なしでfetch_timeoutとして返ります。
検索エンドポイント:よくある質問
POSTとGETのどちらを使うべき?
コードではPOSTを使ってください。JSON配列や長いクエリはボディの方が簡単です。GETはターミナルでの簡単なテストや、クエリ文字列しか送れないツールに適しています。どちらも同じレスポンスを返し、料金も同じです。
20件を超える結果を要求できますか?
いいえ。1回の呼び出しで最大20件です。エージェントがそれ以上を必要とすることはほとんどありません。言い換えたクエリで再検索する方が、長いリストよりも良い情報源を得られるのが普通です。
ページは順番に読み取られますか?
いいえ、並列です。15秒以内に応答しないページは、fetch_timeoutとして本文なしで返るので、1つの遅いサイトがレスポンス全体を止めることはありません。
どの検索エンジンが結果を生成しますか?
結果は呼び出しの時点で実行されるライブのWeb検索から、検索エンジンがランク付けした順で返されます。古いインデックスから提供されるものはありませんです。検索を実行する上流プロバイダーは公開していません。