Create Synthetic Page
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 analysis_uuid is returned
so the client polls analyses/{uuid}/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 API token generated from the fastmon dashboard (Account → API Token). Send as Authorization: Bearer fm_... or paste the full token (including the fm_ prefix) into the Authorize dialog.
In: header
Path Parameters
uuidRequest Body
application/json
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) andttfb_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),nocacheis forced true (fresh origin fetch), and the single creation run is mandatory — a missing run id is a hard 502, not tolerated.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/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, "cs_site_uuid": "d1582410-9fb8-4c55-ac9c-23a03fafe6e4", "schedule": true, "ttfb_schedule": true, "nocache": true, "created_at": "2019-08-24T14:15:22Z", "analysis_uuid": "string", "analysis_status": 0}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}{ "error": { "code": "string", "message": "string", "request_id": "string", "doc_url": "string", "details": {} }}