List VPS
GET/api/v1/vps
Every VPS of the account, newest first.
Example request
curl -X GET "https://platform.serverscamp.com/api/v1/vps" \
-H "Authorization: Bearer $API_TOKEN"import os, requests
token = os.environ["API_TOKEN"]
r = requests.get(
f"https://platform.serverscamp.com/api/v1/vps",
headers={"Authorization": f"Bearer {token}"},
)
r.raise_for_status()
print(r.json())const r = await fetch(`https://platform.serverscamp.com/api/v1/vps`, {
method: 'GET',
headers: { Authorization: `Bearer ${process.env.API_TOKEN}` },
});
console.log(r.status, await r.json());Answer
Status 200 with this body.
| Field | Type | Description |
|---|---|---|
| items | list of Vpsrequired | |
| items[].vps_uuid | stringrequired | VPS id |
| items[].name | stringrequired | Name given at create |
| items[].plan_id | stringrequired | Plan id |
| items[].plan_name | string, optional | Plan name |
| items[].plan | VpsPlan, optional | The plan, also when it is no longer on sale |
| items[].plan.id | stringrequired | Plan id, for create and plan changes |
| items[].plan.name | stringrequired | Name shown in the Cloud Panel |
| items[].plan.vcpu | integerrequired | vCPU cores |
| items[].plan.cpu_limit | number, optional | Share of the cores the server may use, set on plans below one full core |
| items[].plan.ram_gb | numberrequired | Memory, GB |
| items[].plan.disk_gb | integerrequired | Disk, GB |
| items[].plan.traffic_gb | integerrequired | Outbound traffic a month, GB; after it the port runs at 100 Mbit/s |
| items[].plan.net_mbit | integerrequired | Port speed, Mbit/s |
| items[].plan.disk_iops | integerrequired | Disk operations a second |
| items[].plan.disk_mbps | integerrequired | Disk throughput, MB/s |
| items[].plan.price_monthly | numberrequired | Price a month, EUR, billed by the hour |
| items[].plan.backup_share | numberrequired | Daily backups add this share of the plan price |
| items[].image | stringrequired | Image id of the installed system |
| items[].backups | booleanrequired | Daily backups on |
| items[].status | stringrequired | queued, cloning, configuring, starting, running, stopped, restoring, reinstalling, deleting, unpaid (stopped when the balance ran out) or error |
| items[].ipv4 | string, optional | Public IPv4 address |
| items[].ipv6_prefix | string, optional | IPv6 /56 of the server; its first address is ::1 |
| items[].ptr | string, optional | Reverse DNS name of the addresses |
| items[].ptr_custom | booleanrequired | Reverse DNS was set by you, not the default name |
| items[].cpu_model | string, optional | CPU model of the host |
| items[].disk | string, optional | Disk type of the host: NVMe or SSD |
| items[].error | string, optional | What went wrong, when status is error |
| items[].created_at | string, optional | When it was created, ISO 8601 |
| items[].net_capped | booleanrequired | The port is at 100 Mbit/s until the next month: the quota is used up |
| items[].uptime | integer, optional | Seconds since the server was last started; lower than before once a reboot is done (a reset leaves it as it is). Only in Get a VPS, not in List VPS |
| items[].traffic | VpsTrafficrequired | |
| items[].traffic.month | stringrequired | Calendar month, UTC, as YYYY-MM |
| items[].traffic.out_bytes | integerrequired | Outbound bytes this month; counts against the plan quota |
| items[].traffic.in_bytes | integerrequired | Inbound bytes this month; free |
{
"items": [
{
"vps_uuid": "12d46f8c-d66e-4163-99aa-1245d5b06e5b",
"name": "web-1",
"plan_id": "vps2-1",
"plan_name": "VPS 1",
"image": "ubuntu-26.04",
"backups": true,
"status": "running",
"ipv4": "185.236.9.61",
"ipv6_prefix": "2a01:ea05:0:f00::/56",
"ptr": "web-1-a1b2c3.vm.scamp.pro",
"ptr_custom": false,
"cpu_model": "Intel Xeon Gold 6154",
"disk": "NVMe",
"error": null,
"created_at": "2026-10-23T08:12:40+00:00",
"net_capped": false,
"traffic": {
"month": "2026-10",
"out_bytes": 1830000000,
"in_bytes": 920000000
}
}
]
}Errors
| Status | When |
|---|---|
401 | No token, or a token that is not valid |
422 | The body or a parameter is not what the operation takes |
Every operation can also answer 401 without a valid token. All errors