Create Deployment

Only VM providers (quantacloud, masscompute, verda, hyperstack) are supported via the API. Container providers (Vast.ai) require the dashboard, and so do templates and app links.
Starts provisioning a new GPU instance. Returns immediately with status provisioning. Poll the get endpoint to track progress.

Request Body

Response 202 Accepted

There is no idempotency key on this endpoint. If a request times out or the connection drops before you see a response, do not send it again immediately. List your deployments and look for one that already matches what you tried, because a second call after a timeout can create and bill a second GPU instead of returning the first one.

Errors

These are all returned before anything is created or charged. Failures that happen after the request is accepted are reported on the deployment itself. See Failure Fields.

List Deployments

Returns your deployments, newest first.

Query Parameters

Response


Get Deployment

Returns a single deployment by ID. Same shape as items in the list response.

Deployment Status

Failure Fields

When status is failed, these fields explain the failure and the next step. Internal service details are replaced with a generic customer message. retryable describes whether a new request may succeed later. It does not mean that the current request will be retried automatically. A reserved first hour is always refunded when provisioning fails, whatever the code.

Connection Fields

Connection info is null until the deployment reaches active status:

Errors

404 not_found: the deployment does not exist, or is not owned by you.

Shutdown and Start

Shutdown keeps the same VM and disks, and full compute billing continues. It does not pause billing or preserve running processes or GPU memory. Normal insufficient-balance teardown still applies. To end compute charges and permanently delete the instance disk, use Stop Deployment.
These API-only operations are supported for Verda and Hyperstack deployments whose deployment status is active. They do not change the deployment’s ID, billing period, or deployment status. Other providers return 400 provider_not_supported. Application startup after powering on depends on the services configured inside the VM.
Shutdown requires a running power state; start requires stopped. If the VM is already at the requested target, the endpoint returns 200 OK with action_submitted: false. Otherwise, the provider accepting the request returns 202 Accepted:
While the provider is in maintenance, both endpoints return 503 provider_maintenance, even when the VM is already at the requested target. A VM that is powered off then stays off, and is billed, until the maintenance ends, so start it before the window begins. Check the HTTP status of each call in a script: a loop that waits for stopped or running after a refused request never finishes.
power_state is the provider observation before submitting the action, not confirmation that it has finished. Poll the power endpoint until it reports stopped for shutdown or running for start. On Hyperstack, power_state reads unknown for about 20 to 30 seconds while the VM is changing state. That is expected, so keep polling; a /shutdown or /start sent in that window returns 400 validation_error. Wait for the first action to finish before sending the opposite action, and do not resend the same action until /power reflects it. SSH and applications can take longer to become ready after the VM is running: expect a few minutes. On Hyperstack, the network can take up to 10 minutes to reach the VM again after a start, even though it has already booted.

If the VM stopped responding

A shutdown or reboot run inside the VM is not visible to the provider, so power_state can stay running while the VM is down. On Verda, confidential-computing machines (the B200, B300 and RTX PRO 6000 types) cannot reboot from inside at all: reboot or shutdown -r leaves them down until they are powered off and on again. To bring the VM back, call /shutdown, poll /power until it reports stopped, then call /start. /start on a VM reported as running returns 200 OK without sending a start: Verda’s start action reboots a running VM, and Hyperstack refuses it.

Get Power State

Returns 200 OK with the same fields, requested_action: null, and action_submitted: false. The power_state is read from the provider on each request: running, stopped (powered off, billing continues), pending (being created or validated), stopping (being deleted, reported by Verda only), terminated, failed, or unknown (no clear answer from the provider, or a Hyperstack VM in the middle of a shutdown or start). terminated and failed mean the VM is gone; the health check reconciles the deployment within a few minutes, or once the provider’s maintenance has ended if it is in maintenance. This endpoint also requires an active Verda or Hyperstack deployment.

Power Control Errors


Stop Deployment

Stop permanently terminates the VM and deletes its instance disk. It cannot be started or resumed afterward. Copy off any files you need before calling this endpoint. To run again, create a new deployment.
Both endpoints start the same teardown flow. The instance is terminated and billing stops. Both return 200 OK with the updated deployment object, and the deployment’s history is retained rather than deleted. Stopping also works while the provider is in maintenance. Billing ends when the request is accepted, and the instance is removed as soon as the provider accepts the delete. Until then the deployment shows stopping. Attached persistent volumes are detached and retained. They continue to incur storage charges until deleted and can be attached to a new compatible deployment. Retaining a volume or deployment history does not preserve a restartable VM.

Response

Errors