fastmon Docs
Synthetic

Create Synthetic Page

Report an issue

Create a synthetic page (URL normalized + must be under the site domain).

Registering the CS site always kicks off exactly one immediate analysis - you can't create a CS site without it running once - so even a paused page (schedule=false) produces this one creation run; its id is returned so the client polls analyses/{commerce_score_analysis_id}/status instead of firing a redundant run.

mode=monitor (default) is a sticky, quota-counted page honoring the schedule flags. mode=oneshot is an unbudgeted "measure now": schedules forced off, nocache forced true, and a missing creation-run id is fatal (502) rather than tolerated - the run is the deliverable. A one-shot stays viewable via the normal detail/run endpoints and can be promoted later via PATCH (source→manual + schedule).

One-shot is intentionally unbounded (no quota) - note the cost: CS has no reliable teardown, so each one-shot on a new URL leaves a CS site we can't reap. Add a cap here once CS supports teardown.

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

site_id*Site Id
Formatuuid

Request Body

application/json
  1. body

Create a synthetic page. The URL is normalized to the beacon form and must be under the site's own domain. Registering always runs one immediate analysis.

mode picks the intent:

  • monitor (default): a sticky, quota-counted page. schedule (recurring 24h Lighthouse, default on) and ttfb_schedule (recurring 5-min CS, default on) are honored - set either false to register paused / opt out; the flags govern only the recurring runs.
  • oneshot: an unbudgeted "measure now". The schedule flags are ignored (both forced off), nocache is forced true (fresh origin fetch), and the single creation run is mandatory - a missing run id is a hard 502, not tolerated.
url*Url
Lengthlength <= 2048
mode?Mode
Default"monitor"
Value in"monitor""oneshot"
schedule?Schedule
Defaulttrue
ttfb_schedule?Ttfb Schedule
Defaulttrue
nocache?Nocache
Defaulttrue

Response Body

Successful Response

application/json
  1. response

A created/registered page plus the run that creation always triggers.

Creating a CS site kicks off one immediate analysis regardless of the schedule flags - the flags gate only the recurring runs, so even a page created paused (schedule=false) produces this one creation run. Both manual create and one-shot surface its commerce_score_analysis_id for the client to poll, instead of firing a redundant second run. It is null only if CS registered the site but returned no run id (manual create tolerates that; one-shot 502s).

id*Id
Formatuuid
site_id*Site Id
Formatuuid
url*Url
source*SyntheticPageSource

How a synthetic page was added.

Value in"manual""auto""oneshot"
auto_rank?Auto Rank
commerce_score_site_id?Commerce Score Site Id

The site commerce-score registered for this page.

Formatuuid
schedule*Schedule
ttfb_schedule*Ttfb Schedule
nocache*Nocache
created_at*Created At
Formatdate-time
commerce_score_analysis_id?Commerce Score Analysis Id

The creation run commerce-score started, to poll the status with.

analysis_status?Analysis Status
POST
/sites/{site_id}/synthetic/pages
curl -X POST 'https://api.fastmon.eu/sites/497f6eca-6276-4993-bfeb-53cbbbba6f08/synthetic/pages' \  -H 'Content-Type: application/json' \  -d '{  "url": "string"}'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",  "url": "string",  "source": "manual",  "auto_rank": 0,  "commerce_score_site_id": "c80badcc-f830-4a94-952c-2ff93d9297a0",  "schedule": true,  "ttfb_schedule": true,  "nocache": true,  "created_at": "2019-08-24T14:15:22Z",  "commerce_score_analysis_id": "string",  "analysis_status": 0}