List volumes
GET/api/v1/volumes
Every volume of the account, with the server each one is attached to.
Example request
curl -X GET "https://platform.serverscamp.com/api/v1/volumes" \
-H "Authorization: Bearer $API_TOKEN"import os, requests
token = os.environ["API_TOKEN"]
r = requests.get(
f"https://platform.serverscamp.com/api/v1/volumes",
headers={"Authorization": f"Bearer {token}"},
)
r.raise_for_status()
print(r.json())const r = await fetch(`https://platform.serverscamp.com/api/v1/volumes`, {
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 Volumerequired | |
| items[].disk_uuid | stringrequired | Volume id |
| items[].display_name | string, optional | Name given at create |
| items[].size_gb | integerrequired | Size, GB |
| items[].storage_class_id | integerrequired | Disk id: standard, enterprise or their dedicated twins |
| items[].storage_class_name | string, optional | Disk name |
| items[].limits | VolLimitsrequired | |
| items[].limits.read_iops_limit | integerrequired | Read operations a second, at most |
| items[].limits.write_iops_limit | integerrequired | Write operations a second, at most |
| items[].limits.read_bandwidth_limit | integerrequired | Read throughput, MB/s, at most |
| items[].limits.write_bandwidth_limit | integerrequired | Write throughput, MB/s, at most |
| items[].state | stringrequired | creating while it is made, then created; attaching, detaching, resizing and deleting while those run; failed when something went wrong |
| items[].vm_uuid | string, optional | Server it is attached to; null when it is free |
| items[].attached_vm_name | string, optional | Name of that server |
| items[].monthly_cost_eur | number, optional | What the volume costs a month at its size, EUR |
| items[].provision_phase | string, optional | While a volume is made from a backup: preparing, restoring, then ready |
| items[].provision_pct | integer, optional | How far that restore got, percent |
| items[].created_at | stringrequired | When it was created, ISO 8601 |
| total | integerrequired |
{
"items": [
{
"disk_uuid": "c7a1e3f9-52b8-4d06-9e41-8b3f2a6d0c75",
"display_name": "data",
"size_gb": 100,
"storage_class_id": 18,
"storage_class_name": "standard",
"limits": {
"read_iops_limit": 100000,
"write_iops_limit": 100000,
"read_bandwidth_limit": 1024,
"write_bandwidth_limit": 1024
},
"state": "created",
"vm_uuid": "6f1c2a9e-4b3d-4e8a-9c71-2d5e8f0a1b34",
"attached_vm_name": "web-1",
"monthly_cost_eur": 8,
"provision_phase": null,
"provision_pct": null,
"created_at": "2026-11-01T09:40:02+00:00"
}
],
"total": 1
}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