主题
backlinks/bulk_spam_score/live
POST /v3/backlinks/bulk_spam_score/live
批量查询垃圾评分
POST /v3/backlinks/bulk_spam_score/live
本接口用于批量查询指定域名、子域名或网页的垃圾评分(Spam Score)。您可以在 targets 数组中一次提交最多 1000 个目标。
垃圾评分是本平台提供的指标,用于衡量目标的垃圾风险,取值范围为 0–100。分数越高,通常表示目标越高的垃圾信号风险。
每次请求都会产生费用。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
所有 POST 请求体使用 UTF-8 编码的 JSON 格式。每次 Live API 请求只能一个任务,单个任务最多提交 1000 个目标。平台限流以认证说明中的 30/60/120 次/分钟规则为准,同时发送的请求数最多为 30 个。
请求参数
请求体结构
请求体是 JSON 数组:
json
[
{
"targets": [
"example.com",
"sub.example.com",
"https://example.com/page/"
],
"tag": "bulk-spam-score-001"
}
]任务参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
targets | array | 是 | 需要查询垃圾评分的域名、子域名或网页列表,最多 1000 个。 |
tag | string | 否 | 用户自定义的任务标识,最多 255 个字符。该值会原样返回在响应任务的 data 对象中,可用于请求与结果。 |
targets 格式要求
- 域名或子域名不得
https://和www.。 - 网页使用完整绝对 URL,并
http://或https://。 - 域名、子域名和网页可以混合提交。
示例:
json
[
{
"targets": [
"forbes.com",
"cnn.com",
"bbc.com",
"yelp.com",
"https://www.apple.com/iphone/",
"https://ahrefs.com/blog/",
"ibm.com",
"https://variety.com/",
"https://stackoverflow.com/",
"trustpilot.com"
]
}
]响应结构
接口返回 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 | 任务结果数组。 |
任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
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 | 与 POST 请求中提交的任务参数相同。 |
result | array | 任务结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
items_count | integer | items 数组中的结果数量。 |
items | array | 目标及垃圾评分数据。 |
items 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 结果类型,固定为 backlinks_bulk_spam_score。 |
target | string | 请求中提交的域名、子域名或网页。 |
spam_score | integer | 目标的平均垃圾评分,取值范围为 0–100。 |
如需根据评分制定风险分层策略,请结合业务规则、链接质量、域名历史和 SEO 指标综合判断,不建议依据单一评分做出结论。
请求示例
cURL
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/backlinks/bulk_spam_score/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"targets": [
"forbes.com",
"cnn.com",
"https://www.apple.com/iphone/"
],
"tag": "bulk-spam-score-001"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/backlinks/bulk_spam_score/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
post_data = [
{
"targets": [
"forbes.com",
"cnn.com",
"https://www.apple.com/iphone/",
],
"tag": "bulk-spam-score-001",
}
]
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 postData = [
{
targets: [
"forbes.com",
"cnn.com",
"https://www.apple.com/iphone/",
],
tag: "bulk-spam-score-001",
},
];
axios
.post(
"https://api.seermartech.cn/v3/backlinks/bulk_spam_score/live",
postData,
{
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);
});PHP
php
<?php
$url = 'https://api.seermartech.cn/v3/backlinks/bulk_spam_score/live';
$postData = [
[
'targets' => [
'forbes.com',
'cnn.com',
'https://www.apple.com/iphone/',
],
'tag' => 'bulk-spam-score-001',
],
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer smt_live_YOUR_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($postData, JSON_UNESCAPED_SLASHES),
]);
$response = curl_exec($ch);
if ($response === false) {
throw new Exception(curl_error($ch));
}
curl_close($ch);
$result = json_decode($response, true);
if (($result['status_code'] ?? null) === 20000) {
print_r($result);
} else {
printf(
"请求失败,状态码:%s,消息:%s\n",
$result['status_code'] ?? 'unknown',
$result['status_message'] ?? 'unknown'
);
}C#
csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
public class BulkSpamScoreDemo
{
public static async Task Main()
{
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "smt_live_YOUR_KEY");
var postData = new[]
{
new
{
targets = new[]
{
"forbes.com",
"cnn.com",
"https://www.apple.com/iphone/"
},
tag = "bulk-spam-score-001"
}
};
var json = JsonSerializer.Serialize(postData);
using var content = new StringContent(
json,
Encoding.UTF8,
"application/json"
);
var response = await httpClient.PostAsync(
"https://api.seermartech.cn/v3/backlinks/bulk_spam_score/live",
content
);
var responseText = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
Console.WriteLine(responseText);
}
else
{
Console.WriteLine(
$"HTTP 请求失败:{response.StatusCode}\n{responseText}"
);
}
}
}响应示例
json
{
"version": "0.1.20220819",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.4822 sec.",
"cost": 0.0203,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "0821f9a1-7b7d-4a5f-9a0a-123456789abc",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.4211 sec.",
"cost": 0.0203,
"result_count": 1,
"path": [
"v3",
"backlinks",
"bulk_spam_score",
"live"
],
"data": {
"api": "backlinks",
"function": "bulk_spam_score",
"targets": [
"forbes.com",
"cnn.com",
"https://www.apple.com/iphone/"
],
"tag": "bulk-spam-score-001"
},
"result": [
{
"items_count": 3,
"items": [
{
"type": "backlinks_bulk_spam_score",
"target": "forbes.com",
"spam_score": 12
},
{
"type": "backlinks_bulk_spam_score",
"target": "cnn.com",
"spam_score": 8
},
{
"type": "backlinks_bulk_spam_score",
"target": "https://www.apple.com/iphone/",
"spam_score": 15
}
]
}
]
}
]
}状态码与异常处理
- 顶层
status_code用于判断整个请求是否成功。 - 任务级
status_code用于判断任务是否成功。 20000表示请求成功。- 当
tasks_error大于 0 时,应逐一检查对应任务的status_code和status_message。 - 建议在客户端实现时、网络异常、HTTP 错误和业务状态码错误的处理逻辑。
- 发生费用问题时,应优读取响应头
X-SeerMarTech-Charge-CNY,以该字段作为人民币扣费依据。
实用场景
- 筛查外链合作候选域名:批量评估潜在合作网站的垃圾评分,降低高风险外链建设和品牌联名风险。
- 理低质量外链:对站点现有的引荐域名或重点页面进行批量评分,为拒绝链接和人工审查提供优级依据。
- 监控供应商网络质量:定期检查 SEO 供应商提交的域名列表,及时发现评分异常升高的目标。
- 建立域名风险分层:将大量域名按垃圾评分划分为低、中、高风险组,链接资产管理和投放决策。
- 评估收购或迁移目标:在域名收购、站点迁移或品牌更名前检查目标域名风险,减少历史垃圾信号对 SEO 的潜在影响。