簡潔な回答
SerpCryptoの検索エンドポイントはどのパラメータを受け付けますか?
GET https://serpcrypto.com/api/v1/searchは必須パラメータが1つ、qのみで、オプションが9つあります: engine、gl、hl、location、google_domain、device、page、safe、periodです。SerpCryptoはJSONを返し、全6エンジンで検索が成功するごとに1クレジットを消費します。エラーは無料です。パックは10,000検索で$7.50から、暗号資産で支払い、KYC不要です。
認証はどう行いますか?
APIキーは2つの方法のいずれかで送信します。推奨はヘッダーAuthorization: Bearer YOUR_KEYです。もう1つはクエリパラメータapi_key=YOUR_KEYで、ブラウザのタブで手軽に試すときに便利です。
キーが無い、間違っている、または失効している場合は401 invalid_api_keyを返し、料金はかかりません。ダッシュボードからいつでも作成・失効できるAPIキーので、スクリプトやサーバーごとに専用のAPIキーを発行し、他に影響を与えずに1つだけ失効させられます。
検索を実行
GET/api/v1/search
選択したエンジンで1回検索し、結果ページをJSONで返します。検索が成功すると、どのエンジンでも1クレジットを消費し、エラーはクレジットを消費しません。パラメータはクエリ文字列にURLエンコードして指定します。例はGoogleでテキサス州オースティンのコーヒー焙煎店を検索するもので、ID、件数、結果は説明用の例です。
認証: Authorization: Bearer API_KEYヘッダーのAPIキー。
パラメータ
| 名前 | 場所 | 型 | 必須 | 説明 |
|---|---|---|---|---|
q | query | string | はい | 人が入力するのと同じ形式の検索クエリ。引用符やsite:などの検索演算子はクエリの一部です。 |
engine | query | string | いいえ | google(デフォルト)、google_news、google_images、google_maps、google_shopping、またはbing。 |
gl | query | string | いいえ | 結果の国: us、de、brなどの小文字のISO 3166-1 alpha-2コード。デフォルトはus。 |
hl | query | string | いいえ | インターフェース言語: en、de、pt-BRなど。デフォルトはen。 |
location | query | string | いいえ | 都市レベルの地名で、City, Region, Countryの形式で記述します(例: Austin, Texas, United States)。ロケーションをご覧ください。 |
google_domain | query | string | いいえ | 検索するGoogleドメイン(例: google.de)。デフォルト: glの国のドメイン。engine=bingの場合は無視されます。 |
device | query | string | いいえ | desktop(デフォルト)またはmobile。 |
page | query | integer | いいえ | 結果ページは1(デフォルト)から10まで。各ページは個別の検索として扱われ、1クレジットを消費します。 |
safe | query | string | いいえ | activeは露骨な結果をフィルタリングします。off(デフォルト)はフィルタリングしません。 |
period | query | string | いいえ | 過去1時間(h)、1日(d)、1週間(w)、1か月(m)、1年(y)以内の結果のみ。 |
api_key | query | string | いいえ | Authorizationヘッダーを送信しない場合に使用するAPIキー。 |
レスポンス 200
{
"search_metadata": {
"id": "srch_7f3a9c2e41b8",
"status": "success",
"engine": "google",
"created_at": "2026-10-22T09:14:05Z",
"credits_used": 1
},
"search_parameters": {
"engine": "google",
"q": "coffee roasters",
"gl": "us",
"hl": "en",
"location": "Austin, Texas, United States",
"google_domain": "google.com",
"device": "desktop",
"page": 1
},
"search_information": {
"total_results": 18600000,
"query_displayed": "coffee roasters"
},
"local_results": [
{
"position": 1,
"title": "Example Coffee Roasters",
"address": "123 Example St, Austin, TX",
"rating": 4.7,
"reviews": 312,
"type": "Coffee roasters"
}
],
"organic_results": [
{
"position": 1,
"title": "The 12 best coffee roasters in Austin",
"link": "https://www.example.com/austin/coffee-roasters",
"displayed_link": "www.example.com › austin › coffee",
"snippet": "From light Nordic roasts to dark espresso blends, these local roasters…",
"date": "Sep 30, 2026"
},
{
"position": 2,
"title": "Example Roasting Co. | Fresh beans, roasted in Austin",
"link": "https://www.example.org/",
"displayed_link": "www.example.org",
"snippet": "Small-batch coffee roasted every weekday and shipped the same day…"
}
],
"people_also_ask": [
{
"question": "What is the oldest coffee roaster in Austin?",
"snippet": "…",
"title": "Austin coffee history",
"link": "https://www.example.net/austin-coffee-history"
}
],
"related_searches": [
{
"query": "coffee roasters near me"
},
{
"query": "coffee roasters austin wholesale"
}
],
"pagination": {
"current": 1,
"next_page": 2
}
}コード例
curl -sG "https://serpcrypto.com/api/v1/search" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
--data-urlencode "q=coffee roasters" \
--data-urlencode "location=Austin, Texas, United States" \
-d gl=us -d hl=en -d device=desktopimport os
import requests
r = requests.get(
"https://serpcrypto.com/api/v1/search",
params={
"q": "coffee roasters",
"location": "Austin, Texas, United States",
"gl": "us",
"hl": "en",
},
headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
timeout=60,
)
r.raise_for_status()
print(r.json()["organic_results"][0]["link"])const params = new URLSearchParams({
q: "coffee roasters",
location: "Austin, Texas, United States",
gl: "us",
hl: "en",
});
const res = await fetch("https://serpcrypto.com/api/v1/search?" + params, {
headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const data = await res.json();
console.log(data.organic_results?.[0]?.link);engineにはどのような値があり、それぞれ何を返しますか?
フレーム(search_metadata、search_parameters、search_information)はすべてのengineで共通です。ブロックはページに表示される場合にのみ含まれます。
engine | ソース | 回答内の主なブロック |
|---|---|---|
google | Google検索 | ai_overview、organic_results、ads、people_also_ask、local_results、knowledge_graph、top_stories、inline_videos、shopping_results、related_searches、pagination |
google_news | Googleニュース | news_results: タイトル、リンク、ソース、日付、スニペット、サムネイル |
google_images | Google画像 | images_results: 元のURLとサイズ、サムネイル、ソースページ |
google_maps | Googleマップ | local_results: 名前、住所、電話番号、ウェブサイト、評価、レビュー、カテゴリ、営業時間、座標 |
google_shopping | Googleショッピング | shopping_results: タイトル、価格、抽出価格、通貨、販売店、配送、評価 |
bing | Bing | organic_results、related_searches |
クレジット残高を確認する
GET/api/v1/credits
アカウントの残高に残っているクレジット、UTCの0時以降に使用したクレジット、アカウントが同時に実行できる検索数を返します。この呼び出しは無料です。以下の値は例です。
認証: Authorization: Bearer API_KEYヘッダーのAPIキー。
レスポンス 200
{
"credits_remaining": 84210,
"credits_used_today": 1290,
"concurrency_limit": 10
}コード例
curl -s "https://serpcrypto.com/api/v1/credits" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY"import os
import requests
r = requests.get(
"https://serpcrypto.com/api/v1/credits",
headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
timeout=30,
)
r.raise_for_status()
print(r.json()["credits_remaining"])const res = await fetch("https://serpcrypto.com/api/v1/credits", {
headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const { credits_remaining } = await res.json();
console.log(credits_remaining);APIはどのようなエラーを返しますか?
すべてのエラーにはボディ{"error": {"code": "…", "message": "…"}}が付きます。エラーページで各エラーの説明とリトライコードを確認できます。
| HTTP | code | 発生条件 | 課金 |
|---|---|---|---|
| 400 | invalid_parameter | 必須パラメータが欠けている、または値が許可リスト外 | いいえ |
| 401 | invalid_api_key | APIキーが欠けている、誤っている、または無効化されている | いいえ |
| 402 | insufficient_credits | アカウントのクレジット残高がゼロ | いいえ |
| 429 | concurrency_limit | アカウントで同時に実行中の検索が多すぎる | いいえ |
| 502 | search_failed | このリクエストでengineまたは収集が失敗した。リトライしてください | いいえ |
| 504 | search_timeout | 時間内に応答がない。リトライしてください | いいえ |
正確には何が課金されますか?
- 検索1回の成功 = 1クレジット、すべてのengineで、GoogleマップやGoogleショッピングも含みます。
- 各結果ページは検索1回分です。 1ページあたり約10件のオーガニック結果です。Googleは2025年9月にnum=100を尊重しなくなって以降、この件数を返しています。追加の各ページにはさらに1クレジットが必要です。
- エラーは無料: HTTPステータスが200以外の応答はクレジットを消費しません。
- クレジット残高の確認は無料。
プリペイドの検索クレジットに有効期限はありません。未使用の検索は、使用するまでアカウントに残ります。クレジットパックは$7.50から10,000検索まで、最大のパックでは$0.30/1K検索です。料金をご覧ください。
検索クエリはどのようにエンコードすればよいですか?
他のクエリ文字列の値と同様、qをURLエンコードして送信します。スペースは%20または+になり、アクセント付き文字はUTF-8でエンコードされます。curlでは--data-urlencode、Pythonのrequestsとhttpxではparams=、Node.jsではURLSearchParamsで行えます。
検索クエリは、人が検索ボックスに入力するのとまったく同じように記述します。引用符、マイナス記号、site:はq内にそのまま残します。engineが訪問者に対するのと同じように、それらの適用方法を判断します。
APIにはバージョンがありますか?
はい。バージョンはパスの一部です: /api/v1/。バージョン1の応答に新しいフィールドやブロックが追加されることがあるため、コードは未知のキーを無視するようにしてください。フィールドの削除や名前変更は、v1への変更ではなく、パスに新しいバージョンを付けて行われます。
APIリファレンスに関する質問
JSONボディ付きのPOSTリクエストは送れますか?
バージョン1ではできません。両方のendpointはクエリ文字列にパラメータを付けたGETリクエストを受け付けます。これにより、すべての呼び出しをcurlやブラウザで簡単に再現でき、ボディなしで簡単にログに記録できます。
1回の検索で何件の結果が返りますか?
1ページあたり約10件のオーガニック結果です。Googleは2025年9月にnum=100を尊重しなくなって以降、この件数を返しています。追加の各ページにはさらに1クレジットが必要です件です。30件の結果を集めるには、page=1、page=2、page=3をリクエストします。3回の検索で、3クレジットです。
クレジットがなくなるとどうなりますか?
次の検索は402 insufficient_creditsを返し、クレジットは消費しません。料金ページで残高から別のパックを購入してください。APIキーはそのまま機能し、検索はすぐに再開されます。
同じAPIキーを複数のサーバーから使えますか?
はい。APIキーはIPアドレスに紐づきません。制限されるのは、アカウントで同時に実行される検索数です。GET /creditsのconcurrency_limitがその数値を示します。