主题
获取 OnPage Lighthouse 支持版本列表
GET /v3/on_page/lighthouse/versions
接口说明
OnPage Lighthouse API 基于 Google 开源的 Lighthouse 项目,用于评估网页质量。
本接口用于获取当前支持的 Lighthouse 版本列表。若需基于指定 Lighthouse 版本获取检测结果,可在 /v3/on_page/lighthouse/task_post/ 请求中传对应版本号。
该能力基于开源 Lighthouse 项目实现,评分规则与指标可参考 Lighthouse 官方说明。
请求方式
GET https://api.seermartech.cn/v3/on_page/lighthouse/versions
计费说明
调用本接口不收费。
响应中的 cost 字段通常为 0,扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
返回结果字段说明
顶层响应字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态信息 |
time | string | 执行耗时,单位:秒 |
cost | float | 本次请求总费用,单位:USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数量 |
tasks | array | 任务结果数组 |
建议为状态码与异常设计完善的处理机制。错误码完整列表请参考错误码附录。
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态说明 |
time | string | 任务执行耗时,单位:秒 |
cost | float | 当前任务费用,单位:USD |
result_count | integer | result 数组中的数量 |
path | array | 请求路径 |
data | object | 请求参数信息。对于该 GET 接口,通常返回接口上下文信息 |
result | array | 结果数组 |
result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
available_versions | array | 支持的 Lighthouse 版本列表 |
available_versions[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | Lighthouse 版本号 |
default | boolean | 是否为默认使用版本 |
default
当 default 为 true 时,表示该版本为默认版本。
当 default 为 false 时,表示该版本不会默认使用;如需使用该版本,需要在 /v3/on_page/lighthouse/task_post/ 请求的对应字段中显式指定。
请求示例
cURL
bash
curl --location --request GET "https://api.seermartech.cn/v3/on_page/lighthouse/versions" \
--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/versions"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
result = response.json
# 成功时可检查平台返回的 status_code
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";
axios({
method: "get",
url: "https://api.seermartech.cn/v3/on_page/lighthouse/versions",
headers: {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
}).then((response) => {
const result = response.data;
// 返回结果
console.log(result);
}).catch((error) => {
console.error(error);
});响应示例
json
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2232 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "2c5b8d2e-6d4d-4e2d-9c12-2f2b1d5a8e31",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0000 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"on_page",
"lighthouse",
"versions"
],
"data": {
"api": "on_page",
"function": "lighthouse"
},
"result": [
{
"available_versions": [
{
"version": "8.4.0",
"default": true
},
{
"version": "7.5.0",
"default": false
}
]
}
]
}
]
}状态码说明
| 状态码 | 说明 |
|---|---|
20000 | 请求成功 |
10000-60000 | 任务级状态码范围,表示不同的处理结果或错误类型 |
如需处理异常返回,建议同时检查以下字段:
- 顶层
status_code/status_message tasks[].status_code/tasks[].status_messagetasks_error
使用建议
- 在创建 Lighthouse 检测任务前,调用本接口确认当前可用版本。
- 如果业务对评分一致性要求较高,建议固定使用某个明确版本,而不是依赖默认版本。
- 当默认版本发生变更时,可通过本接口及时感知并更新任务参数。
实用场景
- 校验可用版本:在批量发起 Lighthouse 检测前拉取支持版本,提交了已下线或不受支持的版本号。
- 固定评分基线:为 SEO 技术审计、页面体验追踪指定固定 Lighthouse 版本,确保不同时间段的评分结果可比。
- 监控默认版本变化:定期检查默认版本是否切换,及时评估评分波动是否来自检测引擎升级而非页面本身变化。
- 容多项目检测:针对不同客户或站点使用不同 Lighthouse 版本,满足历史项目延续与新项目升级的双重需求。
- 排查结果差异:当同一页面在不同时段出现性能或可用性分数变化时,核对 Lighthouse 版本,快速定位是否为版本差异导致。