主题
通过任务 ID 获取 Bing 自然搜索常规结果
接口说明
用于根据已创建任务的 id,获取 Bing 自然搜索(Regular)结果。
请求方式
GET https://api.seermartech.cn/v3/serp/wp/v2/task_get/regular/$id
说明:原始页面标题为 Bing,但正文示例路径中同时出现了
/v3/serp/wp/v2/...与/v3/serp/bing/organic/...。如需与已创建任务保持一致,请以任务返回的可用 endpoint 或任务所属搜索引擎路径为准。
计费说明
该接口本身不重复计费。费用在创建任务时产生;任务结果在 30 天 可反复获取。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
路径参数
| 参数名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。任务创建后,可在 30 天随时通过该 ID 获取结果。 |
沙盒测试
可使用沙盒端点获取完整字段结构的模拟数据,调用沙盒不会产生费用。
示例:
https://api.seermartech.cn/v3/serp/bing/organic/task_get/regular/00000000-0000-0000-0000-000000000000
沙盒响应会返回该端点下可用的字段,但字段值为模拟。
响应结构
接口返回 JSON,对象中 tasks 数组。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态信息 |
time | string | 接口执行耗时,单位秒 |
cost | float | 本次请求的总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数 |
tasks | array | 任务结果数组 |
建议在接时建立完整的异常处理机制,并根据
status_code、status_message做错误分流处理。
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时 |
cost | float | 该任务费用,单位 USD |
result_count | integer | result 数组中的结果数 |
path | array | 请求路径 |
data | object | 与创建任务时 POST 请求中传的参数一致 |
result | array | 结果数组 |
result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | POST 请求中提交的;返回时会对 %## 进行解码,+ 会被还原为空格 |
type | string | POST 请求中的搜索引擎类型 |
se_domain | string | POST 请求中的搜索引擎域名 |
location_code | integer | POST 请求中的地区编码 |
language_code | string | POST 请求中的语言编码 |
check_url | string | 搜索结果直达链接,可用于人工核验结果准确性 |
datetime | string | 结果抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
spell | object | 搜索引擎自动纠错信息 |
refinement_chips | object | 搜索细分建议;该端点中通常为 null |
item_types | array | 当前 SERP 中出现的结果类型,如 organic、paid |
se_results_count | integer | SERP 结果总数 |
pages_count | integer | 抓取到的结果页总数 |
items_count | integer | items 数组中的数量 |
items | array | SERP 结果项数组 |
spell 字段
当搜索引擎对进行了自动纠错时,会返回该对象。
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | 搜索引擎纠正后的 |
type | string | 纠错类型,可能值:including_results_for |
SERP素说明
organic 自然结果
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 固定为 organic |
rank_group | integer | 分组排名在相同 type 组计数 |
rank_absolute | integer | SERP局绝对排名 |
page | integer | 所在搜索结果页码 |
domain | string | 结果域名 |
title | string | 标题 |
description | string | 描述摘要 |
url | string | 结果链接 |
breadcrumb | string | 面屑路径 |
paid 付费结果
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 固定为 paid |
rank_group | integer | 分组排名在相同 type 组计数 |
rank_absolute | integer | 结果页中的绝对排名 |
page | integer | 所在搜索结果页码 |
domain | string | 广告域名 |
title | string | 广告标题 |
description | string | 广告描述 |
url | string | 广告链接 |
breadcrumb | string | 广告面屑 |
related_searches 搜索
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 固定为 related_searches |
rank_group | integer | 分组排名 |
rank_absolute | integer | 局绝对排名 |
page | integer | 所在搜索结果页码 |
items | array | 搜索词列表,通常 8 个查询词 |
请求示例
cURL
bash
id="09171517-0696-0242-0000-a96bc1ad0bce"
curl --location --request GET "https://api.seermartech.cn/v3/serp/wp/v2/task_get/regular/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02231256-2604-0066-2000-57133b8fc54e"
url = f"https://api.seermartech.cn/v3/serp/bing/organic/task_get/regular/{task_id}"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
result = response.json
# 输出返回结果
print(result)TypeScript
typescript
import axios from "axios";
const taskId = "02231256-2604-0066-2000-57133b8fc54e";
axios({
method: "get",
url: "https://api.seermartech.cn/v3/serp/bing/organic/task_get/regular/" + taskId,
headers: {
"Authorization": "Bearer smt_live_YOUR_KEY",
"content-type": "application/json"
}
}).then(function (response) {
// 输出结果数据
console.log(response.data);
}).catch(function (error) {
console.error(error);
});结合 tasks_ready 拉取已完成任务
使用中,通常调用已完成任务列表接口,再逐个获取结果。
Python 示例
python
import requests
base_url = "https://api.seermartech.cn"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_resp = requests.get(
base_url + "/v3/serp/wp/v2/tasks_ready",
headers=headers
)
ready_data = ready_resp.json
results = []
if ready_data.get("status_code") == 20000:
for task_group in ready_data.get("tasks", []):
for task in task_group.get("result", []) if isinstance(task_group, dict) else []:
endpoint = task.get("endpoint_regular")
task_id = task.get("id")
# 2. 通过返回的 endpoint 获取结果
if endpoint:
r = requests.get(base_url + endpoint, headers=headers)
results.append(r.json)
# 3. 或通过任务 ID 直接拼接路径获取
# if task_id:
# r = requests.get(
# base_url + f"/v3/serp/wp/v2/task_get/regular/{task_id}",
# headers=headers
# )
# results.append(r.json)
print(results)
else:
print("error:", ready_data.get("status_code"), ready_data.get("status_message"))响应示例
json
{
"version": "0.1.20220104",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0432 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "02231256-2604-0066-2000-57133b8fc54e",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0211 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"serp",
"bing",
"organic",
"task_get",
"regular",
"02231256-2604-0066-2000-57133b8fc54e"
],
"data": {
"api": "serp",
"function": "task_get",
"se": "bing",
"se_type": "organic",
"language_code": "en",
"location_code": 2840,
"keyword": "albert einstein",
"depth": 10,
"tag": "some_string_123",
"device": "desktop",
"os": "windows"
},
"result": [
{
"keyword": "albert einstein",
"type": "organic",
"se_results_count": 0,
"pages_count": 1,
"items_count": 9,
"items": []
}
]
}
]
}状态码说明
| 状态码 | 说明 |
|---|---|
20000 | 请求成功 |
10000-60000 | 任务级状态码范围,含义请结合响应中的 status_message 判断 |
如任务未完成、参数有误、授权失败或处理异常,接口会返回相应状态码与错误信息。建议在业务侧至少处理以下:
- 顶层
status_code非20000 tasks_error大于0- 单个任务
status_code大于等于40000 result为空或不存在
使用建议
- 优通过
/v3/serp/.../tasks_ready获取已完成任务,再按endpoint_regular获取结果。 - 若系统中已保存任务 ID,也可直接请求
/v3/serp/.../task_get/regular/$id。 - 建议保存
check_url,便于抽样校验 SERP 数据。 - 若可能触发拼写纠错,请
spell.keyword,分析时将纠错词与原词混淆。
实用场景
- 监控排名:按任务 ID 回查 Bing SERP,持续跟踪目标的自然排名和页面波动。
- 复核广告竞争态势:提取
paid结果,识别竞品是否在目标词上投放广告以及广告文案变化。 - 校验抓取结果准确性:利用
check_url回放搜索结果页,支持质检、异常排查和人工复核。 - 分析搜索纠错影响:结合
spell字段识别被自动纠正的,误判真实搜索意图。 - 挖掘搜索机会:读取
related_searches中的查询词,为扩词、专题规划和长尾词布局提供依据。