主题
批量历史流量预估
接口说明
该接口用于批量获取多个域名或子域名的历史月度流量预估数据,单次最多支持 1,000 个目标。可查询指定时间范围的数据,历史最早可追溯到 2020-10-01。如果未指定时间范围,默认返回最近 12 个月的数据。
除自然搜索流量预估外,响应中还可分别返回以下结果类型的流量数据:
- 付费搜索(paid)
- 精选摘要(featured_snippet)
- 本地(local_pack)
流量预估值 etv 的计算逻辑为:目标域名在对应结果类型下所有已排名的点击率(CTR)与搜索量之积的汇总值。
请求地址
POST https://api.seermartech.cn/v3/dataforseo_labs/google/historical_bulk_traffic_estimation/live
计费与限制
- 本接口按请求计费
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准 - 请求体使用 UTF-8 编码的 JSON
- POST 请求体格式为 JSON 数组:
[{ ... }] - 频率限制:
- 每分钟最多 2000 次 API 调用
- 最多 30 个并发请求
请求参数
任务对象字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
targets | array | 目标域名或子域名,填。填写时不要带 https:// 和 www.;最多支持 1000 个域名或子域名。 |
location_name | string | 地区名。填写该字段时可不传 location_code。如需查询可用地区和对应名称,可调用 /v3/dataforseo_labs/locations_and_languages。若忽略该字段,则返回所有可用地区的数据。示例:United Kingdom |
location_code | integer | 地区编码。填写该字段时可不传 location_name。如需查询可用地区编码,可调用 /v3/dataforseo_labs/locations_and_languages。若忽略该字段,则返回所有可用地区的数据。示例:2840 |
language_name | string | 语言名。填写该字段时可不传 language_code。如需查询可用语言,可调用 /v3/dataforseo_labs/locations_and_languages。若忽略该字段,则返回所有可用语言的数据。示例:English |
language_code | string | 语言代码。填写该字段时可不传 language_name。如需查询可用语言代码,可调用 /v3/dataforseo_labs/locations_and_languages。若忽略该字段,则返回所有可用语言的数据。示例:en |
date_from | string | 开始日期,可选。未传时默认取最近 12 个月。最早可填:2020-10-01。格式:yyyy-mm-dd |
date_to | string | 结束日期,可选。未传时默认使用当天日期。格式:yyyy-mm-dd。示例:2021-04-01 |
ignore_synonyms | boolean | 是否忽略高度相似,可选。设为 true 时返回核心数据,排除高度相似。默认值:false |
item_types | array | 按结果类型返回数据,可选。用于指定响应中哪些搜索结果类型。**注意:**如果数组中第一个值不是 organic,结果会按数组中的第一个结果类型排序。常见值:organic、paid、featured_snippet、local_pack |
tag | string | 自定义任务标识,可选,最大 255 个字符。可用于在响应中识别和任务,返回时会出现在响应的 data 对象中。 |
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 接口通用状态码,完整列表参考 /v3/appendix/errors |
status_message | string | 接口通用状态信息,完整列表参考 /v3/appendix/errors |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用 |
tasks_count | integer | tasks 数组中的任务数 |
tasks_error | integer | 返回错误的任务数 |
tasks | array | 任务结果列表 |
tasks 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000,完整列表参考 /v3/appendix/errors |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时 |
cost | float | 任务费用 |
result_count | integer | result 数组中的数量 |
path | array | 请求路径 |
data | object | 与请求中提交的参数一致 |
result | array | 结果列表 |
result 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
location_code | integer | 请求中的地区编码;如无数据则为 null |
language_code | string | 请求中的语言代码;如无数据则为 null |
total_count | integer | 数据库中与请求匹的总结果数 |
items_count | integer | items 数组中返回的结果数 |
items | array | 各目标域名的流量预估数据 |
items 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
target | string | 请求中的目标域名 |
metrics | object | 该域名对应的流量指标数据 |
metrics 对象字段
organic
自然搜索流量数据数组。
| 字段名 | 类型 | 说明 |
|---|---|---|
year | integer | 数据所属年份 |
month | integer | 数据所属月份 |
etv | float | 预估月度自然搜索流量 |
count | integer | 含该域名的自然搜索 SERP 总数 |
paid
付费搜索流量数据数组。
| 字段名 | 类型 | 说明 |
|---|---|---|
year | integer | 数据所属年份 |
month | integer | 数据所属月份 |
etv | float | 预估月度付费搜索流量 |
count | integer | 含该域名的付费搜索 SERP 总数 |
featured_snippet
精选摘要流量数据数组。
| 字段名 | 类型 | 说明 |
|---|---|---|
year | integer | 数据所属年份 |
month | integer | 数据所属月份 |
etv | float | 预估月度精选摘要流量 |
count | integer | 含该域名的精选摘要结果总数 |
local_pack
本地流量数据数组。
| 字段名 | 类型 | 说明 |
|---|---|---|
year | integer | 数据所属年份 |
month | integer | 数据所属月份 |
etv | float | 预估月度本地流量 |
count | integer | 含该域名的本地结果总数 |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/google/historical_bulk_traffic_estimation/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"targets": [
"example.com",
"cnn.com",
"forbes.com"
],
"location_code": 2840,
"language_code": "en",
"date_from": "2021-01-01",
"date_to": "2021-03-29",
"item_types": [
"organic",
"paid"
]
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/google/historical_bulk_traffic_estimation/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
payload = [
{
"targets": [
"example.com",
"cnn.com",
"forbes.com"
],
"location_name": "United States",
"language_name": "English",
"date_from": "2021-01-01",
"date_to": "2021-03-29",
"item_types": [
"organic",
"paid"
]
}
]
response = requests.post(url, json=payload, headers=headers)
print(response.json)TypeScript
typescript
import axios from "axios";
const postData = [
{
targets: ["example.com", "cnn.com", "forbes.com"],
location_code: 2840,
language_name: "English",
date_from: "2021-01-01",
date_to: "2021-03-29",
item_types: ["organic", "paid"]
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/dataforseo_labs/google/historical_bulk_traffic_estimation/live",
headers: {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: postData
})
.then((response) => {
// 输出接口结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});响应示例
json
{
"version": "0.1.20230705",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1397 sec.",
"cost": 0.103,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1200 sec.",
"cost": 0.103,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"historical_bulk_traffic_estimation",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "historical_bulk_traffic_estimation",
"se_type": "google",
"targets": [
"example.com",
"cnn.com",
"forbes.com"
],
"location_code": 2840,
"language_code": "en",
"date_from": "2021-01-01",
"date_to": "2021-03-29",
"item_types": [
"organic",
"paid"
]
},
"result": [
{
"se_type": "google",
"location_code": 2840,
"language_code": "en",
"total_count": 3,
"items_count": 3,
"items": [
{
"se_type": "google",
"target": "cnn.com",
"metrics": {
"organic": [],
"paid": [],
"local_pack": null,
"featured_snippet": null
}
},
{
"se_type": "google",
"target": "example.com",
"metrics": {
"organic": [],
"paid": [],
"local_pack": null,
"featured_snippet": null
}
},
{
"se_type": "google",
"target": "forbes.com",
"metrics": {
"organic": [],
"paid": [],
"local_pack": null,
"featured_snippet": null
}
}
]
}
]
}
]
}状态码与错误处理
- 顶层
status_code表示整次请求的执行状态 tasks[].status_code表示单个任务的执行状态- 建议同时校验:
- HTTP 状态码
- 顶层
status_code - 任务级
tasks[].status_code
常见成功状态:
| 状态码 | 说明 |
|---|---|
20000 | 请求成功 |
完整错误码与状态说明请参考 /v3/appendix/errors。生产环境中建议为参数错误、额度不足、频率限制、空结果等建立统一异常处理机制。
使用说明补
targets中填写域名或子域名,不要带协议头和www.- 若未传
location_code/location_name或language_code/language_name,系统会尝试返回所有可用地区或语言范围的数据 date_from最早只能设置为2020-10-01- 如果只自然流量,可将
item_types设置为["organic"] - 如果需要观察自然流量与广告流量的结构变化,可设置
item_types为["organic", "paid"]
实用场景
- 监测站群流量趋势:批量拉取多个站点或子站的历史自然流量与付费流量,快速识别流量增长、下滑和季节性波动。
- 评估竞品投放强度:对比竞品域名在
paid与organic下的历史流量占比,判断 SEO 与广告投放策略变化。 - 分析 SERP 特征机会:查看
featured_snippet与local_pack的历史流量表现,识别精选摘要或本地搜索机会。 - 复盘算法或改版影响:结合指定时间区间,评估网站改版、调整或搜索引擎波动对各类流量的历史影响。
- 支持客户月报与季度复盘:批量输出多个客户域名的月度流量预估数据,为 SEO 汇报、代理商复盘和趋势预测提供依据。