VPS Pricing
Returns VPS component sell prices grouped by hostsystem. Use this to calculate the monthly cost of a VPS configuration before ordering. Prices are returned as gross EUR by default; use currency and display to customise.
You can also pass resource amounts directly to have the API calculate the total price for a specific configuration.
Request
GET /api/v1/vps/pricing
GET /api/v1/vps/pricing?currency=USD&display=net
GET /api/v1/vps/pricing?hostsystem=de_epyc&core=4&mem=8&nvme=50&backup=4
Headers
| Header | Required | Value |
|---|---|---|
Authorization |
Yes | Bearer YOUR_API_KEY |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
currency |
No | Price currency: EUR (default) or USD |
display |
No | Price display mode: gross (default) or net (excluding VAT) |
hostsystem |
No | Hostsystem identifier for calculation mode (e.g. de_epyc). Required when passing resource amounts. |
core |
No | Number of CPU cores |
mem |
No | RAM in GB |
nvme |
No | NVMe storage in GB (multiples of 10) |
ipv4 |
No | Number of IPv4 addresses |
backup |
No | Number of backup slots |
network |
No | Network speed in Mbit/s (multiples of 1000) |
hdd |
No | HDD storage in GB (multiples of 10) |
Response (Pricing Table)
When no resource amounts are provided, the full pricing table is returned.
{
"data": {
"hostsystems": [
{
"hostsystem": "de_epyc",
"components": [
{ "component": "core", "price": 0.00, "step": 1, "min": 1, "max": 16, "unit": "core", "included": 0 },
{ "component": "mem", "price": 0.00, "step": 1, "min": 1, "max": 32, "unit": "GB", "included": 0 },
{ "component": "nvme", "price": 0.00, "step": 10, "min": 10, "max": 500, "unit": "GB", "included": 0 },
{ "component": "ipv4", "price": 0.00, "step": 1, "min": 1, "max": 8, "unit": "IP", "included": 0 },
{ "component": "backup", "price": 0.00, "step": 1, "min": 2, "max": 10, "unit": "slot", "included": 2 },
{ "component": "network", "price": 0.00, "step": 1000, "min": 1000, "max": 10000, "unit": "Mbit/s", "included": 1000 }
]
}
],
"yearlyDiscount": 10,
"currency": "EUR",
"display": "gross"
}
}
Pricing Table Fields
| Field | Type | Description |
|---|---|---|
hostsystems |
array | List of available hostsystems with component pricing |
hostsystems[].hostsystem |
string | Hostsystem identifier (e.g. de_epyc) |
hostsystems[].components |
array | Component prices for this hostsystem |
hostsystems[].components[].component |
string | Component name: core, mem, nvme, ipv4, backup, network, hdd |
hostsystems[].components[].price |
number | Price per step per month in the requested currency and display mode |
hostsystems[].components[].step |
number | What one step represents (e.g. 1 for mem = 1 GB) |
hostsystems[].components[].min |
number | Minimum allowed value for this component |
hostsystems[].components[].max |
number | Maximum allowed value for this component |
hostsystems[].components[].unit |
string | Human-readable unit (e.g. core, GB, IP) |
hostsystems[].components[].included |
number | Free tier amount included at no charge (e.g. 2 for backup = 2 free slots, 1000 for network = 1 Gbit/s free). 0 means no free tier. |
yearlyDiscount |
number | Discount percentage for yearly billing (e.g. 10 = 10% off) |
currency |
string | Currency code (EUR or USD) |
display |
string | Display mode (gross or net) |
Response (Price Calculation)
When resource amounts are provided along with a hostsystem, the API calculates the total price for the given configuration. Only the components you specify are included in the result.
GET /api/v1/vps/pricing?hostsystem=de_epyc&core=4&mem=8&nvme=50&backup=4
{
"data": {
"hostsystem": "de_epyc",
"components": [
{ "component": "core", "quantity": 4, "included": 0, "subtotal": 0.00 },
{ "component": "mem", "quantity": 8, "included": 0, "subtotal": 0.00 },
{ "component": "nvme", "quantity": 50, "included": 0, "subtotal": 0.00 },
{ "component": "backup", "quantity": 4, "included": 2, "subtotal": 0.00 }
],
"monthly": 0.00,
"yearly": 0.00,
"yearlyDiscount": 10,
"currency": "EUR",
"display": "gross"
}
}
Calculation Fields
| Field | Type | Description |
|---|---|---|
hostsystem |
string | The hostsystem used for pricing |
components |
array | Breakdown per requested component |
components[].component |
string | Component name |
components[].quantity |
number | Requested amount |
components[].included |
number | Free tier amount (subtracted before pricing) |
components[].subtotal |
number | Monthly cost for this component after free tier deduction |
monthly |
number | Total monthly cost |
yearly |
number | Total yearly cost (monthly x 12 with yearly discount applied) |
yearlyDiscount |
number | Discount percentage applied to yearly billing |
currency |
string | Currency code (EUR or USD) |
display |
string | Display mode (gross or net) |
Price Calculation
To calculate the monthly price for a VPS configuration, multiply the component price by the number of steps. Subtract the included free tier before pricing:
monthly_cost = SUM(component.price * MAX(0, quantity / component.step - component.included / component.step))
For example, 4 cores at 0.00 EUR/core + 8 GB RAM at 0.00 EUR/GB + 4 backup slots (2 included free) at 0.00 EUR/slot:
4 * 0.00 + 8 * 0.00 + (4 - 2) * 0.00 = 0.00 + 0.00 + 0.00 = 0.00 EUR/month
For yearly billing, apply the discount:
yearly_cost = monthly_cost * 12 * (1 - yearlyDiscount / 100)
Example
# Get full pricing table
curl https://hosting.site.quest/api/v1/vps/pricing \
-H "Authorization: Bearer sq_live_a94ecfca096d..."
# Get net prices in USD
curl "https://hosting.site.quest/api/v1/vps/pricing?currency=USD&display=net" \
-H "Authorization: Bearer sq_live_a94ecfca096d..."
# Calculate price for a specific configuration
curl "https://hosting.site.quest/api/v1/vps/pricing?hostsystem=de_epyc&core=4&mem=8&nvme=50&backup=4" \
-H "Authorization: Bearer sq_live_a94ecfca096d..."
MCP
This data is also available via the get_vps_pricing MCP tool.