Make your first request
1
Create an API key
In the sidebar, under Tools, click API keys, then create a key with the permissions your script needs. Company viewer is enough to read.
2
Call the API
Keep the key in an environment variable and send it as a bearer token:
data, total, offset and limit. Each application’s id is what other operations take, for example POST /applications/{id}/deployments to trigger a deployment. The dashboard shows the same ID on a service’s Settings tab, under Details.
To see what the key can do, call Get current API key (GET /api-keys/me), which returns its effective permissions.
Authentication
Every request needs an API key in theAuthorization header as a bearer token. A key belongs to one company and acts only on that company’s services, with the permissions set on the key. Requests must use HTTPS.
See Authentication in the API reference.
Long-running operations
Deployments, restores and similar operations run in the background. The request returns right away, usually with the new object (a deployment withstatus waiting or inProgress). Poll the object’s GET operation until its status is final. Deployment statuses are waiting, inProgress, success, failed, cancelled and skipped.
Pagination
List operations are paginated with two query parameters, and every list response has the same shape.limit to offset until offset reaches total. See Pagination.
Errors
Errors return an HTTP status code and a JSON body:
Every response has an
x-request-id header. Include it when you contact support. Don’t retry 4xx errors without changing the request. See Errors.
Rate limits
The API limits how many requests a company can make. Requests are counted per company (the company of the API key), and per company and service for the tiers that act on one service. In every tier except reads, each operation has its own count: creating 20 applications in an hour doesn’t stop you from creating a database. Requests without a valid key are counted per IP address.
Each response carries
x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset (seconds until the window resets). When you reach a limit, the API returns 429 with a retry-after header: wait that many seconds, then retry with exponential backoff and jitter. See Rate limits in the API reference.