Skip to content

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

Create tokens under Account → API tokens. OpenAPI description (JSON)

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