Skip to main content
The Antideploy API deploys a project and reports on it. It is deliberately small (four endpoints) because that is all deploying takes.

Base URL

That URL is also a live, unauthenticated description of the API. curl it and you get the full contract as JSON: request shapes, error codes, and current limits. If you are pointing an AI agent at Antideploy, give it this URL along with the project key.

Authentication

Every request carries a project API key as a bearer token:
Keys are scoped to a single application. The key identifies which app you are acting on, so no application id is ever sent.

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 stable code, 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.