---
title: "Measure Cwv"
method: POST
path: "/sites/{site_id}/cwv/measure"
tags: ["cwv"]
---

# Measure Cwv

`POST /sites/{site_id}/cwv/measure`

## Request

- Base URL: `https://api.xeorank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xeorank.com/sites/{site_id}/cwv/measure`
- Auth: API key in header `X-Agent-Key`

Run a new CWV measurement for a page.

Calls PageSpeed Insights (always) and CrUX (when the user has a
GSC refresh token). Both results are persisted and returned.
``include_diagnostics=false`` drops the Lighthouse blob from the reply:
the MCP measure_cwv on wintwealth.com (2026-09-27) returned 530 KB, of
which 550 KB-equivalent was ``psi.diagnostics`` (audits_by_id, filmstrip,
screenshot) and 200 bytes were the scores an agent quotes.

## Path parameters

- `site_id` string, required

## Query parameters

- `email` string, nullable
- `include_diagnostics` boolean

## Request body

- MeasureRequest
  - `url` string, required: The page URL to measure
  - `device` string: Device type: mobile or desktop

## Response `200`

Successful Response

- MeasureResponse
  - `psi` CwvMetricOut, required
    - `id` string, required
    - `site_id` string, required
    - `url` string, required
    - `source` string, required
    - `device` string, required
    - `lcp_ms` number, nullable
    - `inp_ms` number, nullable
    - `cls` number, nullable
    - `fcp_ms` number, nullable
    - `ttfb_ms` number, nullable
    - `tbt_ms` number, nullable
    - `speed_index` number, nullable
    - `performance_score` number, nullable
    - `dom_size` integer, nullable
    - `dom_depth` integer, nullable
    - `page_load_ms` integer, nullable
    - `diagnostics` union
      - object
      - object[]
    - `measured_at` string, nullable
  - `crux` CwvMetricOut
    - `id` string, required
    - `site_id` string, required
    - `url` string, required
    - `source` string, required
    - `device` string, required
    - `lcp_ms` number, nullable
    - `inp_ms` number, nullable
    - `cls` number, nullable
    - `fcp_ms` number, nullable
    - `ttfb_ms` number, nullable
    - `tbt_ms` number, nullable
    - `speed_index` number, nullable
    - `performance_score` number, nullable
    - `dom_size` integer, nullable
    - `dom_depth` integer, nullable
    - `page_load_ms` integer, nullable
    - `diagnostics` union
      - object
      - object[]
    - `measured_at` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xeorank/apis/seo-intelligence-engine.md) · [All operations](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/revisions/449a3fd73454?raw)
