Create VPS
Create a new VPS instance. This endpoint creates an order, charges your saved payment method, and provisions the server. Use the Get Order Status endpoint to track progress.
Request
POST /api/v1/vps/create
Required scope: vps:provision
Headers
| Header | Required | Value |
|---|---|---|
Authorization |
Yes | Bearer YOUR_API_KEY |
Content-Type |
Yes | application/json |
Request Body
| Parameter | Required | Description |
|---|---|---|
hostsystem |
Yes | Host system identifier (e.g. de_epyc, de_ryzen) |
os |
Yes | Operating system identifier (e.g. ubuntu-24.04) |
cores |
Yes | Number of CPU cores (>= 1) |
mem |
Yes | RAM in GB (e.g. 8) |
disk |
Yes | NVMe disk in GB (e.g. 20) |
ips |
No | Number of IPv4 addresses (default: 1) |
backupSlots |
No | Number of backup slots (default: 2) |
networkSpeed |
No | Network speed in Mbit/s (default: 1000) |
storage |
No | Additional HDD storage in GB |
name |
No | Display name for the VPS |
Response
{
"data": {
"orderId": "507f1f77bcf86cd799439011",
"orderToken": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"hostsystem": "de_epyc",
"os": "ubuntu-24.04",
"cores": 4,
"mem": 8,
"disk": 80,
"status": "completed",
"paymentId": "tr_abc123"
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
orderId |
string | Order ID for tracking |
orderToken |
string | Order token (UUID) for tracking |
hostsystem |
string | The host system used |
os |
string | The OS that will be installed |
cores |
number | CPU cores provisioned |
mem |
number | RAM in GB |
disk |
number | NVMe disk in GB |
status |
string | completed, payment_pending, or payment_failed |
paymentId |
string | Mollie payment ID |
Status Values
| Status | Description |
|---|---|
completed |
Payment succeeded, VPS is being provisioned |
payment_pending |
Payment initiated (e.g. SEPA direct debit), awaiting confirmation |
payment_failed |
Payment was declined or failed |
Prerequisites
Before using this endpoint, ensure:
- Your account has completed at least one checkout via the web dashboard (to establish a payment mandate)
- You have a valid payment method on file
- Your account is not suspended
Use the VPS Pricing endpoint to check available host systems, operating systems, and component pricing before creating a VPS.
Error Responses
| Status | Code | Description |
|---|---|---|
| 400 | MISSING_HOSTSYSTEM |
The hostsystem field is required |
| 400 | MISSING_OS |
The os field is required |
| 400 | INVALID_CORES |
The cores field must be >= 1 |
| 400 | INVALID_MEM |
The mem field must be >= 1 |
| 400 | INVALID_DISK |
The disk field must be >= 1 |
| 400 | PRICING_UNAVAILABLE |
Could not calculate price for VPS order |
| 403 | account_suspended |
Account is suspended |
| 403 | no_valid_mandate |
No valid payment method on file |
| 403 | no_billing_address |
Billing address is missing |
| 403 | INSUFFICIENT_SCOPE |
API key lacks vps:provision scope |
| 409 | DUPLICATE_ORDER |
An identical order is already pending |
Example
# Create a basic VPS
curl -X POST https://hosting.site.quest/api/v1/vps/create \
-H "Authorization: Bearer sq_live_a94ecfca096d..." \
-H "Content-Type: application/json" \
-d '{
"hostsystem": "de_epyc",
"os": "ubuntu-24.04",
"cores": 4,
"mem": 8,
"disk": 80
}'
# Create a VPS with all options
curl -X POST https://hosting.site.quest/api/v1/vps/create \
-H "Authorization: Bearer sq_live_a94ecfca096d..." \
-H "Content-Type: application/json" \
-d '{
"hostsystem": "de_epyc",
"os": "ubuntu-24.04",
"cores": 8,
"mem": 16,
"disk": 160,
"ips": 2,
"backupSlots": 4,
"networkSpeed": 2000,
"name": "Production Server"
}'
MCP
This action is also available via the create_vm MCP tool.