Skip to content

Bing SERP 竞争对手分析(实时)

接口说明

通过本接口,你可以基于一组指定,获取在 Bing 搜索结果中参与竞争的域名列表。返回结果这些域名的排名信息,还以下指标:

  • SERP 平均排名
  • 排名中位数
  • rating(排名能力评分)
  • etv(预估流量)
  • visibility(可见度)
  • 对应的排名位置

请求方式: POST接口地址: https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live

计费与调用限制

  • 本接口按请求计费
  • 参考价请以游价格换算,扣费以响应头 X-SeerMarTech-Charge-CNY 为准
  • 请求体需使用 UTF-8 编码的 JSON
  • POST 请求体格式为 JSON 数组[{ ... }]
  • 每分钟最多可发起 2000 次 API 调用
  • 最大并发请求数为 30
  • 支持通过 limitoffsetfiltersorder_by 控制返回数量、分页、筛选和排序

请求参数

任务参数字段

字段名类型说明
keywordsarray。数组,结果将基于该数组中的生成。使用 UTF-8 编码;会自动转换为小写;最多支持 200 个
location_namestring当未传 location_code 时填。地区完整名称。在 location_namelocation_code 之间二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。当前接口支持美国。示例:United States
location_codeinteger当未传 location_name 时填。地区唯一标识。在 location_namelocation_code 之间二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区。当前接口支持美国。示例:2840
language_namestring当未传 language_code 时填。语言完整名称。在 language_namelanguage_code 之间二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用语言。示例:English
language_codestring当未传 language_name 时填。语言唯一标识。在 language_namelanguage_code 之间二选一。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用语言。示例:en
include_subdomainsboolean可选。是否在搜索中子域名。设为 false 时忽略子域名。默认值:true
item_typesarray可选。限定返回的搜索结果类型统计这些类型中的竞争域名。未指定时使用默认逻辑。
limitinteger可选。返回域名的最大数量。默认值:100;最大值:1000
offsetinteger可选。结果偏移量。默认值:0。例如传 10 时,将跳过前 10 个域名,返回后续结果。
filtersarray可选。结果过滤条件数组。最多支持 8 个过滤条件。多个条件之间需使用逻辑运算符 andor。支持操作符:regexnot_regex<<=>>==<>innot_inilikenot_ilikelikenot_likematchnot_match
order_byarray可选。结果排序规则。可使用与 filters 相同的字段。排序方式支持:asc(升序)、desc(降序)。单次请求最多设置 3 条排序规则
tagstring可选。用户自定义任务标识,最大长度 255。便于在响应结果中匹请求任务。

filters

  • like / not_like / ilike / not_ilike 支持使用 % 匹任意长度字符串
  • 多条件组合时,需显式写逻辑连接符 andor
  • 过滤器详细规则可参考 /v3/dataforseo_labs/filters

示例:

json
[
 ["relevant_serp_items", ">", 0],
 "or",
 ["median_position", "in", [1, 10]]
]

order_by

示例:

json
["visibility,desc", "etv,desc"]

返回结果说明

接口返回 JSON 数据,顶层 tasks 数组。

顶层响应字段

字段名类型说明
versionstringAPI 当前版本
status_codeinteger通用状态码,完整错误码见 /v3/appendix/errors
status_messagestring通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务结果数组

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态信息
timestring任务执行耗时,单位秒
costfloat该任务费用,单位 USD
result_countintegerresult 数组中的数量
patharray请求路径
dataobject与请求中提交的参数一致
resultarray结果数组

result[] 字段

字段名类型说明
se_typestring搜索引擎类型
seed_keywordsarray请求中提交的。会返回解码后的值,+ 会还原为空格
location_codeinteger请求中的地区编码;若无数据则为 null
language_codestring请求中的语言编码;若无数据则为 null
total_countinteger数据库中与当前请求的总结果数
items_countintegeritems 数组中返回的结果数
itemsarray检测到的 SERP 竞争域名及指标

items[] 字段

字段名类型说明
se_typestring搜索引擎类型
domainstring检测到的竞争域名
avg_positioninteger指定下该域名的平均排名,即 keywords_positions 中所有排名值的算术平均数
median_positioninteger指定下该域名的排名中位数
ratinginteger排名能力评分,表示排名与理论最佳排名之间的差值,计算方式为 sum(100 - keywords_positions)
etvfloat预估流量,表示这些每月为该网站带来的预估自然流量
keywords_countinteger该域名在所给中有排名的数量
visibilityfloatSERP 可见度。排名 1-10 的分别按 10.1 计;排名 11-20 固定按 0.05 计;排名 20-100 记为 0
relevant_serp_itemsinteger与该域名的 SERP素数量
keywords_positionsobject该域名在各下的 SERP 排名位置

指标解释

rating

衡量域名在目标集合中的相对排名表现。值越高,说明该域名在更多上获得更靠前的位置。

etv

预估月度流量指标,基于搜索量与不同排名位置对应的点击率模型计算得出。

visibility

衡量域名在目标集合中的能力。该值越高,说明网站在核心的前排占位越强。

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "keywords": ["phone", "watch"],
 "language_name": "English",
 "location_code": 2840,
 "item_types": [],
 "limit": 5
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live"
payload = [
 {
 "keywords": ["phone", "watch"],
 "location_name": "United States",
 "language_name": "English",
 "filters": [
 ["relevant_serp_items", ">", 0],
 "or",
 ["median_position", "in", [1, 10]]
 ]
 }
]
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 postArray = [
 {
 keywords: ["phone", "watch"],
 language_name: "English",
 location_code: 2840,
 filters: [
 ["relevant_serp_items", ">", 0],
 "or",
 ["median_position", "in", [1, 10]]
 ]
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 },
 data: postArray
})
 .then((response) => {
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

响应示例

json
{
 "version": "0.1.20220216",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.1093 sec.",
 "cost": 0.0113,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "dataforseo_labs",
 "function": "serp_competitors",
 "se_type": "bing",
 "keywords": ["phone", "watch"],
 "language_name": "English",
 "location_code": 2840,
 "filters": [
 ["relevant_serp_items", ">", 0],
 "or",
 ["median_position", "in", [1, 10]]
 ]
 },
 "result": [
 {
 "location_code": 2840,
 "language_code": "en",
 "total_count": 13,
 "items_count": 13,
 "items": [
 {
 "se_type": "bing",
 "domain": "play.google.com",
 "avg_position": 1,
 "median_position": 1,
 "rating": 99,
 "etv": 16796,
 "keywords_count": 1,
 "visibility": 1,
 "relevant_serp_items": 1,
 "keywords_positions": {
 "phone": [1]
 }
 },
 {
 "se_type": "bing",
 "domain": "www.apple.com",
 "avg_position": 1,
 "median_position": 1,
 "rating": 99,
 "etv": 16747.36,
 "keywords_count": 1,
 "visibility": 1,
 "relevant_serp_items": 1,
 "keywords_positions": {
 "watch": [1]
 }
 },
 {
 "se_type": "bing",
 "domain": "www.bestbuy.com",
 "avg_position": 2,
 "median_position": 2,
 "rating": 98,
 "etv": 8950.5,
 "keywords_count": 1,
 "visibility": 0.9,
 "relevant_serp_items": 1,
 "keywords_positions": {
 "phone": [2]
 }
 },
 {
 "se_type": "bing",
 "domain": "www.merriam-webster.com",
 "avg_position": 3,
 "median_position": 3,
 "rating": 97,
 "etv": 5360.257,
 "keywords_count": 1,
 "visibility": 0.8,
 "relevant_serp_items": 1,
 "keywords_positions": {
 "watch": [3]
 }
 }
 ]
 }
 ]
 }
 ]
}

状态码与错误处理

  • 顶层 status_code 表示整次请求的执行状态
  • tasks[].status_code 表示单个任务的执行状态
  • 建议同时校验:
  • HTTP 状态码
  • 顶层 status_code
  • 任务级 tasks[].status_code
  • 完整错误码说明见:/v3/appendix/errors

常见成功状态:

状态码含义
20000请求成功

使用建议

  1. 数量控制在合理范围:虽然最多可传 200 个,但为了便于分析竞争结构,建议按主题或产品线拆分请求。
  2. 优使用筛选条件收敛结果:例如保留 visibility 高、relevant_serp_items 大于 0 的域名,减少无效数据。
  3. 结合排序规则输出高价值竞争对手:可按 visibility descetv desc 排序,优识别流量争夺最激烈的网站。
  4. 注意地区限制:当前接口支持美国地区。

实用场景

  • 识别竞争网站:一组核心,快速找出在 Bing 中与自身争夺的主要域名,用于竞品盘点与市场格局分析。
  • 评估竞品自然流量能力:结合 etvvisibility,判断哪些网站正在从目标中持续获取流量,为投放和 SEO 资源分提供依据。
  • 筛选高优级竞争域名:通过 filtersorder_by 提取排名靠前、可见度高的域名,便于建立重点监控名单。
  • 分析覆盖差距:利用 keywords_countkeywords_positions 观察不同域名覆盖了哪些,发现自身在词集上的空白点。
  • 监控 SERP 格局变化:定期对同一批调用接口,对比返回域名及排名指标变化,及时发现新或竞争强度上升的站点。

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