Skip to content

Google 热门搜索词(旧版)

接口概述

POST https://api.seermartech.cn/v3/dataforseo_labs/top_google_searches/live

这是 Google 热门搜索词旧版接口,可从数据库中获取大量热门及指标广告竞争度、每次点击费用、搜索量、产品与服务分类、难度、广告展示预估、Bing 搜索数据以及 Google SERP 数据。

> 本页面对应旧版请求与响应结构。新版接口请参考 /v3/dataforseo_labs/google/top_searches/live/

该接口采用连续分页机制:

  1. 首次请求提交完整任务参数,例如语言、地区和结果数量。
  2. 响应中会返回 offset_token
  3. 后续请求需提交 offset_tokenlimit,即可获取下一批结果。
  4. 每次最多返回 1000 个,可通过连续请求逐批获取更多数据。

平台限流以认证说明中的 30/60/120 次/分钟规则为准。

计费说明

每次请求都会产生费用。参考价约 ¥0.076 / 次,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

响应中的 cost 字段(平台原始 USD 成本兼容字段)表示任务费用,金额以人民币计。广告指标中的 CPC、广告费用等金额字段遵循广告数据的原始币种口径;如需人民币展示,请在业务侧按当前汇率换算。

请求参数

请求体使用 UTF-8 编码的 JSON 数组格式:

json
[
  {
    "language_name": "English",
    "location_code": 2840
  }
]

任务参数

参数类型说明
location_namestring地区完整名称。未指定 location_code 时填。location_namelocation_code 至少指定一个。示例:United Kingdom。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。
location_codeinteger地区代码。未指定 location_name 时填。location_namelocation_code 至少指定一个。示例:2840
language_namestring语言完整名称。未指定 language_code 时填。language_namelanguage_code 至少指定一个。示例:English
language_codestring语言代码。未指定 language_name 时填。language_namelanguage_code 至少指定一个。示例:en
include_serp_infoboolean是否为每个返回 Google SERP 数据。设为 true 后,结果中会 serp_info。默认值为 false
filtersarray结果过滤条件。最多设置 8 个过滤条件,需要使用 andor 连接。支持 <<=>>==<>innot_inlikenot_likelikenot_like 支持使用 % 匹任意长度的字符串。
order_byarray结果排序规则。可使用与 filters 相同的字段和比较值。排序方向支持 asc(升序)和 desc(降序)。单次请求最多设置 3 条排序规则,多个规则之间使用逗号分隔。
tagstring用户自定义任务标识,最长 255 个字符。可用于请求与响应,指定的值会原样出现在响应的 data 对象中。
limitinteger单次最多返回的数量。默认值和最大值均为 1000。通过 offset_token 可继续获取后续结果。
offsetinteger结果偏移量,表示从结果数组的哪个位置开始返回。默认值为 0。例如设置为 10 时,将跳过前 10 个。
offset_tokenstring后续请求使用的分页令牌。该值由前一次响应返回,用于获取同一任务的下一批结果。每个后续任务都有唯一的 offset_token。指定该参数后,除 limit 外的请求参数均不会参与任务处理。

filters 示例

json
[
  ["search_volume", ">", 1000],
  "and",
  ["keyword", "like", "%seo%"]
]

order_by 示例

json
[
  ["search_volume", "desc"],
  ["keyword_difficulty", "asc"]
]

响应结构

服务器返回 JSON 数据 tasks 数组。

顶层字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger通用状态码。成功通常为 20000。完整错误码请参考 /v3/appendix/errors
status_messagestring通用状态信息。
timestring接口执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务总数。
tasks_errorintegertasks 数组中返回错误的任务数量。
tasksarray任务结果数组。

tasks 任务字段

字段类型说明
idstring任务唯一标识,采用 UUID 格式。
status_codeinteger任务状态码,通常在 1000060000 范围。
status_messagestring任务状态信息。
timestring任务执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的数量。
patharray请求 URL 路径。
dataobject创建任务时提交的参数。
resultarray任务结果数组。

result 字段

字段类型说明
location_codeinteger请求中的地区代码。
language_codestring请求中的语言代码。
total_countinteger数据库中符合请求条件的结果总数。
items_countintegeritems 数组中的结果数量。
offsetinteger当前结果偏移量。
offset_tokenstring获取后续结果所需的分页令牌。
itemsarray及数据。

items 字段

字段类型说明
keywordstring
location_codeinteger对应的地区代码。
language_codestring对应的语言代码。
keyword_infoobject基础指标。
keyword_propertiesobject附加属性。
impressions_infoobject广告展示与点击预估数据。
bing_keyword_infoobjectBing 广告数据。部分地区和语言不提供该数据。
serp_infoobject/nullGoogle SERP 数据。未设置 include_serp_info=true,或数据库中没有对应 SERP 数据时为 null

keyword_info

字段类型说明
last_updated_timestring数据更新时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
competitionfloat广告竞争度,取值范围为 01,数值越高表示竞争越激烈。
cpcfloat历史平均每次点击费用。原始广告数据通常以计价,业务展示为人民币时请进行汇率换算。
search_volumeinteger平均月搜索量,表示指定地区下 Google 的近似月搜索次数。
categoriesarray产品与服务分类。
monthly_searchesarray过去 12 个月的月度搜索量数据。

monthly_searches 字段

字段类型说明
yearinteger年份。
monthinteger月份。
search_volumeinteger当月平均搜索量。

keyword_properties

字段类型说明
core_keywordstring/null相似分组中的核心。如果为 null,表示数据库中没有符合条件的核心。
keyword_difficultyinteger难度,取值范围为 0100,用于衡量自然搜索结果前 10 名的难度。数值越高,排名难度越大。

impressions_info

展示预估数据使用 999 的出价值,以降低账户级因素对结果的影响。字段可作为搜索量数据的补参考。

字段类型说明
last_updated_timestring展示数据更新时间,UTC 格式。
bidinteger最大 CPC 出价。接口返回值通常为 999
match / match_typestring匹类型,可取 exactbroadphrase
ad_position_minfloat最低广告排名位置。
ad_position_maxfloat最高广告排名位置。
ad_position_averagefloat平均广告排名位置。
cpc_minfloat最低 CPC。该字段基于 999 出价估算,不代表 CPC。
cpc_maxfloat最高 CPC。该字段基于 999 出价估算,不代表 CPC。
cpc_averagefloat平均 CPC。该字段基于 999 出价估算,不代表 CPC。
daily_impressions_minfloat每日最低展示次数,可作为 Google 搜索量的补参考。
daily_impressions_maxfloat每日最高展示次数,可作为 Google 搜索量的补参考。
daily_impressions_averagefloat每日平均展示次数,可作为 Google 搜索量的补参考。
daily_clicks_minfloat每日最低点击次数。
daily_clicks_maxfloat每日最高点击次数。
daily_clicks_averagefloat每日平均点击次数。
daily_cost_minfloat每日最低广告费用。原始广告数据通常以计价。
daily_cost_maxfloat每日最高广告费用。原始广告数据通常以计价。
daily_cost_averagefloat每日平均广告费用。原始广告数据通常以计价。

bing_keyword_info

Bing 数据覆盖部分地区和语言;无可用数据时返回 null

字段类型说明
last_updated_timestringBing 数据更新时间,UTC 格式。
search_volumeintegerBing 月搜索量,表示过去一个月在 Bing 的搜索次数。
monthly_searchesarray指定地区下的月度 Bing 搜索量。

monthly_searches 数组中的字段:

字段类型说明
yearinteger年份。
monthinteger月份。
search_volumeinteger月度平均搜索量。

serp_info

当请求中的 include_serp_info 设置为 true 时,接口才会返回 SERP 数据。

字段类型说明
check_urlstring对应的搜索结果页面 URL,可用于人工核验结果。
serp_item_typesarraySERP 中出现的结果类型。
se_results_countinteger该的搜索结果数量。
last_updated_timestringSERP 数据更新时间,UTC 格式。
previous_updated_timestring/null上一次 SERP 数据更新时间。

支持的 SERP 结果类型:

answer_boxappcarouselmulti_carouselfeatured_snippetgoogle_flightsgoogle_reviewsimagesjobsknowledge_graphlocal_packmaporganicpaidpeople_also_askrelated_searchespeople_also_searchshoppingtop_storiestwittervideoeventsmention_carouselrecipestop_sightsscholarly_articlespopular_productspodcastsquestions_and_answersfind_results_onstocks_box

结果明细通常针对以下类型返回:

  • organic
  • paid
  • featured_snippet
  • local_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_volumekeyword_difficultycompetitioncpc,定位搜索需求高且竞争可控的。
  • 规划主题集群:利用 core_keyword 和属性聚合相似词,构建栏目、专题页和集群。
  • 评估广告投放机会:分析 CPC、广告位置、展示次数、点击次数和每日费用预估,为广告预算分提供参考。
  • 对比 Google 与 Bing 搜索需求:结合 keyword_infobing_keyword_info 的搜索量数据,制定跨搜索引擎的 SEO 与广告策略。

统一入口:官网 · LLM API · 控制台