REST

Core Web Vitals

Returns LCP, INP/TBT, and CLS values for the site homepage with good/needs-improvement/poor ratings and PageSpeed Insights category scores.

GET/api/v1/sites/:siteId/cwv

Core Web Vitals status

Returns LCP, INP/TBT, and CLS values for the site homepage with good/needs-improvement/poor ratings and PageSpeed Insights category scores.

Request

bash
curl -X GET \
  'https://letoseo.com/api/v1/sites/:siteId/cwv' \
  -H 'Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

Path parameters

NameTypeRequiredDescriptionDefault
siteIduuidrequiredThe site UUID.

Responses

200CWV metrics and PSI scores.
json
{
  "data": {
    "cwv": [
      {
        "name": "LCP",
        "label": "Largest Contentful Paint",
        "labValue": 1840,
        "fieldValue": null,
        "unit": "ms",
        "status": "good",
        "thresholds": {
          "good": 2500,
          "poor": 4000
        }
      },
      {
        "name": "TBT",
        "label": "Total Blocking Time",
        "labValue": 120,
        "fieldValue": null,
        "unit": "ms",
        "status": "good",
        "thresholds": {
          "good": 200,
          "poor": 600
        }
      },
      {
        "name": "CLS",
        "label": "Cumulative Layout Shift",
        "labValue": 0.04,
        "fieldValue": null,
        "unit": "",
        "status": "good",
        "thresholds": {
          "good": 0.1,
          "poor": 0.25
        }
      }
    ],
    "psiScores": {
      "performance": 91,
      "accessibility": 88,
      "bestPractices": 95,
      "seo": 100,
      "url": "https://acme-demo.example",
      "lastScannedAt": "2025-01-13T05:00:00.000Z"
    },
    "hasFieldData": false
  },
  "_meta": {
    "generated_at": "2025-01-15T10:30:00.000Z",
    "site_id": "00000000-0000-0000-0000-000000000001"
  }
}
404Site not found or not owned by the authenticated user.
json
{
  "error": "Site not found"
}