fastmon Docs
Synthetic

Get Synthetic Timeseries

Report an issue

Chart series for the device: sparse lab points (one per CS Lighthouse run, score + CWV from that run's scores[]) and raw ttfb points (one per dedicated 5-min TTFB run, full DNS→transfer phases) overlaid on the regular field p75 line (RUM). lab.ttfb is Lighthouse's server-only TTFB; the ttfb series is the full phase breakdown - different measurements, kept in separate series. The ttfb series is device-independent (CS measures TTFB once per run).

series selects which to compute - only the requested ones are fetched; the rest return as empty lists.

Authorization

bearerAuth
headerAuthorizationBearer <token>

API token generated from the fastmon dashboard (Account → API Token) or at organization level (fmo_…, one that outlives its creator). Send as Authorization: Bearer fm_... or paste the full token (including its prefix) into the Authorize dialog.

Path Parameters

page_id*Page Id
Formatuuid
site_id*Site Id
Formatuuid

Query Parameters

device_type?|

The device class to answer for. Defaults to desktop.

window_days?Window Days
Range1 <= value <= 90
Default30
granularity?|

Bucket width of the field series: hour or day. Defaults to day.

series?Series

Comma-separated subset of lab,ttfb,field to compute. Unrequested series come back empty; use it to skip the expensive TTFB pull when unneeded. An empty/blank value means all series.

Default"lab,ttfb,field"

Response Body

Successful Response

application/json
  1. response

Series for charting, different time granularities by design: sparse lab points (Lighthouse) and raw ttfb points (dedicated 5-min schedule) overlaid on the regular field p75 line. lab.ttfb is Lighthouse's server-only TTFB; the ttfb series is the full phase breakdown - they are not the same measurement.

page_id*Page Id
Formatuuid
url*Url
device_type*SyntheticDeviceType

The class of device commerce-score measures a page on (§28).

Two values, not the three of DeviceType: commerce-score runs Lighthouse on a desktop and a mobile profile only, so a shared enum would promise a tablet run no route can answer.

Value in"desktop""mobile"
window_days*Window Days
granularity*BucketGranularity

The bucket width an endpoint answers, auto already resolved (§28).

Value in"minute""hour""day"
lab*array<>
ttfb_series*array<>
field*array<>
GET
/sites/{site_id}/synthetic/pages/{page_id}/timeseries
curl -X GET 'https://api.fastmon.eu/sites/497f6eca-6276-4993-bfeb-53cbbbba6f08/synthetic/pages/497f6eca-6276-4993-bfeb-53cbbbba6f08/timeseries'
{  "page_id": "ef107761-0142-48fe-9dcd-5140d1ae58db",  "url": "string",  "device_type": "desktop",  "window_days": 0,  "granularity": "minute",  "lab": [    {      "timestamp": "2019-08-24T14:15:22Z",      "score": 0,      "lcp": 0,      "fcp": 0,      "cls": 0,      "inp": 0,      "ttfb": 0    }  ],  "ttfb_series": [    {      "timestamp": "2019-08-24T14:15:22Z",      "dns_ms": 0,      "connection_ms": 0,      "tls_ms": 0,      "server_ms": 0,      "transfer_ms": 0,      "total_ms": 0    }  ],  "field": [    {      "timestamp": "2019-08-24T14:15:22Z",      "sample_count": 0,      "lcp": 0,      "fcp": 0,      "cls": 0,      "inp": 0,      "ttfb": 0    }  ]}