主题
Google 热门搜索词(旧版)
接口概述
POST https://api.seermartech.cn/v3/dataforseo_labs/top_google_searches/live
这是 Google 热门搜索词旧版接口,可从数据库中获取大量热门及指标广告竞争度、每次点击费用、搜索量、产品与服务分类、难度、广告展示预估、Bing 搜索数据以及 Google SERP 数据。
> 本页面对应旧版请求与响应结构。新版接口请参考 /v3/dataforseo_labs/google/top_searches/live/。
该接口采用连续分页机制:
- 首次请求提交完整任务参数,例如语言、地区和结果数量。
- 响应中会返回
offset_token。 - 后续请求需提交
offset_token和limit,即可获取下一批结果。 - 每次最多返回 1000 个,可通过连续请求逐批获取更多数据。
平台限流以认证说明中的 30/60/120 次/分钟规则为准。
计费说明
每次请求都会产生费用。参考价约 ¥0.076 / 次,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
响应中的 cost 字段(平台原始 USD 成本兼容字段)表示任务费用,金额以人民币计。广告指标中的 CPC、广告费用等金额字段遵循广告数据的原始币种口径;如需人民币展示,请在业务侧按当前汇率换算。
请求参数
请求体使用 UTF-8 编码的 JSON 数组格式:
json
[
{
"language_name": "English",
"location_code": 2840
}
]任务参数
| 参数 | 类型 | 说明 |
|---|---|---|
location_name | string | 地区完整名称。未指定 location_code 时填。location_name 与 location_code 至少指定一个。示例:United Kingdom。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。 |
location_code | integer | 地区代码。未指定 location_name 时填。location_name 与 location_code 至少指定一个。示例:2840。 |
language_name | string | 语言完整名称。未指定 language_code 时填。language_name 与 language_code 至少指定一个。示例:English。 |
language_code | string | 语言代码。未指定 language_name 时填。language_name 与 language_code 至少指定一个。示例:en。 |
include_serp_info | boolean | 是否为每个返回 Google SERP 数据。设为 true 后,结果中会 serp_info。默认值为 false。 |
filters | array | 结果过滤条件。最多设置 8 个过滤条件,需要使用 and 或 or 连接。支持 <、<=、>、>=、=、<>、in、not_in、like、not_like。like 与 not_like 支持使用 % 匹任意长度的字符串。 |
order_by | array | 结果排序规则。可使用与 filters 相同的字段和比较值。排序方向支持 asc(升序)和 desc(降序)。单次请求最多设置 3 条排序规则,多个规则之间使用逗号分隔。 |
tag | string | 用户自定义任务标识,最长 255 个字符。可用于请求与响应,指定的值会原样出现在响应的 data 对象中。 |
limit | integer | 单次最多返回的数量。默认值和最大值均为 1000。通过 offset_token 可继续获取后续结果。 |
offset | integer | 结果偏移量,表示从结果数组的哪个位置开始返回。默认值为 0。例如设置为 10 时,将跳过前 10 个。 |
offset_token | string | 后续请求使用的分页令牌。该值由前一次响应返回,用于获取同一任务的下一批结果。每个后续任务都有唯一的 offset_token。指定该参数后,除 limit 外的请求参数均不会参与任务处理。 |
filters 示例
json
[
["search_volume", ">", 1000],
"and",
["keyword", "like", "%seo%"]
]order_by 示例
json
[
["search_volume", "desc"],
["keyword_difficulty", "asc"]
]响应结构
服务器返回 JSON 数据 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。成功通常为 20000。完整错误码请参考 /v3/appendix/errors。 |
status_message | string | 通用状态信息。 |
time | string | 接口执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
tasks 任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,采用 UUID 格式。 |
status_code | integer | 任务状态码,通常在 10000 至 60000 范围。 |
status_message | string | 任务状态信息。 |
time | string | 任务执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求 URL 路径。 |
data | object | 创建任务时提交的参数。 |
result | array | 任务结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
location_code | integer | 请求中的地区代码。 |
language_code | string | 请求中的语言代码。 |
total_count | integer | 数据库中符合请求条件的结果总数。 |
items_count | integer | items 数组中的结果数量。 |
offset | integer | 当前结果偏移量。 |
offset_token | string | 获取后续结果所需的分页令牌。 |
items | array | 及数据。 |
items 字段
| 字段 | 类型 | 说明 |
|---|---|---|
keyword | string | 。 |
location_code | integer | 对应的地区代码。 |
language_code | string | 对应的语言代码。 |
keyword_info | object | 基础指标。 |
keyword_properties | object | 附加属性。 |
impressions_info | object | 广告展示与点击预估数据。 |
bing_keyword_info | object | Bing 广告数据。部分地区和语言不提供该数据。 |
serp_info | object/null | Google SERP 数据。未设置 include_serp_info=true,或数据库中没有对应 SERP 数据时为 null。 |
keyword_info
| 字段 | 类型 | 说明 |
|---|---|---|
last_updated_time | string | 数据更新时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
competition | float | 广告竞争度,取值范围为 0 至 1,数值越高表示竞争越激烈。 |
cpc | float | 历史平均每次点击费用。原始广告数据通常以计价,业务展示为人民币时请进行汇率换算。 |
search_volume | integer | 平均月搜索量,表示指定地区下 Google 的近似月搜索次数。 |
categories | array | 产品与服务分类。 |
monthly_searches | array | 过去 12 个月的月度搜索量数据。 |
monthly_searches 字段
| 字段 | 类型 | 说明 |
|---|---|---|
year | integer | 年份。 |
month | integer | 月份。 |
search_volume | integer | 当月平均搜索量。 |
keyword_properties
| 字段 | 类型 | 说明 |
|---|---|---|
core_keyword | string/null | 相似分组中的核心。如果为 null,表示数据库中没有符合条件的核心。 |
keyword_difficulty | integer | 难度,取值范围为 0 至 100,用于衡量自然搜索结果前 10 名的难度。数值越高,排名难度越大。 |
impressions_info
展示预估数据使用 999 的出价值,以降低账户级因素对结果的影响。字段可作为搜索量数据的补参考。
| 字段 | 类型 | 说明 |
|---|---|---|
last_updated_time | string | 展示数据更新时间,UTC 格式。 |
bid | integer | 最大 CPC 出价。接口返回值通常为 999。 |
match / match_type | string | 匹类型,可取 exact、broad、phrase。 |
ad_position_min | float | 最低广告排名位置。 |
ad_position_max | float | 最高广告排名位置。 |
ad_position_average | float | 平均广告排名位置。 |
cpc_min | float | 最低 CPC。该字段基于 999 出价估算,不代表 CPC。 |
cpc_max | float | 最高 CPC。该字段基于 999 出价估算,不代表 CPC。 |
cpc_average | float | 平均 CPC。该字段基于 999 出价估算,不代表 CPC。 |
daily_impressions_min | float | 每日最低展示次数,可作为 Google 搜索量的补参考。 |
daily_impressions_max | float | 每日最高展示次数,可作为 Google 搜索量的补参考。 |
daily_impressions_average | float | 每日平均展示次数,可作为 Google 搜索量的补参考。 |
daily_clicks_min | float | 每日最低点击次数。 |
daily_clicks_max | float | 每日最高点击次数。 |
daily_clicks_average | float | 每日平均点击次数。 |
daily_cost_min | float | 每日最低广告费用。原始广告数据通常以计价。 |
daily_cost_max | float | 每日最高广告费用。原始广告数据通常以计价。 |
daily_cost_average | float | 每日平均广告费用。原始广告数据通常以计价。 |
bing_keyword_info
Bing 数据覆盖部分地区和语言;无可用数据时返回 null。
| 字段 | 类型 | 说明 |
|---|---|---|
last_updated_time | string | Bing 数据更新时间,UTC 格式。 |
search_volume | integer | Bing 月搜索量,表示过去一个月在 Bing 的搜索次数。 |
monthly_searches | array | 指定地区下的月度 Bing 搜索量。 |
monthly_searches 数组中的字段:
| 字段 | 类型 | 说明 |
|---|---|---|
year | integer | 年份。 |
month | integer | 月份。 |
search_volume | integer | 月度平均搜索量。 |
serp_info
当请求中的 include_serp_info 设置为 true 时,接口才会返回 SERP 数据。
| 字段 | 类型 | 说明 |
|---|---|---|
check_url | string | 对应的搜索结果页面 URL,可用于人工核验结果。 |
serp_item_types | array | SERP 中出现的结果类型。 |
se_results_count | integer | 该的搜索结果数量。 |
last_updated_time | string | SERP 数据更新时间,UTC 格式。 |
previous_updated_time | string/null | 上一次 SERP 数据更新时间。 |
支持的 SERP 结果类型:
answer_box、app、carousel、multi_carousel、featured_snippet、google_flights、google_reviews、images、jobs、knowledge_graph、local_pack、map、organic、paid、people_also_ask、related_searches、people_also_search、shopping、top_stories、twitter、video、events、mention_carousel、recipes、top_sights、scholarly_articles、popular_products、podcasts、questions_and_answers、find_results_on、stocks_box。
结果明细通常针对以下类型返回:
organicpaidfeatured_snippetlocal_pack
请求示例
curl
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/dataforseo_labs/top_google_searches/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"language_name": "English",
"location_code": 2840,
"include_serp_info": true,
"limit": 5
}
]'PHP
php
<?php
$apiUrl = 'https://api.seermartech.cn';
$apiKey = 'smt_live_YOUR_KEY';
$postArray = [
[
'language_name' => 'English',
'location_code' => 2840,
'include_serp_info' => true,
'limit' => 5
]
];
$ch = curl_init($apiUrl . '/v3/dataforseo_labs/top_google_searches/live');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($postArray, JSON_UNESCAPED_UNICODE)
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;TypeScript
typescript
import axios from "axios";
const response = await axios.post(
"https://api.seermartech.cn/v3/dataforseo_labs/top_google_searches/live",
[
{
language_name: "English",
location_code: 2840,
include_serp_info: true,
limit: 5
}
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
}
);
console.log(response.data);Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/top_google_searches/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"language_name": "English",
"location_code": 2840,
"include_serp_info": True,
"limit": 5,
}
]
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
"请求失败,状态码:%s,消息:%s"
% (result.get("status_code"), result.get("status_message"))
)响应示例
以下示例展示主要字段结构:
json
{
"version": "0.1.20220131",
"status_code": 20000,
"status_message": "Ok.",
"time": "3.6239 sec.",
"cost": 0.0756,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20000,
"status_message": "Ok.",
"time": "3.6000 sec.",
"cost": 0.0756,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"top_google_searches",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "top_google_searches",
"language_name": "English",
"location_code": 2840,
"include_serp_info": true,
"limit": 5
},
"result": [
{
"location_code": 2840,
"language_code": "en",
"total_count": 1000000,
"items_count": 5,
"offset": 0,
"offset_token": "example_offset_token",
"items": [
{
"keyword": "youtube",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"last_updated_time": "2022-01-16 23:07:09 +00:00",
"competition": 0.010777017248397794,
"cpc": 0.078062,
"search_volume": 151000000,
"categories": [],
"monthly_searches": [
{
"year": 2022,
"month": 1,
"search_volume": 151000000
}
]
},
"keyword_properties": {
"core_keyword": null,
"keyword_difficulty": 100
},
"impressions_info": {
"last_updated_time": "2022-01-24 22:33:37 +00:00",
"bid": 999,
"match_type": "exact",
"ad_position_min": 1.11,
"ad_position_max": 1.0,
"ad_position_average": 1.06,
"cpc_min": 11.12,
"cpc_max": 13.59,
"cpc_average": 12.36,
"daily_impressions_min": 296381.2,
"daily_impressions_max": 362243.7,
"daily_impressions_average": 329312.45,
"daily_clicks_min": 22647.69,
"daily_clicks_max": 27680.51,
"daily_clicks_average": 25164.1,
"daily_cost_min": 279884.01,
"daily_cost_max": 342080.49,
"daily_cost_average": 310982.25
},
"bing_keyword_info": null,
"serp_info": {
"check_url": "https://www.google.com/search?q=youtube",
"serp_item_types": [
"organic",
"video",
"related_searches"
],
"se_results_count": 39,
"last_updated_time": "2022-01-13 20:28:32 +00:00",
"previous_updated_time": null
}
}
]
}
]
}
]
}错误处理
建议根据顶层 status_code、任务级 status_code 和对应的 status_message 实现异常处理。
- 顶层
status_code表示本次 API 请求的总体状态。 - 任务级
status_code表示任务的处理状态。 tasks_error表示返回错误的任务数量。- 成功状态码通常为
20000。 - 完整状态码列表请参考
/v3/appendix/errors。
使用 offset_token 获取后续数据时,请保留每次响应返回的新令牌。不同分页任务的 offset_token 唯一性,不能混用。
实用场景
- 挖掘目标市场热门:按国家、地区和语言获取热门搜索词,为 SEO规划和市场策略提供依据。
- 筛选高潜力:结合
search_volume、keyword_difficulty、competition和cpc,定位搜索需求高且竞争可控的。 - 规划主题集群:利用
core_keyword和属性聚合相似词,构建栏目、专题页和集群。 - 评估广告投放机会:分析 CPC、广告位置、展示次数、点击次数和每日费用预估,为广告预算分提供参考。
- 对比 Google 与 Bing 搜索需求:结合
keyword_info和bing_keyword_info的搜索量数据,制定跨搜索引擎的 SEO 与广告策略。