API-Dokumentation

VPS-Preise

Gibt die VPS-Komponentenpreise gruppiert nach Hostsystem zurück. Verwende diese Daten, um die monatlichen Kosten einer VPS-Konfiguration vor der Bestellung zu berechnen. Preise werden standardmäßig als Bruttopreise in EUR zurückgegeben; verwende currency und display zur Anpassung.

Du kannst auch Ressourcenmengen direkt übergeben, um den Gesamtpreis für eine bestimmte Konfiguration berechnen zu lassen.

Anfrage

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

Header

Header Erforderlich Wert
Authorization Ja Bearer DEIN_API_SCHLÜSSEL

Abfrageparameter

Parameter Erforderlich Beschreibung
currency Nein Preiswährung: EUR (Standard) oder USD
display Nein Preisanzeige: gross (Standard, Brutto) oder net (Netto, ohne MwSt.)
hostsystem Nein Hostsystem-Kennung für Preisberechnung (z.B. de_epyc). Erforderlich bei Angabe von Ressourcenmengen.
core Nein Anzahl CPU-Kerne
mem Nein RAM in GB
nvme Nein NVMe-Speicher in GB (Vielfaches von 10)
ipv4 Nein Anzahl IPv4-Adressen
backup Nein Anzahl Backup-Slots
network Nein Netzwerkgeschwindigkeit in Mbit/s (Vielfaches von 1000)
hdd Nein HDD-Speicher in GB (Vielfaches von 10)

Antwort (Preistabelle)

Wenn keine Ressourcenmengen angegeben werden, wird die vollständige Preistabelle zurückgegeben.

{
  "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"
  }
}

Felder der Preistabelle

Feld Typ Beschreibung
hostsystems array Liste der verfügbaren Hostsysteme mit Komponentenpreisen
hostsystems[].hostsystem string Hostsystem-Kennung (z.B. de_epyc)
hostsystems[].components array Komponentenpreise für dieses Hostsystem
hostsystems[].components[].component string Komponentenname: core, mem, nvme, ipv4, backup, network, hdd
hostsystems[].components[].price number Preis pro Schritt pro Monat in der angeforderten Währung und Anzeigemodus
hostsystems[].components[].step number Was ein Schritt darstellt (z.B. 1 bei mem = 1 GB)
hostsystems[].components[].min number Mindestwert für diese Komponente
hostsystems[].components[].max number Maximalwert für diese Komponente
hostsystems[].components[].unit string Lesbare Einheit (z.B. core, GB, IP)
hostsystems[].components[].included number Kostenlos enthaltene Menge (z.B. 2 bei Backup = 2 Slots gratis, 1000 bei Network = 1 Gbit/s gratis). 0 bedeutet kein Freitier.
yearlyDiscount number Rabattprozentsatz für jährliche Abrechnung (z.B. 10 = 10 % Rabatt)
currency string Währungscode (EUR oder USD)
display string Anzeigemodus (gross oder net)

Antwort (Preisberechnung)

Wenn Ressourcenmengen zusammen mit einem hostsystem angegeben werden, berechnet die API den Gesamtpreis für die angegebene Konfiguration. Nur die von dir angegebenen Komponenten werden im Ergebnis aufgeführt.

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"
  }
}

Felder der Preisberechnung

Feld Typ Beschreibung
hostsystem string Das für die Berechnung verwendete Hostsystem
components array Aufschlüsselung pro angeforderter Komponente
components[].component string Komponentenname
components[].quantity number Angeforderte Menge
components[].included number Kostenlose Menge (wird vor der Berechnung abgezogen)
components[].subtotal number Monatliche Kosten für diese Komponente nach Abzug der Freimenge
monthly number Monatliche Gesamtkosten
yearly number Jährliche Gesamtkosten (monatlich x 12 mit Jahresrabatt)
yearlyDiscount number Angewandter Rabattprozentsatz für jährliche Abrechnung
currency string Währungscode (EUR oder USD)
display string Anzeigemodus (gross oder net)

Preisberechnung

Um den monatlichen Preis für eine VPS-Konfiguration zu berechnen, multipliziere den Komponentenpreis mit der Anzahl der Schritte. Ziehe die included-Freimenge vor der Berechnung ab:

monatliche_kosten = SUMME(component.price * MAX(0, menge / component.step - component.included / component.step))

Beispiel: 4 Kerne zu 0,00 EUR/Kern + 8 GB RAM zu 0,00 EUR/GB + 4 Backup-Slots (2 inklusive) zu 0,00 EUR/Slot:

4 * 0,00 + 8 * 0,00 + (4 - 2) * 0,00 = 0,00 + 0,00 + 0,00 = 0,00 EUR/Monat

Für jährliche Abrechnung den Rabatt anwenden:

jaehrliche_kosten = monatliche_kosten * 12 * (1 - yearlyDiscount / 100)

Beispiel

# Vollständige Preistabelle abrufen
curl https://hosting.site.quest/api/v1/vps/pricing \
  -H "Authorization: Bearer sq_live_a94ecfca096d..."

# Nettopreise in USD abrufen
curl "https://hosting.site.quest/api/v1/vps/pricing?currency=USD&display=net" \
  -H "Authorization: Bearer sq_live_a94ecfca096d..."

# Preis für eine bestimmte Konfiguration berechnen
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

Diese Daten sind auch über das MCP-Tool get_vps_pricing verfügbar.