Complete REST API documentation for managing VPS servers, domains, DNS, backups, and more.
The VPS.org API allows you to programmatically manage all aspects of your VPS hosting infrastructure, including servers, domains, DNS records, backups, and snapshots.
All API requests require authentication using a Bearer token. You can generate your API token from your account settings at admin.vps.org/account/developers/.
curl -X GET https://admin.vps.org/api/v1/servers/ \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
import requests
url = "https://admin.vps.org/api/v1/servers/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
Each token carries its own permissions, such as servers:list or dns:*. A request that needs a permission the token does not have is refused with 403 and a required_permission field naming the missing permission. Permissions Reference
Authenticated requests are limited to 1,000 per hour per account. Unauthenticated requests are limited to 100 per hour per IP address. A request over the limit receives 429 with a Retry-After header giving the number of seconds to wait. No rate limit headers are sent on successful responses.
List endpoints return an object with count, next, previous and results, 25 items per page. Pass page to move between pages, or follow the next URL until it is null. The servers list also accepts page_size, up to 100.
{
"count": 84,
"next": "https://admin.vps.org/api/v1/backups/?page=2",
"previous": null,
"results": [ ... ]
}
The API uses standard HTTP status codes to indicate success or failure:
| Status Code | Description |
|---|---|
200 |
Success - Request completed successfully |
201 |
Created - Resource created successfully |
400 |
Bad Request - Invalid parameters or malformed request |
202, 204 |
Accepted and queued (202), or deleted with no response body (204) |
402 |
Payment Required: no payment method on file, unpaid invoices, or a declined card pre-authorization |
403 |
Forbidden: the token is missing, invalid or expired, or lacks the required permission. Failed authentication also returns 403, not 401. |
404 |
Not Found - Resource does not exist |
409 |
Conflict: for example a resize already in progress, not enough capacity, or a deployment already running |
429 |
Too Many Requests - Rate limit exceeded |
500 |
Internal Server Error - Something went wrong on our end |
503 |
Service Unavailable: a temporary problem. Retry, honouring Retry-After when it is sent. |
Error bodies are JSON. Most have a detail field or an error field, sometimes with a message; validation errors list the problems by field name.
Browse our API documentation by category:
Create, inspect, power, resize and delete servers, reset the root password, set reverse DNS, run commands, and manage SSH keys.
View DocumentationList your server backups, start a new backup, and restore a server from a backup.
View DocumentationTake labelled snapshots of a server, list them and delete them.
View DocumentationRetrieve available VPS plans and pricing information. Get details about resources, pricing, and availability.
View DocumentationList the operating systems and versions you can install, such as Ubuntu, Debian, Rocky Linux, CentOS Stream, Fedora and Alpine.
View DocumentationCheck availability, register and renew domains, and set nameservers and auto-renewal.
View DocumentationCreate DNS zones and create, update and delete their A, AAAA, CNAME, MX, TXT, SRV, CAA and other records.
View DocumentationRetrieve account profile and API token information. Identify which account a token belongs to and check its permissions.
View DocumentationThe API also has endpoints for app deployments (/api/v1/deploy-configs/ and /api/v1/deployments/). They are not described on these pages yet; the interactive reference lists every endpoint, generated from the live API.
Open the interactive API referenceIf you have questions or need assistance with the API, please don't hesitate to reach out: