Skip to content

获取 OnPage Lighthouse 已完成任务列表

接口说明

/v3/on_page/lighthouse/tasks_ready 用于获取已执行完成但尚未被获取结果的任务列表。

如果你使用标准提交方式,且未设置 postback_url,可以通过本接口获取所有已完成任务的 id,再使用对应的 Task GET 结果接口拉取详细结果。

如需了解任务完成机制与已完成任务的获取方式,可参考文档中的任务完成说明。

请求方式

GET https://api.seermartech.cn/v3/on_page/lighthouse/tasks_ready

计费与调用限制

  • 获取已完成任务列表不收费
  • 每分钟最多可调用 20 次
  • 每次调用最多返回 1000 个任务
  • 返回最近 3 天完成尚未被拉取的任务
  • 已成功拉取过结果的任务,不会再次出现在列表中
  • 任务完成后若 3 天未拉取,也不会继续保留在列表中

postback_url

如果任务提交时设置了 postback_url,该任务通常不会出现在已完成任务列表中

只有在向你的服务器回调失败时,该任务才可能此列表。型:

  • 你的服务器请求失败
  • 你的服务器返回的 HTTP 状态码 小于 200大于 300

响应结构

接口返回 JSON 数据,顶层 tasks 数组每个任务对象都当前批次任务的状态与结果信息。

顶层字段

字段名类型说明
versionstring当前 API 版本
status_codeinteger接口整体状态码;完整错误码见 /v3/appendix/errors
status_messagestring接口整体状态信息;完整说明见 /v3/appendix/errors
timestring接口执行耗时,单位秒
costfloat本次请求总成本,USD;本接口通常为 0,扣费以响应头 X-SeerMarTech-Charge-CNY 为准
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中返回错误的任务数量
tasksarray任务数组

建议在接时完善异常处理与重试机制,以应对状态码异常、网络失败或部分任务出错等。

tasks 数组字段

字段名类型说明
idstring当前请求任务的唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000;完整状态码见 /v3/appendix/errors
status_messagestring任务状态说明
timestring任务执行耗时,单位秒
costfloat当前任务成本,USD;扣费以响应头 X-SeerMarTech-Charge-CNY 为准
result_countintegerresult 数组中的数量
patharrayURL 路径
dataobject当前请求 URL 中携带的参数信息
resultarray已完成任务列表

result 数组字段

字段名类型说明
idstring已完成任务的任务 ID,UUID 格式
tagstring用户自定义任务标识
endpoint_jsonstring用于拉取 OnPage Lighthouse JSON 结果的接口地址

请求示例

cURL

bash
curl --location --request GET "https://api.seermartech.cn/v3/on_page/lighthouse/tasks_ready" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"

Python

python
import requests

url = "https://api.seermartech.cn/v3/on_page/lighthouse/tasks_ready"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

# 获取已完成但尚未拉取的 Lighthouse 任务列表
response = requests.get(url, 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";

// 获取已完成但尚未拉取的 Lighthouse 任务列表
axios({
 method: "get",
 url: "https://api.seermartech.cn/v3/on_page/lighthouse/tasks_ready",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 }
})
 .then(function (response) {
 console.log(response.data);
 })
 .catch(function (error) {
 console.log(error);
 });

响应示例

json
{
 "version": "0.1.20210713",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.2064 sec.",
 "cost": 0,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "on_page",
 "function": "lighthouse"
 },
 "result": []
 }
 ]
}

使用建议

型处理流程如下:

  1. 调用 /v3/on_page/lighthouse/tasks_ready 获取最近 3 天已完成、尚未拉取的任务列表
  2. result 中提取每个任务的 idendpoint_json
  3. 调用对应的 Task GET 结果接口拉取完整 Lighthouse 分析结果
  4. 成功库后,将任务标记为已处理,重复抓取

错误处理建议

建议重点处理以下:

  • status_code20000:说明本次接口调用未成功
  • tasks_error 大于 0:说明部分任务返回异常
  • result 为空:说明当前没有可拉取的已完成任务
  • 回调模式下任务未收到通知:可通过本接口底补偿拉取失败的任务

完整错误码和状态信息可参考 /v3/appendix/errors

实用场景

  • 轮询已完成任务:定时获取最近完成的 Lighthouse 任务,构建稳定的异步结果拉取流程,遗漏分析结果。
  • 补偿回调失败任务:当 postback_url 回调失败时,通过本接口找回未成功通知的任务,提升任务交付可靠性。
  • 批量拉取处理结果:一次获取最多 1000 个已完成任务,便于批量库和后续报表生成,降低结果同步成本。
  • 监控任务处理积压:根据返回的拉取任务数量判断消费速度是否滞后,及时扩容任务处理队列。
  • 串联自动化审计流程:拿到 endpoint_json 后自动拉取 Lighthouse 结果并评分、告警、工单等后续业务流程。

统一入口:官网 · LLM API · 控制台