主题
SERP 已完成任务列表(tasks_ready)
GET /v3/serp/tasks_ready
本接口用于获取已完成但尚未领取的 SERP 任务列表。HTTP 方法与接口路径如下:
GET /v3/serp/wp/v2/tasks_readyGET /v3/serp/$se/tasks_readyGET /v3/serp/tasks_ready
,$se 为搜索引擎名称。接口返回已完成任务的 id 以及对应的结果领取地址,随后可使用返回的结果接口获取任务。
> 如果创建任务时指定了 postback_url,任务通常不会出现在本列表中。只有当本平台向您的服务器推送失败,且服务器返回小于 200 或大于 300 的 HTTP 状态码时,该任务才可能重新出现在列表中。
使用限制
- 获取任务列表不会产生额外费用。
- 每个任务在成功领取前都会保留在列表中。
- 每分钟最多调用 20 次。
- 每次调用最多返回过去 3 天完成的 1000 个任务。
- 已经领取的任务不会再次返回。
- 完成 3 天仍未领取的任务不会出现在列表中。
- 由于系统架构原因,已完成任务队列可能存在少量更新延迟。
- 如需每分钟领取 1000 个任务,建议优使用回调机制,并将本接口用于补偿查询回调失败的任务。
本接口本身不产生任务扣费;如需统一处理费用信息,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求
请求头
http
Authorization: Bearer smt_live_YOUR_KEY
Content-Type: application/jsoncURL
bash
curl --location --request GET \
"https://api.seermartech.cn/v3/serp/wp/v2/tasks_ready" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"除 wp/v2 外,也可以替换为受支持的搜索引擎和搜索引擎类型,例如:
text
GET https://api.seermartech.cn/v3/serp/$se/tasks_readyPython
python
import requests
url = "https://api.seermartech.cn/v3/serp/wp/v2/tasks_ready"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
result = response.json()
if result.get("status_code") == 20000:
print(result)
# 根据 tasks.result 中的 endpoint_* 地址领取任务结果
else:
print(
"请求失败。错误码:{},错误信息:{}".format(
result.get("status_code"),
result.get("status_message"),
)
)TypeScript
typescript
import axios from "axios";
async function getReadyTasks() {
try {
const response = await axios.get(
"https://api.seermartech.cn/v3/serp/wp/v2/tasks_ready",
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const result = response.data;
if (result.status_code === 20000) {
console.log(result);
// 根据 tasks.result 中的 endpoint_* 地址领取任务结果
} else {
console.error(
`请求失败。错误码:${result.status_code},错误信息:${result.status_message}`
);
}
} catch (error) {
console.error("HTTP 请求失败:", error);
}
}
getReadyTasks();响应结构
接口返回 JSON 数据 tasks 为任务信息数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 请求级状态码。完整错误码请参考 /v3/appendix/errors |
status_message | string | 请求级提示信息。完整提示信息请参考 /v3/appendix/errors |
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。完整错误码请参考 /v3/appendix/errors |
status_message | string | 任务级提示信息 |
time | string | 任务执行耗时,单位为秒 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量 |
path | array | 请求路径 |
data | object | 创建任务时传的请求参数 |
result | array | 已完成任务信息数组 |
tasks.result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 已完成任务的唯一标识,UUID 格式 |
se | string | 创建任务时指定的搜索引擎 |
se_type | string | 搜索引擎类型,例如 v2 |
date_posted | string | 任务提交时间,UTC 格式 |
tag | string | 用户自定义任务标识 |
endpoint_regular | string | null | SERP Regular 结果领取地址。如果当前接口不支持该类型,则为 null |
endpoint_advanced | string | null | SERP Advanced 结果领取地址。如果当前接口不支持该类型,则为 null |
endpoint_html | string | null | SERP HTML 结果领取地址。如果当前接口不支持该类型,则为 null |
响应示例
json
{
"version": "0.1.20200129",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2270 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2270 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"serp",
"wp",
"v2",
"tasks_ready"
],
"data": {
"api": "serp",
"function": "tasks_ready",
"se": "wp",
"se_type": "v2"
},
"result": [
{
"id": "11111111-1111-1111-1111-111111111111",
"se": "wp",
"se_type": "v2",
"date_posted": "2020-01-29 12:00:00 +00:00",
"tag": "example-task",
"endpoint_regular": "/v3/serp/wp/v2/task_get/regular/11111111-1111-1111-1111-111111111111",
"endpoint_advanced": "/v3/serp/wp/v2/task_get/advanced/11111111-1111-1111-1111-111111111111",
"endpoint_html": "/v3/serp/wp/v2/task_get/html/11111111-1111-1111-1111-111111111111"
}
]
}
]
}状态码与异常处理
建议客户端至少处理以下:
- 顶层
status_code不等于20000:请求级失败。 tasks_error大于0:部分任务返回错误,需要逐项检查tasks.status_code。result为空:当前没有可领取的已完成任务,或任务队列尚未完成同步。endpoint_regular、endpoint_advanced或endpoint_html为null:对应结果类型在当前接口中不受支持。- 任务完成 3 天仍未领取:该任务可能已从已完成任务队列中移除。
实用场景
- 轮询已完成任务:定期获取尚未领取的 SERP 任务 ID,及时拉取排名结果,支撑批量监控。
- 补偿失败回调任务:筛选因业务服务器异常而未成功接收的任务, SERP 数据丢失。
- 批量领取搜索结果:根据
endpoint_regular、endpoint_advanced和endpoint_html分流处理不同格式的 SERP 数据。 - 构建任务调度队列:结合
date_posted、tag和任务状态,按项目、时间或客户维度安排结果采集。 - 监控数据采集异常:统计
tasks_error和任务级状态码,定位搜索引擎、参数或结果领取环节的问题。