KYC不要 — 身分証、自撮り、書類は不要です。暗号資産で支払い: BTC, USDT, USDC, ETH, SOL, LTC
言語: 日本語
APIキーを取得

Docs · curl · jq · PowerShell

curlとjqで使うSERP API:1行レシピ

APIが何を返すかを確認する最速の方法はターミナルです。これらのレシピはそれぞれ1種類だけを出力します:リンク、質問、ソース、またはローカルビジネスです。bashとzshで動作します。PowerShell版はページの最後にあります。

最終更新:

簡潔な回答

curlでSERP APIにクエリを送るにはどうすればよいですか?

curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query"を実行し、JSONをjqにパイプします。SerpCryptoでは、成功した検索1回につき1クレジット($0.30/1K検索から)、エラーは無料です。-Gはデータフラグをクエリ文字列に変換します。クレジットは暗号資産で支払い、KYC不要です。

ここで重要なcurlフラグはどれですか?

キーはシェルごとに一度export SERPCRYPTO_API_KEY=…で設定します。jqが無い場合はパッケージマネージャーからインストールしてください。

フラグ理由
-sサイレント:JSONにプログレスバーが混ざらないようにします。
-G-dと--data-urlencodeの値をGETリクエストのクエリ文字列として送信します。
--data-urlencodeqとlocationのスペース、引用符、アクセント文字をエンコードします。
-H "Authorization: Bearer …"あなたのAPIキー。環境変数に保管してください。
-w '%{http_code}'HTTPステータスを出力します。呼び出しが失敗したときに便利です。

キーワードの上位10件のリンクを出力するにはどうすればいいですか?

オーガニック結果を取得し、jqで各結果の順位とリンクをタブ区切りで出力します。[]?形式では、ブロックが存在しない場合に失敗せず何も出力しないため、特殊なページでもスクリプトが静かに動作します。

上位10件のリンク
# Top 10 organic links, one per line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=kubernetes cost monitoring" -d gl=us -d hl=en \
  | jq -r '.organic_results[]? | "\(.position)\t\(.link)"'

People Also Askの質問を一覧表示するにはどうすればいいですか?

people_also_ask[].questionを読み取ります。質問はhlの言語に従い、glの国によって変わります。そのため、執筆対象の各市場で同じ検索クエリを実行してください。コンテンツチームはこのリストをそのままブリーフに貼り付けます。

People Also Ask
# People Also Ask questions, ready for a content brief
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=how to brew cold brew" -d gl=gb -d hl=en \
  | jq -r '.people_also_ask[]?.question'

AI Overviewが引用しているソースを確認するにはどうすればいいですか?

ai_overview.referencesを読み取ります。このブロックは、Googleがその検索クエリと地域でAI Overviewを表示する場合にのみ存在するため、それ以外の場合はレシピが明確なメッセージを出力します。これらのソースを継続的に追跡することで、Googleの生成回答で自身のページが引用されているかがわかります。

AI Overviewのソース
# Sources cited by the AI Overview, if the page shows one
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=what is a heat pump" -d gl=us -d hl=en \
  | jq -r 'if .ai_overview then .ai_overview.references[] | "\(.index)\t\(.source)\t\(.link)" else "no AI Overview for this query" end'

ローカルパックとMapsのリストを取得するにはどうすればいいですか?

locationを使ったWeb検索は、検索結果ページに表示されるローカルパック(通常は数件のビジネス)を返します。engine=google_mapsは、住所・評価・レビュー数を含むより長いMapsのリストを返し、@tsvがそれをスプレッドシート用の行に変換します。どちらも1クレジットです。

ローカルパック、次にGoogle Maps
# Local pack in a city, then the full Maps list for the same query
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=vegan restaurant" \
  --data-urlencode "location=Toronto, Ontario, Canada" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | "\(.position)\t\(.title)\t\(.rating // "-")"'

curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  -d engine=google_maps --data-urlencode "q=vegan restaurant Toronto" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | [.title, .address, .rating, .reviews] | @tsv'

呼び出しが失敗したときにエラーを確認するにはどうすればいいですか?

-w '\nHTTP %{http_code}\n'を追加すると、ボディの後にステータスを出力します。エラーボディはcodeとmessageを含む小さなJSONです。エラーページに6つのコードがすべて記載されています。2番目のコマンドはクレジットを読み取るもので、無料です。

ステータスコードとクレジット
# Print the body, then the HTTP status on its own line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=test" -w '\nHTTP %{http_code}\n'

# Credits left (free call)
curl -s "https://serpcrypto.com/api/v1/credits" -H "Authorization: Bearer $SERPCRYPTO_API_KEY" | jq .

WindowsでのPowerShellの同等の方法は何ですか?

Invoke-RestMethodはリクエストを送信し、JSONをオブジェクトに解析するため、jqは不要です。パラメータは-Bodyのハッシュテーブルとして渡します。GETリクエストの場合、PowerShellがそれらをクエリ文字列にエンコードします。その後Format-Tableが順位、タイトル、リンクを出力します。

PowerShell
# Windows PowerShell 5.1 or PowerShell 7
$headers = @{ Authorization = "Bearer $env:SERPCRYPTO_API_KEY" }
$query = @{ q = "kubernetes cost monitoring"; gl = "us"; hl = "en" }
$data = Invoke-RestMethod -Uri "https://serpcrypto.com/api/v1/search" -Headers $headers -Body $query -Method Get
$data.organic_results | Select-Object position, title, link | Format-Table -AutoSize

curlからコードに移行すべきなのはいつですか?

キーワードのリストでコマンドを繰り返すようになったらすぐです。シェルループは数十件の検索には使えますが、リトライ、並列処理、保存はPythonやNode.jsの方が簡単です。リクエストは同じなので、ここでテストしたレシピはそのまま流用できます。各検索は1クレジットのままで、10,000検索パックでは$0.75/1K検索です。

curlの質問

curlで検索クエリが400エラーを返すのはなぜですか?

通常は、qが-dで送信され、エンコードが必要な文字が含まれているためです。クエリとlocationには--data-urlencode "q=…"を使用してください。gl=usのような単純なコードは-dのままで問題ありません。

完全なJSONをファイルに保存できますか?

はい。jqにパイプする代わりに-o result.jsonを追加します。生の回答を保存しておけば、検索に再度課金することなく後で再解析できます。

Windowsのcurlも同じように動作しますか?

Windows 10と11にはcurl.exeが含まれており、フラグも同じです。cmd.exeではクォートの扱いが異なるため、通常はPowerShellでInvoke-RestMethodを使う方が簡単です。

$0.30/1K検索から · KYC不要

APIキーを取得