主题
反向链接竞争对手分析
POST /v3/backlinks/competitors/live
本接口通过分析目标网站的反向链接画像,返回与部分反向链接来源的竞争对手域名、反向链接交集数量及竞争对手排名。
HTTP 方法: POST
接口路径: /v3/backlinks/competitors/live
完整 URL: https://api.seermartech.cn/v3/backlinks/competitors/live
计费说明
本接口按请求计费。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求体使用 UTF-8 编码的 JSON 格式,并将任务参数放顶层 JSON 数组中。每次 Live API 请求只能一个任务。
平台限流以认证说明中的 30/60/120 次/分钟规则为准
- 同时发送的请求数最多为 30 个
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
target | string | 填。 用于获取竞争对手域名的目标对象。可以是域名、子域名或网页。<br><br>域名或子域名不能 https:// 和 www.;网页使用 http:// 或 https:// 的绝对 URL。 |
limit | integer | 返回的最大竞争对手域名数量。<br><br>可选,默认值:100;最大值:1000。 |
offset | integer | 结果数组的偏移量。<br><br>可选,默认值:0。例如设置为 10 时,将跳过前 10 条结果并返回后续数据,适用于分页。 |
filters | array | 结果过滤条件数组。<br><br>可选,最多支持 8 个过滤条件。多个条件之间使用逻辑运算符 and 或 or。支持的运算符:regex、not_regex、=、<>、in、not_in、like、not_like、ilike、not_ilike、match、not_match。<br><br>使用 like 或 not_like 时,可使用 % 匹任意长度的字符串。 |
order_by | array | 结果排序规则。<br><br>可选。可使用与 filters 相同的字段和值进行排序。排序格式为 字段,排序方向,排序方向为 asc 或 desc。单次请求最多设置 3 条排序规则,多条规则使用逗号分隔。 |
main_domain | boolean | 是否分析 target 的主域名。<br><br>true:分析主域名;false:分析更的目标范围。默认值:true。 |
exclude_large_domains | boolean | 是否排除大型域名。<br><br>true:排除大型域名的数据;false:返回大型域名。默认值:true。 |
exclude_internal_backlinks | boolean | 是否排除来自目标同一主域名下子域名的反向链接。<br><br>true:排除反向链接;false:反向链接。默认值:true。 |
rank_scale | string | 指定 rank、domain_from_rank 和 page_from_rank 的计算及展示范围。<br><br>one_hundred:按 0–100 展示;<br>one_thousand:按 0–1000 展示。默认值:one_thousand。 |
tag | string | 用户自定义的任务标识,用于请求与响应。<br><br>可选,最大长度为 255 个字符。响应中可在 data 对象获取该值。 |
filters 格式
过滤条件通常表示为:
json
[
["rank", ">", 100],
"and",
["target", "like", "%.example.com"]
]完整的过滤字段和表达式以本平台的过滤规则为准。
order_by 格式
json
[
"rank,desc",
"intersections,desc"
]请求示例
cURL
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/backlinks/competitors/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"target": "example.com",
"filters": [
["rank", ">", 100]
],
"order_by": [
"rank,desc"
],
"limit": 5
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/backlinks/competitors/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"target": "example.com",
"filters": [
["rank", ">", 100]
],
"order_by": [
"rank,desc"
],
"limit": 5,
}
]
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
"请求失败,错误码:{},消息:{}".format(
result.get("status_code"),
result.get("status_message"),
)
)TypeScript
typescript
import axios from "axios";
const response = await axios.post(
"https://api.seermartech.cn/v3/backlinks/competitors/live",
[
{
target: "example.com",
filters: [["rank", ">", 100]],
order_by: ["rank,desc"],
limit: 5,
},
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const result = response.data;
if (result.status_code === 20000) {
console.log(result);
} else {
console.error(
`请求失败,错误码:${result.status_code},消息:${result.status_message}`
);
}响应结构
接口返回 JSON 对象 tasks 数组本次请求中各任务的处理结果。
顶层响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用响应状态码。20000 表示请求成功。完整错误码请参考错误码文档。 |
status_message | string | 通用状态说明。 |
time | string | 请求执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | tasks 数组中处理失败的任务数量。 |
tasks | array | 任务结果数组。 |
tasks 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。 |
status_code | integer | 当前任务的状态码,通常为 10000–60000 范围的整数。 |
status_message | string | 当前任务的状态说明。 |
time | string | 当前任务的执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 当前请求的 URL 路径。 |
data | object | 请求中提交的任务参数。 |
result | array | 当前任务的结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
total_count | integer | 数据库中符合条件的结果总数。 |
items_count | integer | items 数组中的结果数量。 |
items | array | 竞争对手结果列表。 |
items 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 结果类型,固定为 backlinks_competitors。 |
target | string | 竞争对手域名。 |
rank | integer | 竞争对手域名排名。该排名基于链接数据库中的节点排名方法计算,用于衡量域名在数据库域名中的相对排名。 |
intersections | integer | 竞争对手与请求中 target 的反向链接数量。 |
响应示例
json
{
"version": "0.1.20220720",
"status_code": 20000,
"status_message": "Ok.",
"time": "4.9002 sec.",
"cost": 0.0203,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000001",
"status_code": 20000,
"status_message": "Ok.",
"time": "4.8500 sec.",
"cost": 0.0203,
"result_count": 1,
"path": [
"v3",
"backlinks",
"competitors",
"live"
],
"data": {
"api": "backlinks",
"function": "competitors",
"target": "example.com",
"main_domain": true,
"exclude_large_domains": true,
"exclude_internal_backlinks": true,
"order_by": [
"rank,desc"
],
"filters": [
[
"rank",
">",
100
]
],
"limit": 10
},
"result": [
{
"total_count": 245,
"items_count": 1,
"items": [
{
"type": "backlinks_competitors",
"target": "competitor.example",
"rank": 842,
"intersections": 128
}
]
}
]
}
]
}错误处理
建议在业务系统中同时检查以下状态字段:
- 顶层
status_code - 顶层
status_message - 每个任务中的
status_code - 每个任务中的
status_message tasks_error
当 status_code 不等于 20000 时,应根据错误码和错误消息执行重试、参数修正或异常记录。
实用场景
- 发现链接来源:识别与目标网站拥有相似反向链接来源的竞争对手,扩展竞品研究范围。
- 评估竞争对手强度:结合
rank和intersections衡量竞争对手的域名影响力及链接重合程度,为 SEO 竞争排序提供依据。 - 挖掘外链建设机会:对比多个竞争对手的链接来源,筛选潜在的媒体、目录和行业网站资源。
- 排除无效竞品数据:通过
exclude_large_domains和exclude_internal_backlinks过滤大型平台及链接,提升竞争对手列表的业务性。 - 构建竞品监控报表:使用
offset、limit、order_by和filters分页获取并排序结果,定期跟踪竞争对手反向链接画像变化。