Base URL
Authentication
Every request carries a project API key as a bearer token:Authentication
Creating, rotating, and revoking keys.
Endpoints
That is the complete surface. There are no endpoints for creating,
listing or deleting applications: projects are created in the dashboard,
which is also where keys are issued.
Deploy over the API
The full deploy reference, with the one command that ships a directory.
Request format
POST /api/v1/deploy is multipart/form-data: it carries your source
tree. Everything else is JSON.
Rate limits
A second deploy while one is running returns
409 with the in-flight
taskId, not an error you need to retry blindly. Exceeding the hourly limit
returns 429 with retryAfterSeconds.
Both limits exist because agents retry. A human clicks Deploy a few times a
day; a loop that treats failure as retryable will hit the API as fast as it is
accepted.
Errors
Errors return a JSON body with a stablecode, a human-readable error, and
a documentation URL pointing back at the contract.
Match on
code, not on the message text.
Asynchronous by design
POST /api/v1/deploy returns 202 immediately with a taskId. Building and
releasing take a minute or two. Poll /api/v1/deployments/{taskId} until
status is succeeded or failed.
The poll response carries warnings and hazards as structured data. A
deploy can succeed and still not behave as its author expects; those fields
are how you find out.