API Documentation

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.