API reference
Introduction
The platform's public API. Account and Deployer API v1 endpoints take an API token (Account → API tokens) as a bearer token, limited to the token's account and scopes. Monitoring ingest takes an environment's ingest key; heartbeat and queue endpoints take the monitor's own key; the analytics tracker posts without credentials.
API tokens
Account
The token's account GET
/api/v1/account
Scope: account:read
Analytics
Analytics sites the token can read GET
/api/v1/analytics/sites
Scope: analytics:read
Send pageviews and events from a server POST
/api/v1/analytics/sites/{site}/events
Scope: analytics:write
A site's report as numbers GET
/api/v1/analytics/sites/{site}/report
Scope: analytics:read
A site's daily totals as flat rows GET
/api/v1/analytics/sites/{site}/rows
Scope: analytics:read
CORS preflight for the tracker OPTIONS
/api/v1/collect/{publicId}
Pageviews and events from the tracker (/tracker/v1.js) POST
/api/v1/collect/{publicId}
Deploy
The token's person and account, with the Deploy plan GET
/api/v1/me
Scope: deploy:read
Projects the person may deploy GET
/api/v1/projects
Scope: deploy:read
One project with its environments GET
/api/v1/projects/{project}
Scope: deploy:read
Deployments, newest first GET
/api/v1/deployments
Scope: deploy:read
One deployment GET
/api/v1/deployments/{build}
Scope: deploy:read
A deployment's log GET
/api/v1/deployments/{build}/log
Scope: deploy:read
Make a retained release live again POST
/api/v1/deployments/{build}/rollback
Scope: deploy:write
Promote a succeeded deployment to a later environment POST
/api/v1/deployments/{build}/promote
Scope: deploy:write
Deploy the environment's repository POST
/api/v1/environments/{environment}/deploy
Scope: deploy:write
Set how many worker replicas run PATCH
/api/v1/environments/{environment}/scale
Scope: deploy:write
Hibernate the environment or wake it PATCH
/api/v1/environments/{environment}/runtime
Scope: deploy:write
Replace the environment's variables from .env text PUT
/api/v1/environments/{environment}/variables
Scope: deploy:write
Apply a version 1 workflow document PUT
/api/v1/projects/{project}/workflow
Scope: deploy:write
Plan a configuration document without changing anything POST
/api/v1/projects/{project}/configuration/plan
Scope: deploy:write
Freeze a plan for 15 minutes as a review POST
/api/v1/projects/{project}/configuration/reviews
Scope: deploy:write
Apply a review POST
/api/v1/projects/{project}/configuration/reviews/{review}/apply
Scope: deploy:write
An application receipt and its operations GET
/api/v1/projects/{project}/configuration/applications/{application}
Scope: deploy:read
Cancel or retry an operation POST
/api/v1/projects/{project}/configuration/applications/{application}/operations/{operation}/{action}
Scope: deploy:write
Monitoring
Record a deployment on an environment's Monitoring timeline POST
/api/v1/deployments
Send a batch of telemetry events POST
/api/v1/ingest
How a batch was processed GET
/api/v1/ingest/receipts/{receipt}
OpenTelemetry (OTLP/HTTP JSON) traces, logs or metrics POST
/api/v1/otlp/v1/{signal}
A scheduled job's start, success or failure POST
/api/v1/heartbeats/{heartbeat}
A queue's sizes at a moment POST
/api/v1/queues/{queue}/snapshots
A worker's state POST
/api/v1/queues/{queue}/workers
CORS preflight for the browser error script OPTIONS
/api/v1/browser/{key}/errors
JavaScript errors from visitors' browsers (/monitoring/browser.js) POST
/api/v1/browser/{key}/errors
Resources
List projects GET
/api/v2/projects
Scope: projects:read
Create a project with its services POST
/api/v2/projects
Scope: projects:write
Show a project GET
/api/v2/projects/{projectId}
Scope: projects:read
Change a project and its services PUT
/api/v2/projects/{projectId}
Scope: projects:write
Delete a project DELETE
/api/v2/projects/{projectId}
Scope: projects:write
List a project's monitors GET
/api/v2/projects/{projectId}/monitors
Scope: monitoring:read
Create a monitor POST
/api/v2/projects/{projectId}/monitors
Scope: monitoring:write
Show a monitor GET
/api/v2/projects/{projectId}/monitors/{monitorId}
Scope: monitoring:read
Change a monitor PUT
/api/v2/projects/{projectId}/monitors/{monitorId}
Scope: monitoring:write
Archive a monitor DELETE
/api/v2/projects/{projectId}/monitors/{monitorId}
Scope: monitoring:write
List servers GET
/api/v2/servers
Scope: infrastructure:read
Create a server in one of the account's cloud providers POST
/api/v2/servers
Scope: infrastructure:write
Show a server and its status GET
/api/v2/servers/{serverId}
Scope: infrastructure:read
Delete a server, at the provider too DELETE
/api/v2/servers/{serverId}
Scope: infrastructure:write
List websites GET
/api/v2/websites
Scope: infrastructure:read
Create a website on an app server POST
/api/v2/websites
Scope: infrastructure:write
Show a website and its status GET
/api/v2/websites/{websiteId}
Scope: infrastructure:read
Change a website PUT
/api/v2/websites/{websiteId}
Scope: infrastructure:write
Delete a website DELETE
/api/v2/websites/{websiteId}
Scope: infrastructure:write
Assistant
Model Context Protocol (JSON-RPC 2.0) for AI tools POST
/api/mcp
SCIM
What the SCIM service supports GET
/api/scim/v2/ServiceProviderConfig
List provisioned people, filtered by userName eq or externalId eq GET
/api/scim/v2/Users
Provision someone (userName is their email address) POST
/api/scim/v2/Users
One provisioned person GET
/api/scim/v2/Users/{id}
Replace a person (active false removes their membership) PUT
/api/scim/v2/Users/{id}
Change a person with PatchOp operations (active, externalId) PATCH
/api/scim/v2/Users/{id}
Deprovision a person DELETE
/api/scim/v2/Users/{id}
Groups (always empty; roles are set in the app) GET
/api/scim/v2/Groups
Webhooks
Push and pull-request webhooks from GitHub, GitLab or Bitbucket POST
/api/repositories/{repository}/webhook
The GitHub App's webhook POST
/api/github-app/webhook