Get a web vital time series
GET
One metric's percentile p per time bucket, with its sample count.
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.
header
x-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
siteId*stringstart?stringend?stringlast?stringall?"true"Value in
"true"tz?stringbucket?stringValue in
"minute""5m""15m""hour""day""week""month""year"filters?stringLength
length <= 64000segment?stringMatch
^([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)$Format
uuidmetric*stringValue in
"lcp""cls""inp""fcp""ttfb"p?stringThe percentile reported: each point's value (time series) or each row's value_metric (breakdown)
Default
"p75"Value in
"p50""p75""p90""p99"OK
application/json- response
data*array<>meta*curl -X GET 'https://pilotfox.app/api/v1/sites/string/vitals/timeseries?metric=lcp'Example Response200
{ "data": [ { "t": "string", "value": 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" }}