主题
On Page 任务 ID 列表
POST /v3/on_page/id_list
接口说明
/v3/on_page/id_list 用于获取指定时间范围创建的 On Page 任务 ID 列表及数据,返回结果同时已成功完成和未完成的任务。
使用限制
- 单次最多返回
1000个任务 ID - 每分钟最多可调用
10次 - 可查询最近 6 个月的任务
- 如果
include_metadata=true,则能查询最近 1 个月的任务,因为数据只保留一个月
计费说明
调用本接口不收费。 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求信息
POST https://api.seermartech.cn/v3/on_page/id_list
请求体格式
所有 POST 数据使用 JSON(UTF-8 编码),且请求体为 JSON 数组:
json
[
{
"datetime_from": "2023-01-31 00:00:00 +02:00",
"datetime_to": "2023-02-01 00:00:00 +02:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": true
}
]请求参数
| 字段名 | 类型 | 说明 |
|---|---|---|
datetime_from | string | 结果筛选的开始时间。填。当 include_metadata=true 时,最早只能设置为当前时间往前 1 个月;当 include_metadata=false 时,最早可设置为当前时间往前 6 个月。使用 UTC 时间格式:yyyy-mm-dd hh-mm-ss +00:00。示例:2023-01-15 12:57:46 +00:00 |
datetime_to | string | 结果筛选的结束时间。填。最大值为当前时间。使用 UTC 时间格式:yyyy-mm-dd hh-mm-ss +00:00。示例:2023-01-31 13:57:46 +00:00 |
limit | integer | 返回任务 ID 的最大数量。可选,默认 1000,最大 1000 |
offset | integer | 返回结果数组中的偏移量。可选,默认 0。例如设置为 10 时,会跳过前 10 个任务 |
sort | string | 按任务执行时间排序。可选,取值:"asc"、"desc";默认 asc |
include_metadata | boolean | 是否在响应中任务数据。可选,默认 false |
响应结构
接口返回 JSON 数据,顶层 tasks 数组,每个任务对象中含有对应请求的执行信息及结果。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码,完整列表参考 /v3/appendix/errors |
status_message | string | 通用状态信息,完整列表参考 /v3/appendix/errors |
time | string | 总执行耗时,单位秒 |
cost | float | 本次请求总成本,单位 USD |
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 | 任务状态说明,完整列表参考 /v3/appendix-errors/ |
time | string | 任务执行耗时,单位秒 |
cost | float | 该任务成本,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | 请求路径 |
data | object | 与请求中提交参数一致的对象 |
result | array | 返回结果数组 |
tasks[].result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID |
url | string | 发起该 API 调用时使用的 URL |
datetime_posted | string | 任务创建时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
datetime_done | string | 任务完成时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
status | string | 任务状态说明,完整列表参考 /v3/appendix-errors/ |
cost | float | 该任务成本,单位 USD |
metadata | object | 任务数据,创建任务时提交的参数;在 include_metadata=true 且任务在可用时间范围时返回 |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/on_page/id_list" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"datetime_from": "2023-01-31 00:00:00 +02:00",
"datetime_to": "2023-02-01 00:00:00 +02:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": true
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/on_page/id_list"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"datetime_from": "2023-01-31 00:00:00 +02:00",
"datetime_to": "2023-02-01 00:00:00 +02:00",
"limit": 100,
"offset": 0,
"sort": "desc",
"include_metadata": True
}
]
response = requests.post(url, json=data, headers=headers)
result = response.json
if result.get("status_code") == 20000:
print(result)
else:
print(f'error. Code: {result.get("status_code")} Message: {result.get("status_message")}')TypeScript
typescript
import axios from "axios";
const postArray = [
{
datetime_from: "2023-01-31 00:00:00 +02:00",
datetime_to: "2023-02-01 00:00:00 +02:00",
limit: 100,
offset: 0,
sort: "desc",
include_metadata: true
}
];
axios({
method: "post",
url: "https://api.seermartech.cn/v3/on_page/id_list",
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
},
data: postArray
})
.then((response) => {
// 响应结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});响应示例
json
{
"version": "0.1.20221214",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3834 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "on_page",
"function": "id_list",
"datetime_from": "2023-01-11 00:00:00 +02:00",
"datetime_to": "2023-02-10 17:47:00 +02:00",
"limit": 100,
"sort": "desc",
"include_metadata": true
},
"result": []
}
]
}状态码与错误处理
- 顶层
status_code=20000表示请求成功 - 单个任务的执行结果需结合
tasks[].status_code与tasks[].status_message判断 - 详细错误码与状态说明参考:
/v3/appendix/errors/v3/appendix-errors/
使用建议
- 需要追踪历史任务时,可按时间窗口分页拉取,结合
limit + offset遍历结果 - 如果只需要任务 ID,建议将
include_metadata保持为false,可查询更长时间范围 - 如果需要恢复任务创建时的参数,请在任务创建后的一个月使用
include_metadata=true查询
实用场景
- 回溯任务历史:按时间范围批量获取已提交的 On Page 任务 ID,便于建立任务台账与执行审计记录。
- 补拉任务结果:通过本接口找出指定周期的任务 ID,再按 ID 调用结果接口,补齐因系统中断或处理失败而遗漏的数据。
- 排查任务异常:拉取未完成或异常状态的任务,快速定位抓取失败、处理中断或调度堆积的问题。
- 恢复任务参数:开启
include_metadata后获取任务创建时的请求参数,用于复现抓取设置、比对批次差异或验证投放策略。 - 构建周期报表:按日、周、月汇总 On Page 任务数量、完成时间与成本,支持 SEO 运维与资源消耗分析。