Skip to content

dataforseo_labs/bing/serp_competitors/live

GET /v3/dataforseo_labs/locations_and_languages

SERP 竞争对手

POST https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live

本接口根据指定,返回在 Bing 搜索结果中排名的域名列表,以及这些域名的平均排名、中位数排名、评级、预估流量和搜索可见度等数据。

请求体使用 UTF-8 编码的 JSON 格式,并以 JSON 数组提交任务参数:

json
[
  {
    "keywords": ["phone", "watch"],
    "location_name": "United States",
    "language_name": "English"
  }
]

单个请求最多可提交 200 个。平台限流以认证说明中的 30/60/120 次/分钟规则为准,同时进行的请求数最多为 30 个。

计费说明

每次请求均会产生费用。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。


请求参数

每个任务对象支持以下字段。

参数类型说明
keywordsarray用于查询的数组。使用 UTF-8 编码,平台会将转换为小写格式。单个任务最多支持 200 个。
location_namestring条件填地区完整名称。未指定 location_code 时填。当前接口支持美国地区。示例:United States
location_codeinteger条件填地区唯一标识。未指定 location_name 时填。当前接口支持美国地区。示例:2840
language_namestring条件填语言完整名称。未指定 language_code 时填。示例:English
language_codestring条件填语言唯一标识。未指定 language_name 时填。示例:en
include_subdomainsboolean是否在搜索中子域名。设置为 false 时忽略子域名。默认值:true
item_typesarray要纳统计的搜索结果类型。可用值取决于平台 API 支持范围;未指定时使用默认结果类型。
limitinteger返回的最大域名数量。默认值:100,最大值:1000
offsetinteger返回结果的偏移量。默认值:0。例如设置为 10 时,跳过结果数组中的前 10 个域名。
filtersarray结果过滤条件。最多可同时设置 8 个过滤器,条件之间使用 andor 连接。
order_byarray结果排序规则。可使用与 filters 相同的字段和运算符。最多设置 3 条排序规则。
tagstring用户自定义任务标识,最大长度为 255 个字符。该值会原样返回在响应的 data 对象中。

地区与语言参数

location_namelocation_code 二选一;language_namelanguage_code 二选一。

可通过以下接口获取可用的地区和语言:

text
GET https://api.seermartech.cn/v3/dataforseo_labs/locations_and_languages

filters 过滤器

支持的运算符:

text
regex
not_regex
<
<=
>
>=
=
<>
in
not_in
ilike
not_ilike
like
not_like
match
not_match

使用 likenot_likeilikenot_ilike 时,可以使用 % 匹零个或多个字符。

示例:

json
"filters": [
  ["relevant_serp_items", ">", 0],
  "and",
  ["median_position", "in", [1, 10]]
]

order_by 排序规则

排序方向支持:

  • asc:升序
  • desc:降序

多个排序规则使用逗号分隔,最多支持 3 条规则。例如:

json
"order_by": [
  "etv,desc",
  "avg_position,asc"
]

响应字段

接口返回 JSON 对象 tasks 数组。

顶层响应字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger请求的通用状态码。20000 表示成功。
status_messagestring请求的通用说明信息。
timestring请求执行耗时,单位为秒。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量。
tasks_errorintegertasks 数组中执行失败的任务数量。
tasksarray任务结果数组。

任务字段

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

result 字段

字段类型说明
se_typestring搜索引擎类型,本接口返回 bing
seed_keywordsarray请求中提交的。返回时会对编码后的字符进行解码,字符 + 会解码为空格。
location_codeinteger请求中的地区代码。无数据时为 null
language_codestring请求中的语言代码。无数据时为 null
total_countinteger数据库中与请求条件的结果总数。
items_countintegeritems 数组返回的结果数量。
itemsarray检测到的 SERP 竞争对手及数据。

items 字段

字段类型说明
se_typestring搜索引擎类型。
domainstring检测到的 SERP 竞争对手域名。
avg_positioninteger域名针对指定的平均排名,即 keywords_positions 中排名值的算术平均值。
median_positioninteger域名针对指定的排名中位数。
ratinginteger排名可见度评级,计算方式为 sum(100 - keywords_positions)
etvfloat预估流量,表示指定预计每月为该网站带来的流量。该指标根据搜索量与在对应排名位置的点击率计算。
keywords_countinteger该域名在 SERP 中排名的指定数量。
visibilityfloatSERP 可见度。排名在 1~10 位的分别获得 1~0.1 的可见度指数;排名在 11~20 位时固定为 0.05;排名在 20~100 位时为 0。
relevant_serp_itemsinteger与该域名的 SERP素数量。
keywords_positionsobject排名映射,记录该域名针对各指定的 SERP 排名。

请求示例

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"],
      "location_name": "United States",
      "language_name": "English",
      "filters": [
        ["relevant_serp_items", ">", 0],
        "or",
        ["median_position", "in", [1, 10]]
      ],
      "limit": 5
    }
  ]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live"

headers = {
    "Authorization": "Bearer smt_live_YOUR_KEY",
    "Content-Type": "application/json",
}

post_data = [
    {
        "keywords": ["phone", "watch"],
        "location_name": "United States",
        "language_name": "English",
        "filters": [
            ["relevant_serp_items", ">", 0],
            "or",
            ["median_position", "in", [1, 10]],
        ],
        "limit": 5,
    }
]

response = requests.post(url, headers=headers, json=post_data)
result = response.json()

if result.get("status_code") == 20000:
    print(result)
else:
    print(
        "请求失败。状态码:%s,信息:%s"
        % (result.get("status_code"), result.get("status_message"))
    )

TypeScript

typescript
import axios from "axios";

const postArray = [
  {
    keywords: ["phone", "watch"],
    location_name: "United States",
    language_name: "English",
    filters: [
      ["relevant_serp_items", ">", 0],
      "or",
      ["median_position", "in", [1, 10]],
    ],
    limit: 5,
  },
];

axios
  .post(
    "https://api.seermartech.cn/v3/dataforseo_labs/bing/serp_competitors/live",
    postArray,
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    // 处理响应数据
    console.log(response.data);
  })
  .catch((error) => {
    // 处理请求错误
    console.error(error.response?.data || error.message);
  });

响应示例

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": [
    {
      "id": "01234567-89ab-cdef-0123-456789abcdef",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.0950 sec.",
      "cost": 0.0113,
      "result_count": 1,
      "path": [
        "v3",
        "dataforseo_labs",
        "bing",
        "serp_competitors",
        "live"
      ],
      "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]]
        ],
        "limit": 5
      },
      "result": [
        {
          "se_type": "bing",
          "seed_keywords": ["phone", "watch"],
          "location_code": 2840,
          "language_code": "en",
          "total_count": 13,
          "items_count": 5,
          "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": {
                "watch": 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
              }
            }
          ]
        }
      ]
    }
  ]
}

状态码与异常处理

请根据顶层 status_code 以及每个任务中的 status_code 判断请求和任务是否成功。建议客户端同时处理以下:

  • HTTP 请求失败;
  • 顶层 status_code20000
  • tasks_error 大于 0
  • 单个任务的 status_code 非成功状态;
  • result 为空或返回结果数量少于预期。

完整状态码应以本平台的错误码说明为准。

实用场景

  • 识别目标的主要排名域名,快速建立 Bing SERP 竞争对手名单,为竞品研究和市场分析提供数据基础。
  • 比较竞争域名的平均排名与中位数排名,定位排名更稳定的竞争对手,制定和外链优化策略。
  • etvvisibilitykeywords_count 筛选竞争对手,优分析能够获得较高搜索流量和可见度的网站。
  • 通过 keywords_positions 反查排名归属,发现竞争对手覆盖而自身未覆盖的,扩展 SEO选题。
  • 使用 limitoffsetfiltersorder_by 分页整理结果,构建可复用的竞品排名监控和报表系统。

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