/api/skill-api/v1/skills/page-lighthouse/runRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | /api/skill-api/v1/skills/page-lighthouse/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
device | string | optional | Device value used by this API operation. Allowed: DESKTOP, MOBILE Default: DESKTOP |
url | string | required | Url value used by this API operation. Maximum length: 2048 |
Request example
{
"device": "DESKTOP",
"url": "example"
}Response body
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 is a successful envelope; inspect data.status separately. Allowed: 0, 42008, 42009 |
cost | string | required | Elapsed processing milliseconds; not price. -1 for non-web context. |
data | object | required | Data value used by this API operation. |
data.callId | string | null | optional | Call id value used by this API operation. |
data.completedAt | integer | null | optional | Completed at value used by this API operation. |
data.coverage | object | optional | Coverage value used by this API operation. |
data.coverage.missing | array | optional | Missing value used by this API operation. |
data.coverage.missing[] | object | required | Item in data coverage missing. |
data.coverage.missing[].field | string | optional | Field value used by this API operation. |
data.coverage.missing[].reason | string | optional | Reason value used by this API operation. |
data.coverage.status | string | optional | Status value used by this API operation. |
data.requestedAt | integer | null | optional | Requested at value used by this API operation. |
data.result | object | null | required | Result value used by this API operation. |
data.result.coverage | object | required | Coverage value used by this API operation. |
data.result.coverage.invalidItemCount | integer | required | Invalid item count value used by this API operation. Minimum: 0 |
data.result.coverage.limit | integer | required | Limit value used by this API operation. Constant: 1 |
data.result.coverage.maxCrawlPages | integer | null | required | Max crawl pages value used by this API operation. Minimum: 0 |
data.result.coverage.offset | integer | required | Offset value used by this API operation. Constant: 0 |
data.result.coverage.pagesCrawled | integer | null | required | Pages crawled value used by this API operation. Minimum: 0 |
data.result.coverage.providerTotal | integer | null | required | Provider total value used by this API operation. Minimum: 0 |
data.result.coverage.returnedCount | integer | required | Returned count value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.coverage.sampled | boolean | required | Sampled value used by this API operation. Constant: true |
data.result.coverage.stopReason | string | null | required | Stop reason value used by this API operation. |
data.result.coverage.truncated | boolean | required | Truncated value used by this API operation. |
data.result.items | array | required | Items value used by this API operation. Maximum items: 1 |
data.result.items[] | object | required | Item in data result items. |
data.result.items[].categories | object | required | Categories value used by this API operation. |
data.result.items[].categories.accessibility | number | null | required | Accessibility value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.items[].categories.bestPractices | number | null | required | Best practices value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.items[].categories.performance | number | null | required | Performance value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.items[].categories.seo | number | null | required | Seo value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.items[].device | string | required | Device value used by this API operation. Allowed: DESKTOP, MOBILE |
data.result.items[].fetchTime | integer | null | required | Fetch time value used by this API operation. Minimum: 0 |
data.result.items[].finalUrl | string | null | required | Final url value used by this API operation. |
data.result.items[].lighthouseVersion | string | null | required | Lighthouse version value used by this API operation. |
data.result.items[].metrics | object | required | Metrics value used by this API operation. |
data.result.items[].metrics.cumulativeLayoutShift | number | null | required | Cumulative layout shift value used by this API operation. Minimum: 0 |
data.result.items[].metrics.firstContentfulPaintMs | number | null | required | First contentful paint ms value used by this API operation. Minimum: 0 |
data.result.items[].metrics.largestContentfulPaintMs | number | null | required | Largest contentful paint ms value used by this API operation. Minimum: 0 |
data.result.items[].metrics.speedIndexMs | number | null | required | Speed index ms value used by this API operation. Minimum: 0 |
data.result.items[].metrics.totalBlockingTimeMs | number | null | required | Total blocking time ms value used by this API operation. Minimum: 0 |
data.result.items[].requestedUrl | string | required | Requested url value used by this API operation. |
data.result.missingFields | array | required | Missing fields value used by this API operation. |
data.result.missingFields[] | object | required | Item in data result missingFields. |
data.result.missingFields[].field | string | required | Field value used by this API operation. |
data.result.missingFields[].reason | string | required | Reason value used by this API operation. Allowed: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING |
data.result.source | object | required | Source value used by this API operation. |
data.result.source.candidateId | string | required | Candidate id value used by this API operation. Constant: MD-PW-15 |
data.result.source.collectedAt | integer | null | required | Collected at value used by this API operation. Minimum: 0 |
data.result.source.observationKind | string | required | Observation kind value used by this API operation. Constant: LAB_RUN |
data.result.source.product | string | required | Product value used by this API operation. Constant: on_page |
data.result.source.provider | string | required | Provider value used by this API operation. Constant: DATAFORSEO |
data.result.source.queriedAt | integer | required | Queried at value used by this API operation. Minimum: 0 |
data.result.source.sourceCallId | string | null | required | Source call id value used by this API operation. |
data.result.source.sourcePlanVersion | string | null | required | Source plan version value used by this API operation. |
data.result.source.sourceSchemaVersion | string | null | required | Source schema version value used by this API operation. |
data.result.warnings | array | required | Warnings value used by this API operation. |
data.result.warnings[] | string | required | Item in data result warnings. |
data.schemaVersion | string | null | optional | Schema version value used by this API operation. |
data.source | string | null | optional | Source value used by this API operation. |
data.status | string | optional | Status value used by this API operation. Allowed: SUCCESS, PARTIAL, EMPTY, PROCESSING, UNKNOWN, FAILED |
data.usage | object | optional | Usage value used by this API operation. |
data.usage.billingStatus | string | optional | Billing status value used by this API operation. |
data.usage.chargedCredits | integer | null | optional | Charged credits value used by this API operation. |
data.usage.providerCostStatus | string | optional | Provider cost status value used by this API operation. |
data.usage.providerCostUsd | string | null | optional | Provider cost usd value used by this API operation. |
data.usage.providerRequests | integer | optional | Provider requests value used by this API operation. |
msg | string | null | required | Msg value used by this API operation. |
time | string | required | yyyy-MM-dd HH:mm:ss |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds; global long serializer. |
Response example
Example response envelope from the documented SEO API contract.
{
"code": 0,
"cost": "-1",
"data": {
"callId": "synthetic-call",
"completedAt": null,
"coverage": {
"missing": [
{
"field": "synthetic",
"reason": "UPSTREAM_FIELD_MISSING"
}
],
"status": "PARTIAL"
},
"requestedAt": 123,
"result": {
"coverage": {
"invalidItemCount": 1,
"limit": 1,
"maxCrawlPages": 1,
"offset": 1,
"pagesCrawled": 9007199254740992,
"providerTotal": 9007199254740992,
"returnedCount": 1,
"sampled": false,
"stopReason": "synthetic",
"truncated": false
},
"items": [
{
"categories": {
"accessibility": 1.25,
"bestPractices": 1.25,
"performance": 1.25,
"seo": 1.25
},
"device": "DESKTOP",
"fetchTime": 9007199254740992,
"finalUrl": "synthetic",
"lighthouseVersion": "synthetic",
"metrics": {
"cumulativeLayoutShift": 1.25,
"firstContentfulPaintMs": 1.25,
"largestContentfulPaintMs": 1.25,
"speedIndexMs": 1.25,
"totalBlockingTimeMs": 1.25
},
"requestedUrl": "synthetic"
}
],
"missingFields": [
{
"field": "synthetic",
"reason": "synthetic"
}
],
"source": {
"candidateId": "synthetic",
"collectedAt": 9007199254740992,
"observationKind": "synthetic",
"product": "synthetic",
"provider": "synthetic",
"queriedAt": 9007199254740992,
"sourceCallId": "synthetic",
"sourcePlanVersion": "synthetic",
"sourceSchemaVersion": "synthetic"
},
"warnings": [
"synthetic"
]
},
"schemaVersion": "synthetic",
"source": "synthetic",
"status": "PARTIAL",
"usage": {
"billingStatus": "UNAPPROVED",
"chargedCredits": 0,
"providerCostStatus": "UNAPPROVED",
"providerCostUsd": null,
"providerRequests": 0
}
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "9007199254740993"
}Responses
| Code | Description |
|---|---|
| 200 | API executed successfully. Body is the direct response payload. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
Data source, freshness, and limitations
Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.