无需 KYC — 无需 ID、无需自拍、无需文件。使用加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC
语言: 简体中文
获取 API 密钥

文档 · curl · jq · PowerShell

使用 curl 和 jq 的 SERP API:一行配方

查看 API 返回内容最快的方式是终端。这些配方每次只打印一样东西:链接、问题、来源或本地商家。它们在 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 积分,起价 US$0.30/千次搜索,错误免费。-G 将数据标志转换为查询字符串。积分用加密货币支付,无需 KYC。

这里哪些 curl 标志重要?

在每个 shell 里用 export SERPCRYPTO_API_KEY=… 设置一次 API 密钥。如果没有安装 jq,请从你的包管理器安装。

标志原因
-s静默:不与 JSON 混在一起显示进度条。
-G在 GET 请求中将 -d 和 --data-urlencode 的值作为查询字符串发送。
--data-urlencode对 q 和 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 的国家而变化,所以要在你写作的每个市场都跑同一条查询。内容团队会把这份列表直接贴进 brief。

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 时,这个区块才存在,因此该 recipe 在其他情况下会打印一条明确的提示。长期跟踪这些来源,可以判断你的页面是否被 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'

如何获取本地包和 Google Maps 列表?

用 location 做网页搜索会返回结果页上显示的本地包,通常只有几家商户。engine=google_maps 会返回更长的 Google 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' 在响应体之后打印状态码。错误响应体是一个小的 JSON,包含 code 和 message;错误页面 列出了全部六个错误码。第二条命令读取你的积分,不消耗积分。

状态码和积分
# 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 换成代码?

当你用一长串关键词重复执行命令时就可以换了。shell 循环能应付几十次搜索,但重试、并发和存储用 Python 或 Node.js 更省事。请求本身是一样的,所以在这里测试通过的 recipe 可以原样沿用。每次搜索仍然是 1 积分,在 10,000 次搜索 积分包上是 US$0.75/千次搜索。

curl 问题

为什么我的查询在 curl 里返回 400 错误?

通常是因为 q 用 -d 发送,并且包含了需要编码的字符。查询参数和 location 请用 --data-urlencode "q=…";gl=us 这类纯代码可以继续搭配 -d。

可以把完整的 JSON 保存到文件吗?

可以:加上 -o result.json 而不是管道传给 jq。保存原始响应能让你之后重新解析,而不用再次付费搜索。

Windows 上的 curl 工作方式一样吗?

Windows 10 和 11 自带 curl.exe,参数标志也一样。cmd.exe 中的引号处理不同,所以在那边用 PowerShell 搭配 Invoke-RestMethod 通常更简单。

起价 US$0.30/千次搜索 · 无需 KYC

获取 API 密钥