The DeployGPU API lets you programmatically deploy GPU instances, manage volumes, and check your account. All endpoints are under /api/v1/, and the API launches virtual machines on QuantaCloud, Massed Compute, Verda and Hyperstack. It does not launch Vast.ai’s container offers, and it does not create template or app-link deployments. Those are dashboard-only.

VM lifecycle

Create a deployment to provision a new VM. When you are done, stop the deployment to permanently terminate the VM and delete its instance disk. A deployment terminated with /stop or DELETE cannot be started again. For Verda and Hyperstack deployments, separate shutdown and start endpoints let you power the same VM off and on while retaining its disks. Full compute billing continues while it is powered off. These operations do not pause billing.

Base URL

OpenAPI Specification

The full OpenAPI 3.1 JSON spec is available at:
Import this URL into tools like Postman, Insomnia, or any OpenAPI-compatible client to auto-generate requests.

Authentication

Authenticated endpoints require an API key. Pass it in either header:
Create API keys from the dashboard under Settings > API Keys. See API Keys for details. Keys have no scopes and no expiry, so treat one as a full credential for your account: use a separate key per system and revoke it when you stop using it.
Public catalog endpoints (offers, GPU families, providers) do not require authentication. Every other endpoint in this reference does.

Error format

Most endpoints return a consistent JSON envelope:
Two things do not follow that shape. A missing or invalid API key returns a 401 with an empty body, not a JSON envelope, so do not parse the body of a 401 before checking that it has one. The SSH key endpoints under /api/v1/users/me/ssh-keys also predate this envelope and return their error code as a plain string instead of a nested object, for example {"error": "INVALID_SSH_KEY", "message": "..."}. Handle those two cases separately from the table below.

Error codes

Insufficient balance example

When your balance will not cover creating a deployment or volume, the error includes your current and required balance:

Rate limits

All v1 endpoints share a rate limit of 3,000 requests per 15 minutes per IP address (200 requests per minute on average). The X-Rate-Limit-Remaining response header shows how many requests you have left in the current window. When exceeded, the API returns 429:

Monetary values

All monetary amounts are returned as strings with 4 decimal places (for example "1.4500"). This avoids floating-point precision issues.

Timestamps

All timestamps are in ISO 8601 format with UTC timezone (for example "2026-05-10T20:12:51.596837Z").