快速回答
SerpCrypto SERP API 响应包含什么?
每个 SerpCrypto 响应是一个 JSON 对象:search_metadata(状态、引擎、已用积分)、search_parameters(应用的设置)、search_information,然后结果页的每个部分一个区块,比如 organic_results、ai_overview、people_also_ask 或 local_results。没有的部分就直接缺失。一页 1 个积分,低至 US$0.30/千次搜索;加密货币支付,无需 KYC。
完整的 Google 响应长什么样?
下面的示例是英国的一次 standing desk Google 搜索,每个数组只保留一项。真实响应大约有十条 organic 结果,外加该查询、地点和设备下页面显示的所有其他区块。
{
"search_metadata": {
"id": "srch_2b81d0c6fa47",
"status": "success",
"engine": "google",
"created_at": "2026-10-22T10:02:31Z",
"credits_used": 1
},
"search_parameters": {
"engine": "google",
"q": "standing desk",
"gl": "gb",
"hl": "en",
"google_domain": "google.co.uk",
"device": "desktop",
"page": 1
},
"search_information": { "total_results": 52400000, "query_displayed": "standing desk" },
"ai_overview": {
"text": "A standing desk lets you work while standing or sitting…",
"references": [
{ "index": 1, "title": "How to choose a standing desk", "link": "https://www.example.co.uk/guide", "source": "Example Guide" }
]
},
"ads": [
{ "position": 1, "block": "top", "title": "Electric Standing Desks", "link": "https://shop.example.com/desks", "displayed_link": "shop.example.com", "description": "Free delivery on…" }
],
"organic_results": [
{
"position": 1,
"title": "Best standing desks 2026, tested",
"link": "https://www.example.co.uk/best-standing-desks",
"displayed_link": "www.example.co.uk › reviews",
"snippet": "We tested 14 electric and manual desks…",
"date": "12 Oct 2026",
"sitelinks": [ { "title": "Budget picks", "link": "https://www.example.co.uk/best-standing-desks#budget" } ]
}
],
"people_also_ask": [
{ "question": "Is it healthy to stand all day at a desk?", "snippet": "…", "title": "Standing at work", "link": "https://www.example.org/standing" }
],
"shopping_results": [
{ "position": 1, "title": "Example Desk Pro 140 cm", "price": "£299.00", "source": "Example Store", "link": "https://shop.example.com/desk-pro" }
],
"related_searches": [ { "query": "standing desk electric" }, { "query": "standing desk converter" } ],
"pagination": { "current": 1, "next_page": 2 }
}为什么我的响应里少了一些区块?
因为结果页没有显示它们。Google 会按查询、地点和设备决定是否显示 ads、AI Overview、local pack 或 top stories。SerpCrypto 返回页面显示的内容,其余留空,而不是发送空占位符。
读取每个区块时都给一个默认值,如下面的 Python 代码。区块内部同理:date 或 sitelinks 这类可选字段只出现在有这些字段的结果上。
data = response.json()
# A block is present only when the results page shows it: read with a default.
overview = data.get("ai_overview") or {}
organic = data.get("organic_results", [])
questions = [item["question"] for item in data.get("people_also_ask", [])]
if overview:
print("AI Overview sources:", [ref["link"] for ref in overview.get("references", [])])
print(len(organic), "organic results,", len(questions), "questions")search_metadata 里有什么?
| 字段 | 类型 | 描述 |
|---|---|---|
id | string | 本次搜索的标识符。联系支持时请附上它。 |
status | string | 200 响应中的 success。 |
engine | string | 执行本次搜索的引擎。 |
created_at | string | 搜索时间,ISO 8601,UTC。 |
credits_used | integer | 本次搜索消耗的积分:成功时为 1。 |
search_parameters 和 search_information 是什么?
将 search_parameters 与你的结果一起存储:它精确记录了某条排名来自哪个国家、语言、地点和设备。
| 字段 | 类型 | 描述 |
|---|---|---|
search_parameters | object | 实际应用的参数(已补全默认值):engine、q、gl、hl、location、google_domain、device、page 以及你发送的其他参数。 |
search_information.total_results | integer | 引擎显示的结果数量(仅在显示时返回)。这是估算值,并非精确数字。 |
search_information.query_displayed | string | 结果页面显示的查询词。 |
organic_results 有哪些字段?
自然结果是未付费的网页结果。在 Bing 上,organic_results 的结构相同。
| 字段 | 类型 | 描述 |
|---|---|---|
position | integer | 该结果在本页此区块中的顺序,从 1 开始。 |
title | string | 蓝色链接标题。 |
link | string | 结果的 URL。 |
displayed_link | string | 标题下方显示的 URL 或面包屑导航。 |
snippet | string | 标题下方显示的文本。 |
date | string | 摘要旁显示的日期,与页面上所写一致。可选。 |
sitelinks | array | 结果下方显示的附加链接,每项包含 title 和 link。可选。 |
AI Overview 是如何返回的?
仅当 Google 对该查询和地点显示 AI Overview 时才会出现 ai_overview。许多查询没有 AI Overview。
| 字段 | 类型 | 描述 |
|---|---|---|
ai_overview.text | string | 页面上显示的 AI Overview 文本。 |
ai_overview.references[].index | integer | 该来源在概览中的顺序。 |
ai_overview.references[].title | string | 所引用页面的标题。 |
ai_overview.references[].link | string | 所引用页面的 URL。 |
ai_overview.references[].source | string | 网站名称,与页面上显示一致。 |
ads 和 people_also_ask 包含什么?
| 字段 | 类型 | 描述 |
|---|---|---|
ads[].position | integer | 在其区块内的顺序。 |
ads[].block | string | 页面的 top 或 bottom。 |
ads[].title、link、displayed_link | string | 广告的标题、落地页 URL 和显示的 URL。 |
ads[].description | string | 广告正文。 |
people_also_ask[].question | string | 显示的问题原文。 |
people_also_ask[].snippet | string | 展开问题时显示的答案文本。 |
people_also_ask[].title、link | string | 答案来源页面的标题和 URL。 |
还可能显示哪些其他 Google 区块?
| 区块 | 字段 | 它是什么 |
|---|---|---|
local_results | position、title、address、rating、reviews、type | 本地 pack:针对带地点意图的查询,在地图上显示的企业信息。 |
knowledge_graph | title、type、description、source.name、source.link | 关于人物、地点、公司或事物的知识面板。 |
top_stories | title、link、source、date | 以轮播形式显示的新闻文章。 |
inline_videos | title、link、source、duration | 显示在网页结果中的视频结果。 |
shopping_results | position、title、price、source、link | 显示在网页结果中的商品列表。 |
related_searches | query | 显示在页面底部的搜索建议。 |
pagination | current、next_page | 当前页码和下一页页码(如有)。 |
其他引擎返回什么?
每种垂直搜索沿用同一套框架,再各自追加自己的数组。在 Google Maps 上,local_results 比网页搜索的本地结果区更丰富。
engine | 主数组 | 字段 |
|---|---|---|
google_news | news_results | position、title、link、source、date、snippet、thumbnail |
google_images | images_results | position、title、original、original_width、original_height、thumbnail、source、link |
google_maps | local_results | position、title、place_id、address、phone、website、rating、reviews、type、hours、gps_coordinates.latitude、gps_coordinates.longitude |
google_shopping | shopping_results | position、title、price、extracted_price、currency、source、link、delivery、rating、reviews |
bing | organic_results、related_searches | 与 Google 自然搜索结果相同的字段 |
价格、评分和日期是什么类型?
只要页面以文本形式书写,这些值就保留页面原来的形式。price 是带货币符号的字符串,例如 £299.00,而 Google Shopping 会追加一个数字类型的 extracted_price,以及作为代码的 currency。rating 是数字,reviews 是整数。date 这类日期保持页面上的写法,例如 12 Oct 2026 或 3 days ago,所以如果需要时间戳,请在你自己的代码里解析。
如何跨多个页面构建整体排名?
把页码与每条结果一起保存。position 给出该结果在其所在页面区块内的顺序,search_parameters.page 告诉你那是第几页。每页约 10 条自然结果,这是 Google 自 2025 年 9 月起不再支持 num=100 后的返回方式;每多一页就多消耗 1 积分。
做排名追踪时,多数团队会为每个关键词、每一天保存 link、position、page、gl、location、device 和 created_at。这样就足以绘制排名走势图,并按地点或设备解释排名变化。完整方法见排名追踪。
响应格式问题
字段命名稳定吗?
在版本 1 内稳定。可能会新增区块或字段,所以请忽略你不认识的键。删除或重命名字段会伴随路径中出现新版本,例如 /api/v2/。
我能拿到页面的原始 HTML 吗?
不能。版本 1 只返回解析后的 JSON。解析出的区块覆盖了大多数工具所需的内容:结果、广告、相关问题、AI Overview、本地结果区和知识面板。
为什么 total_results 与我统计的数量不同?
这是搜索引擎自己给出的估算值,而不是你可以翻页浏览的结果数量。页面远在那个数字之前就结束了;用 pagination.next_page 判断是否还有下一页。
没有自然搜索结果的响应也会扣积分吗?
会,只要搜索成功:空页面也算一次结果。只有出错才免费。1 积分 = 1 次成功的查询请求,可在任意支持的引擎上返回一页结果。失败的请求不计费。