PilotFoxDocs

Get web vitals

GET
/api/v1/sites/{siteId}/vitals

The p50, p75, p90 and p99 of LCP, CLS, INP, FCP and TTFB in the window, with their sample counts and how many were good, needing improvement (ni) or poor by Google's thresholds.

Requires analytics:read on the site (an API key, or a signed-in member's role). Share links: allowed, with the analytics:read scope. Public sites: open to everyone, no credential needed.

Authorization

headerx-api-key<token>

An organization API key (ak_…), with the permissions and the sites it was created with. For servers and scripts: no cookie and no Origin check. Also accepted as Authorization: Bearer ak_… (apiKeyBearer). A request carries one credential: a key sent with a share token or a live session cookie is 400 (details.reason: ambiguous_credentials).

Scope: analytics:read

Path Parameters

siteId*string

Query Parameters

start?string
end?string
last?string
all?"true"
Value in"true"
tz?string
bucket?string
Value in"minute""5m""15m""hour""day""week""month""year"
filters?string
Lengthlength <= 64000
segment?string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

OK

application/json
  1. response
data*
meta*
Example Request
curl -X GET 'https://pilotfox.app/api/v1/sites/string/vitals'
Example Response200
{  "data": {    "lcp": {      "p50": 0,      "p75": 0,      "p90": 0,      "p99": 0,      "good": 0,      "ni": 0,      "poor": 0,      "count": 0    },    "cls": {      "p50": 0,      "p75": 0,      "p90": 0,      "p99": 0,      "good": 0,      "ni": 0,      "poor": 0,      "count": 0    },    "inp": {      "p50": 0,      "p75": 0,      "p90": 0,      "p99": 0,      "good": 0,      "ni": 0,      "poor": 0,      "count": 0    },    "fcp": {      "p50": 0,      "p75": 0,      "p90": 0,      "p99": 0,      "good": 0,      "ni": 0,      "poor": 0,      "count": 0    },    "ttfb": {      "p50": 0,      "p75": 0,      "p90": 0,      "p99": 0,      "good": 0,      "ni": 0,      "poor": 0,      "count": 0    }  },  "meta": {    "window": {      "from": "string",      "to": "string",      "tz": "string",      "bucket": "minute"    },    "compare": {      "from": "string",      "to": "string"    },    "totalCount": -9007199254740991,    "nextCursor": "string",    "truncated": true,    "cache": "hit"  }}