Skip to main content
The Sevalla API is a REST API for managing your company’s services and settings: applications, deployments, processes, databases, static sites, object storage, load balancers, pipelines, projects, domains, environment variables, webhooks and API keys. It sends and receives JSON over HTTPS, and every request is authenticated with an API key.

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:
The response lists the company’s applications in a paginated object with 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 the Authorization 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 with status 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.
To read every item, add 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.

Tools built on the API

You don’t always need to call the API by hand. These tools use it with the same API keys: