主题
Bing 子域名分布实时查询
POST /v3/dataforseo_labs/bing/subdomains/live
接口说明
通过本接口可获取指定域名的子域名列表,并返回各子域名在 Bing 自然搜索与付费搜索中的排名分布数据。同时,还会提供基于搜索量估算的子域名流量数据。
- 数据更新频率:每周更新
- 最新数据更新时间:可通过
/v3/dataforseo_labs/status/查询 - 请求方式:
POST - 接口路径:
/v3/dataforseo_labs/bing/subdomains/live
计费说明
该接口按请求计费。原文未提供固定单价,因此无法直接换算参考人民币价格。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
调用限制
- 每分钟最多 2000 次 API 调用
- 最多 30 个并发请求
- POST 请求体为 JSON 数组:
[{ ... }]
查询能力
你可以通过本接口:
- 控制返回结果数量
- 对结果进行过滤
- 对结果进行排序
请求参数
顶层请求体示例
json
[
{
"target": "example.com",
"location_code": 2840,
"language_name": "English",
"limit": 5
}
]参数说明
| 字段 | 类型 | 说明 |
|---|---|---|
target | string | 填。目标网站域名,不要 https:// 和 www.。例如:example.com |
location_name | string | 可选。地区名。使用该字段时可不传 location_code。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。注意:当前支持美国。例如:United States |
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 之外的类型,结果会按数组中的第一个类型排序;同时不能对未在响应中的结果类型进行过滤和排序。 |
historical_serp_mode | string | 可选。数据筛选模式。可选值:live、lost、all。默认:live。- live:返回当前仍有排名的 SERP 指标;- lost:返回之前有排名、最近一次检查已丢失排名的 SERP 指标;- all:返回以上两类指标。 |
ignore_synonyms | boolean | 可选。是否忽略高度相似。设为 true 时返回核心,排除高度相似词。默认:false |
filters | array | 可选。结果过滤条件数组,最多支持 8 个过滤条件。多个条件之间可使用逻辑运算符 and、or。支持操作符:regex、<、<=、>、>=、=、<>、in、not_in |
order_by | array | 可选。结果排序规则。可使用与 filters 相同的字段路径。排序方式:asc 升序,desc 降序。单次请求最多支持 3 条排序规则。若 item_types含非 organic 类型,结果将优按 item_types 中第一个类型排序。 |
limit | integer | 可选。返回结果数量上限。默认:100;最大:1000 |
offset | integer | 可选。结果偏移量。默认:0。例如传 10 时,将跳过前 10 条结果,返回后续数据 |
tag | string | 可选。用户自定义任务标识,最长 255 个字符。可用于请求与响应结果的,响应中的 data 对象会返回该值 |
filters 用法说明
filters 支持多条件组合,结构为数组,可在条件之间插 and 或 or。
支持的操作符:
regex<<=>>==<>innot_in
示例:筛选在自然结果中至少前 3 的子域名
json
[
{
"target": "example.com",
"location_code": 2840,
"language_name": "English",
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
],
"limit": 5
}
]更多过滤字段可结合返回结果中的字段路径进行,过滤逻辑与 /v3/dataforseo_labs/filters 容。
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/bing/subdomains/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"target": "example.com",
"location_code": 2840,
"language_name": "English",
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
],
"limit": 5
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/bing/subdomains/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"target": "example.com",
"location_name": "United States",
"language_name": "English",
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
],
"limit": 5
}
]
response = requests.post(url, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
const postData = [
{
target: "example.com",
location_code: 2840,
language_name: "English",
filters: [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
],
limit: 5
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/dataforseo_labs/bing/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 编码结果,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码。完整列表见 /v3/appendix/errors |
status_message | string | 通用状态信息 |
time | string | 执行耗时,单位:秒 |
cost | float | 本次所有任务总成本,单位:USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
tasks | array | 任务结果数组 |
tasks 数组字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,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。
这些对象的结构基本一致,主要以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
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 | 预估流量 |
count | integer | 含该域名的结果总数 |
estimated_paid_traffic_cost | float | 预估流量成本,单位:USD |
is_new | integer | 新增排名数量 |
is_up | integer | 排名上升的数量 |
is_down | integer | 排名下降的数量 |
is_lost | integer | 丢失排名的数量 |
各类型指标含义
organic
自然搜索中的排名与流量数据:
etv:预估自然月流量- 计算逻辑:基于 CTR(点击率)与搜索量估算
estimated_paid_traffic_cost:将这部分自然流量通过 PPC 广告获取时的预估月成本
paid
付费搜索中的排名与流量数据:
etv:预估付费月流量estimated_paid_traffic_cost:基于etv与cpc计算的预估付费流量成本
featured_snippet
Bing SERP 中精选摘要结果的排名与流量数据。
local_pack
SERP 本地结果模块中的排名与流量数据。
响应示例
json
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1458 sec.",
"cost": 0.0102,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "dataforseo_labs",
"function": "subdomains",
"se_type": "bing",
"target": "example.com",
"language_name": "English",
"location_code": 2840,
"filters": [
["metrics.organic.pos_1", "<>", 0],
"or",
["metrics.organic.pos_2_3", "<>", 0]
],
"limit": 5
},
"result": [
{
"se_type": "bing",
"target": "example.com",
"location_code": 2840,
"language_code": "en",
"total_count": 5,
"items_count": 5,
"items": [
{
"se_type": "bing",
"subdomain": "blog.example.com",
"metrics": {
"organic": {
"pos_1": 12,
"pos_2_3": 18,
"pos_4_10": 35,
"pos_11_20": 21,
"pos_21_30": 9,
"pos_31_40": 4,
"pos_41_50": 2,
"pos_51_60": 1,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 1240.56,
"count": 102,
"estimated_paid_traffic_cost": 876.11,
"is_new": 7,
"is_up": 16,
"is_down": 5,
"is_lost": 2
},
"paid": {
"pos_1": 3,
"pos_2_3": 2,
"pos_4_10": 4,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 145.2,
"count": 9,
"estimated_paid_traffic_cost": 312.9,
"is_new": 1,
"is_up": 2,
"is_down": 0,
"is_lost": 0
}
}
}
]
}
]
}
]
}错误码说明
- 顶层
status_code表示整个请求的执行状态 tasks[].status_code表示单个任务的执行状态- 建议同时检查:
- HTTP 状态码
- 顶层
status_code - 任务级
tasks[].status_code
完整错误码与状态说明请参考 /v3/appendix/errors。生产环境中应建立完善的异常处理机制,以处理参数错误、额限制、认证失败、并发限等。
实用场景
- 识别高价值子域名:快速找出在 Bing 自然搜索中流量贡献最高的子域名,资源倾斜与站点结构优化。
- 监控子域名排名波动:结合
is_up、is_down、is_lost等字段,持续跟踪各业务线子域名的排名变化,及时发现流量异常。 - 评估自然流量商业价值:利用
etv和estimated_paid_traffic_cost估算子域名 SEO 流量价值,为投放与自然增长预算分提供依据。 - 拆分品牌站群表现:对博客、帮助中心、商城、活动页等不同子域名的搜索表现进行横向对比,定位最值得继续的板块。
- 分析搜索结果类型覆盖:按
organic、paid、featured_snippet、local_pack观察不同子域名在各类 Bing 结果中的可见度,优化多样化搜索策略。