What you can automate
Provisioning
Create a VPS in any of our eight locations with the OS and plan you need, straight from a script or CI pipeline.
Lifecycle
Start, stop and restart servers, reinstall the OS, reset passwords, change hostname, upgrade the plan, renew or delete.
Webhooks
Subscribe to events and let the platform call your endpoint when something happens, instead of polling.
Authentication
Every request carries an API key in the Authorization header. Keys are bound to your account and, for extra safety, to an allowlist of source IP addresses: even a leaked key is useless from a foreign network.
Authorization: Bearer YOUR_API_KEY
To get a key, open a ticket from your client area with the list of IPs you will call the API from. We issue keys the same day.
Quick start
The base URL is https://my.serva.one/api/v1/ext. Check that your key works:
curl -s https://my.serva.one/api/v1/ext/whoami \
-H "Authorization: Bearer YOUR_API_KEY"
Create a server:
curl -s -X POST https://my.serva.one/api/v1/ext/vps \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"plan": "Micro",
"os": "ubuntu-24.04",
"datacenter": "Netherlands",
"hostname": "worker-01"
}'
The response returns the new server id; its IP and root password appear in the object as soon as provisioning finishes, usually within a minute.
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /whoami | Key check, account info |
GET | /plans | Available plans and prices |
GET | /os | Operating system images |
GET | /datacenters | Locations open for ordering |
GET | /vps | List your servers, filter by IP, paginated |
GET | /vps/{id} | One server in detail |
POST | /vps | Create a server |
POST | /vps/{id}/power/{action} | start, stop or restart |
POST | /vps/{id}/reinstall | Reinstall the OS |
POST | /vps/{id}/reset-password | New root password |
POST | /vps/{id}/hostname | Change hostname |
POST | /vps/{id}/change-plan | Move to a bigger plan |
POST | /vps/{id}/renew | Renew the service |
POST | /vps/{id}/console | One-time console link |
DELETE | /vps/{id} | Delete the server |
GET | /webhooks | List webhook subscriptions |
POST | /webhooks | Create a subscription |
POST | /webhooks/{id}/test | Send a test event |
DELETE | /webhooks/{id} | Remove a subscription |
Errors
The API speaks plain HTTP: 2xx on success, 400 for an invalid request body, 401 for a missing or wrong key, 403 for a call from an IP outside your allowlist, 404 for objects that do not exist or belong to someone else. Error bodies are JSON with a human-readable detail field.