Skip to content

提交 Lighthouse 任务

接口说明

OnPage Lighthouse API 基于 Google 开源的 Lighthouse 项目,用于评估网页或 Web 应用的质量。

Lighthouse 会针对页面的不同能力项执行一系列独立审计,输出数值评分与结构化报告,可覆盖以下方向:

  • 性能(performance)
  • 可访问性(accessibility)
  • 渐进式 Web 应用能力
  • SEO
  • 最佳实践(best_practices)

通过本接口创建任务后,您可以对指定页面发起 Lighthouse 检测,并在任务完成后获取审计结果,用于发现并修复页面质量问题。

可用审计项列表请参考 /v3/on_page/lighthouse/audits/。 可用版本列表请参考 /v3/on_page/lighthouse/versions/。 语言列表请参考 /v3/on_page/lighthouse/languages

请求地址

POST https://api.seermartech.cn/v3/on_page/lighthouse/task_post

计费说明

该接口按请求计费。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

提交规则

  • 请求方法:POST
  • 请求体格式:JSON 数组 [{ ... }]
  • 编码要求:UTF-8
  • 每分钟最多可发送 2000 次 API 调用
  • 单次 POST 最多 100 个任务
  • 如果单次提交 100 个任务,出部分会返回错误 40006

任务提交成功后,您可以通过返回的唯一任务标识 id 获取结果。

如果在创建任务时指定了 pingback_url,任务完成后平台会主动回调通知您。 注意事项:

  • 回调方式为 GET
  • 可在 URL 中使用 $id$tag 变量
  • 平台发送回调前会自动替换这些变量
  • 如果您的服务器在 10 秒未响应,请求会因时中断 -时后,该任务可在 /v3/on_page/lighthouse/tasks_ready/ 列表中继续获取

另请注意,pingback_url 中的特殊字符会被 URL 编码,例如 # 会编码为 %23

请求参数

字段名类型说明
urlstring目标页面 URL。。传绝对地址, http://https://。例如:https://example.com/
for_mobileboolean是否启用移动端模拟。可选。true 表示按移动设备环境进行检测;false 表示返回桌面端结果。默认值:false
categoriesarrayLighthouse 分类。可选。每个分类是一组审计项及评分权重。若省略该字段,且未指定 audits,默认返回所有分类数据。可选值:seoperformancebest_practicesaccessibility
auditsarray指定 Lighthouse 审计项。可选。若省略该字段,默认返回所有审计项。可用于获取某些特定审计,或在指定 categories 的同时补返回不属于这些分类的独立审计项。完整列表请参考 /v3/on_page/lighthouse/audits/
versionstring指定 Lighthouse 版本。可选。用于获取特定版本下的检测结果。可用版本请参考 /v3/on_page/lighthouse/versions/
language_namestringLighthouse 语言名称。可选。可用语言可通过 /v3/on_page/lighthouse/languages 查询。默认值:English
language_codestringLighthouse 语言代码。可选。可用语言可通过 /v3/on_page/lighthouse/languages 查询。默认值:en
custom_user_agentstring自定义 User-Agent。可选。最长 254 个字符
browser_screen_widthinteger浏览器屏幕宽度。可选。用于模拟特定设备环境。取值范围:240–9999
browser_screen_heightinteger浏览器屏幕高度。可选。用于模拟特定设备环境。取值范围:240–9999
browser_screen_scale_factorfloat浏览器屏幕缩放系数,即设备像素比。可选。取值范围:0.5–3
browser_network_throttling_methodstring网络限速方式。可选。可选值:simulatedevtoolsprovided。:simulate 表示不显式限速,而是估算性能指标;devtools 表示应用 browser_network_throttlingbrowser_cpu_throttling_multiplier 的限速;provided 表示使用抓取环境的网络条件
browser_cpu_throttling_multiplierfloatCPU 限速倍数。browser_network_throttling_method=devtools 时填。用于模拟设备性能条件。取值范围:1–4
browser_network_throttlingstring网络限速。browser_network_throttling_method=devtools 时填。可选值:no_throttlingfast_4gslow_4gregular_3gpc
tagstring自定义任务标识。可选。最长 255 个字符。便于将任务与业务数据,提交后会原样出现在响应的 data 对象中
pingback_urlstring任务完成通知地址。可选。任务完成后平台会向该地址发起 GET 请求。支持 $id$tag 变量,例如:https://your-server.com/pingscript?id=$idhttps://your-server.com/pingscript?id=$id&tag=$tag

categoriesaudits 的使用说明

categoriesaudits 可单独使用,也可组合使用,常见方式如下:

  1. 不传 categories,只传 audits 返回指定的审计项结果。

  2. categories,不传 audits 返回指定分类下的审计结果。

  3. 同时传 categoriesaudits 返回指定分类中的审计结果,并可额外不属于这些分类的独立审计项。

响应结构

接口返回 JSON 数据,顶层 tasks 数组,每个对应一个提交的任务。

顶层字段

字段名类型说明
versionstring当前 API 版本
status_codeinteger通用状态码。完整列表请参考 /v3/appendix/errors
status_messagestring通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务数组

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常为 10000–60000
status_messagestring任务状态信息
timestring任务执行耗时,单位秒
costfloat单个任务费用,单位 USD
result_countintegerresult 数组中的数量
patharray请求路径
dataobject您在 POST 请求中提交的任务参数
resultarray | null结果数组。对于任务提交接口,此处通常为 null

状态码与错误处理

  • 顶层 status_code=20000 表示请求成功
  • 单个任务的处理状态以 tasks[].status_code 为准
  • 建议同时处理:
  • HTTP 状态码
  • 顶层 API 状态码
  • 单任务状态码
  • 错误码完整列表请参考 /v3/appendix/errors

特别注意:

  • 单次 POST过 100 个任务时,出部分会返回 40006
  • 使用 pingback_url 时,如您的服务端时或拒绝连接,错误表现将取决于服务端

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/on_page/lighthouse/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "url": "https://example.com",
 "for_mobile": true,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]'

Python

python
import requests

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

# POST 请求体是 JSON 数组
payload = [
 {
 "url": "https://example.com",
 "for_mobile": True
 },
 {
 "url": "https://example.com",
 "for_mobile": True,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]

response = requests.post(url, headers=headers, json=payload)
print(response.json)

TypeScript

typescript
import axios from "axios";

const postArray = [
 {
 url: "https://example.com",
 for_mobile: true,
 tag: "some_string_123",
 pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/on_page/lighthouse/task_post",
 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.20200805",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0815 sec.",
 "cost": 0.00425,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0 sec.",
 "cost": 0.00425,
 "result_count": 0,
 "path": [
 "v3",
 "on_page",
 "lighthouse",
 "task_post"
 ],
 "data": {
 "api": "on_page",
 "function": "lighthouse",
 "url": "https://example.com",
 "for_mobile": true,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 },
 "result": null
 }
 ]
}

响应示例说明

  • cost: 0.00425 表示本次请求费用为 USD 0.00425
  • 按人民币参考价换算,约为 ¥0.0680 / 次
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准
  • resultnull 属于正常现象,因为该接口用于创建任务,不直接返回 Lighthouse 检测结果
  • 后续可通过任务 id 查询对应结果,或通过 pingback_url 接收完成通知

使用建议

  • 批量提交时,建议每次控制在 100 个任务
  • 如需统一回收结果,优使用任务 id 轮询获取
  • 如需异步自动通知,可 pingback_url
  • 若对移动端体验更敏感,建议设置 for_mobile=true
  • 若需要稳定复现特定测试环境,可结合以下参数一起使用:
  • browser_screen_width
  • browser_screen_height
  • browser_screen_scale_factor
  • browser_network_throttling_method
  • browser_cpu_throttling_multiplier
  • browser_network_throttling

实用场景

  • 批量检测落地页质量:对广告页、专题页或产品页批量发起 Lighthouse 审计,快速定位性能、SEO 与最佳实践问题,提升页面转化基础。
  • 对比移动端与桌面端表现:分别设置 for_mobile=true/false 创建任务,比较不同终端下的页面质量差异,为移动优优化提供依据。
  • 监控版本发布后的页面退化:在前端发布后自动提交 Lighthouse 任务,对核心页面进行回归检测,及时发现性能下降或可访问性问题。
  • 聚焦审计项排查问题:通过 audits 只拉取特定检测项,例如首屏性能或 SEO 指标,减少无数据干扰,提高排查效率。
  • 构建异步质量巡检流程:结合 pingback_url 在任务完成后接收通知,将 Lighthouse 结果自动接告警、报表或 SEO 运营系统。

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