主题
Google 子域名分析(实时)
接口说明
该接口用于返回指定域名下的子域名列表,并提供这些子域名在自然搜索与付费搜索中的排名分布数据。同时,接口还会返回基于搜索量和展示量估算的子域名流量表现。
数据更新频率: 每周更新一次,最新更新时间可通过 /v3/dataforseo_labs/status/ 查询。
请求方式:
POST https://api.seermartech.cn/v3/dataforseo_labs/google/subdomains/live
计费与调用限制
- 本接口按请求次数计费
- 参考价约 ¥0.1616 / 次
- 如果启用
include_clickstream_data=true,请求价格翻倍 - 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
频率限制:
- 每分钟最多 2000 次 API 调用
- 最大并发请求数:30
请求体格式
所有 POST 数据应使用 JSON(UTF-8 编码),请求体格式为 JSON 数组:
json
[
{
"target": "example.com"
}
]你可以通过 limit、offset、filters、order_by 控制返回数量、分页、筛选和排序。
请求参数
| 字段 | 类型 | 说明 |
|---|---|---|
target | string | 填。目标网站的域名,不要 https:// 和 www. |
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 |
item_types | array | 可选。指定返回的搜索结果类型。若数组中 organic 以外的类型,结果将按数组中的第一个类型排序;且不能按未的结果类型进行筛选或排序 |
include_clickstream_data | boolean | 可选。是否在结果中基于点击流的指标。设为 true 时,将返回 clickstream_etv、clickstream_gender_distribution、clickstream_age_distribution。默认 false。启用后价格翻倍 |
historical_serp_mode | string | 可选。数据过滤模式。live:当前仍有排名的 SERP;lost:此前有排名但最近一次检查已丢失的 SERP;all:同时返回两类数据。默认 live |
ignore_synonyms | boolean | 可选。是否忽略高度相似。设为 true 时返回核心,排除高度相似。默认 false |
filters | array | 可选。结果筛选条件数组,最多 8 个条件。条件之间需使用逻辑运算符 and / or 连接。支持运算符:regex、not_regex、<、<=、>、>=、=、<>、in、not_in |
order_by | array | 可选。结果排序规则。可使用与 filters 相同的字段路径。排序方式:asc 升序,desc 降序。单次请求最多支持 3 条排序规则 |
limit | integer | 可选。返回结果最大数量。默认 100,最大 1000 |
offset | integer | 可选。结果偏移量。默认 0。例如设为 10 时,将跳过前 10 条结果 |
tag | string | 可选。用户自定义任务标识,最长 255 字符。返回结果中的 data 对象会原样带回该值,便于请求与结果对应 |
filters 使用说明
filters 支持多条件组合,适合筛选备特定排名特征的子域名。
支持的逻辑和比较操作:
- 逻辑运算:
and、or - 比较运算:
regex、not_regex、<、<=、>、>=、=、<>、in、not_in
示例:筛选“自然搜索排名第 1 位数量不为 0”或“自然搜索排名第 2-3 位数量不为 0”的子域名:
json
[
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
]更多筛选字段可参考 /v3/dataforseo_labs/filters。
order_by 使用说明
order_by 用于结果排序,格式为字段路径加排序方向:
json
[
"metrics.organic.etv,desc"
]注意:
- 单次请求最多 3 条排序规则
- 如果
item_types含organic之外的类型,则结果会优按item_types中第一个类型排序
返回结果结构
接口返回 JSON 编码数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态消息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
tasks | array | 任务结果数组 |
tasks[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态消息 |
time | string | 任务执行耗时 |
cost | float | 当前任务费用,单位 USD |
result_count | integer | result 数组数量 |
path | array | URL 路径 |
data | object | 与请求体中提交参数一致 |
result | array | 结果数组 |
result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
target | string | 请求中的目标域名 |
location_code | integer | 请求中的地区编码 |
language_code | string | 请求中的语言编码 |
total_count | integer | 数据库中与请求匹的总结果数 |
items_count | integer | 本次 items 返回数量 |
items | array | 子域名及指标列表 |
items[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
subdomain | string | 返回的子域名 |
metrics | object | 子域名对应的排名与流量指标 |
metrics 指标说明
metrics 下会按不同结果类型返回对象,常见:
organic:自然搜索paid:付费搜索featured_snippet:精选摘要local_pack:本地结果
这些对象的字段结构基本一致。
通用排名分布字段
以下字段适用于 organic、paid、featured_snippet、local_pack 等结果类型:
| 字段 | 类型 | 说明 |
|---|---|---|
pos_1 | integer | 排名第 1 的结果数量 |
pos_2_3 | integer | 排名第 2-3 的结果数量 |
pos_4_10 | integer | 排名第 4-10 的结果数量 |
pos_11_20 | integer | 排名第 11-20 的结果数量 |
pos_21_30 | integer | 排名第 21-30 的结果数量 |
pos_31_40 | integer | 排名第 31-40 的结果数量 |
pos_41_50 | integer | 排名第 41-50 的结果数量 |
pos_51_60 | integer | 排名第 51-60 的结果数量 |
pos_61_70 | integer | 排名第 61-70 的结果数量 |
pos_71_80 | integer | 排名第 71-80 的结果数量 |
pos_81_90 | integer | 排名第 81-90 的结果数量 |
pos_91_100 | integer | 排名第 91-100 的结果数量 |
etv | float | 预估流量。基于 CTR 与搜索量估算的月度流量 |
count | integer | 含该子域名的结果总数 |
estimated_paid_traffic_cost | float | 将该流量通过付费搜索获取时的预估月成本,单位 USD |
is_new | integer | 新增排名数量 |
is_up | integer | 排名上升的数量 |
is_down | integer | 排名下降的数量 |
is_lost | integer | 丢失排名的数量 |
点击流扩展字段
当 include_clickstream_data=true 时返回:
| 字段 | 类型 | 说明 |
|---|---|---|
clickstream_etv | integer | 基于点击流数据估算的流量 |
clickstream_gender_distribution | object | 基于点击流估算的性别分布 |
clickstream_gender_distribution.female | integer | 女性用户数量 |
clickstream_gender_distribution.male | integer | 男性用户数量 |
clickstream_age_distribution | object | 基于点击流估算的年龄分布 |
clickstream_age_distribution.18-24 | integer | 18-24 岁用户数量 |
clickstream_age_distribution.25-34 | integer | 25-34 岁用户数量 |
clickstream_age_distribution.35-44 | integer | 35-44 岁用户数量 |
clickstream_age_distribution.45-54 | integer | 45-54 岁用户数量 |
clickstream_age_distribution.55-64 | integer | 55-64 岁用户数量 |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/google/subdomains/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"target": "example.com",
"language_name": "English",
"location_code": 2840,
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
]
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/google/subdomains/live"
payload = [
{
"target": "example.com",
"location_name": "United States",
"language_name": "English",
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
]
}
]
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json)TypeScript
typescript
import axios from "axios";
const postData = [
{
target: "example.com",
language_name: "English",
location_code: 2840,
filters: [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
]
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/dataforseo_labs/google/subdomains/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.20240514",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1664 sec.",
"cost": 0.0101,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "dataforseo_labs",
"function": "subdomains",
"se_type": "google",
"target": "example.com",
"language_name": "English",
"location_code": 2840,
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
]
},
"result": [
{}
]
}
]
}错误处理
- 顶层
status_code表示整次请求的总体状态 tasks[].status_code表示单个任务的执行状态- 建议同时检查:
- HTTP 状态码
- 顶层
status_code tasks_error- 各任务下的
tasks[].status_code
常见成功状态:
20000:请求成功
完整错误码体系请参考 /v3/appendix/errors。
使用建议
- 做量子域名盘点时,可不传地区和语言,以获取更广泛的数据覆盖。
- 做指定市场分析时,建议传
location_code与language_code,不同市场数据混合。 - 做高价值子域名排序时,可结合
order_by按metrics.organic.etv,desc排序。 - 排查排名波动时,可
is_new、is_up、is_down、is_lost字段。 - 评估 SEO 商业价值时,可重点参考
etv与estimated_paid_traffic_cost。
实用场景
- 盘点站群结构:识别某个主域名下哪些子域名备搜索可见性,帮助梳理、产品、博客、帮助中心等站点模块的 SEO 分工。
- 筛选高流量子域名:按
metrics.organic.etv排序,快速找出自然流量贡献最大的子域名,便于优与技术优化资源。 - 监控排名波动子域名:结合
is_up、is_down、is_lost识别近期波动明显的子域名,及时发现迁移、收录异常或算法影响。 - 评估付费替代成本:利用
estimated_paid_traffic_cost衡量自然流量的商业价值,为 SEO 投产出评估提供依据。 - 分析受众画像差异:启用点击流数据后,可查看不同子域名的年龄与性别分布,帮助优化定位与市场投放策略。