DokumentationAPI Reference

API Reference — V1

Vollständige Referenz der Mado Hosting Reseller API. Verwalte Server, Backups, Dateien und mehr programmatisch.

Base URL

https://www.mado-hosting.com/api/v1

Authentifizierung

Alle API-Anfragen müssen einen gültigen API-Key im Authorization-Header enthalten. API-Keys beginnen mit dem Prefix rsk_ und können im Reseller Dashboard erstellt werden.

curl -X GET "https://www.mado-hosting.com/api/v1/servers" \
  -H "Authorization: Bearer rsk_your_api_key_here" \
  -H "Content-Type: application/json"

Antwortformat

Alle erfolgreichen Antworten folgen einem einheitlichen Format mit einem data-Objekt. Paginierte Endpunkte enthalten zusätzlich ein pagination-Objekt.

Erfolg

{
  "data": {
    "servers": [...]
  }
}

Fehler

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "name is required",
    "requestId": "req_abc123"
  }
}

Paginierung

{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total": 48,
    "totalPages": 2,
    "hasNext": true,
    "hasPrev": false
  }
}

Headers

HeaderBeschreibung
AuthorizationPflicht. Bearer Token mit API-Key. Bearer rsk_...
Content-TypePflicht für POST/PUT/PATCH. application/json
X-Request-IdAntwort-Header. Eindeutige Request-ID für Debugging.
Idempotency-KeyOptional. Verhindert doppelte Ausführung (24h Cache).
If-MatchOptimistic Locking für PATCH /servers/[id]. Version-Nummer übergeben.
X-RateLimit-LimitAntwort. Maximale Anfragen pro Zeitfenster.
X-RateLimit-RemainingAntwort. Verbleibende Anfragen im aktuellen Zeitfenster.

Fehlercodes

Alle Fehler folgen dem gleichen Format mit einem maschinenlesbaren code und einer menschenlesbaren message.

HTTPCodeBeschreibung
400VALIDATION_ERRORUngültige Parameter oder fehlende Pflichtfelder
400LIMIT_EXCEEDEDQuota-/Ressourcen-Limit erreicht (Backups, Schedules, etc.)
400NO_CHANGEResize auf gleiche Größe
400INVALID_RAMRAM nicht in gültigen Schritten (0.5GB)
400BELOW_MIN_RAMRAM unter Pricing-Minimum
400ABOVE_MAX_RAMRAM über Pricing-Maximum
400RAM_LIMIT_EXCEEDEDGesamt-RAM des Resellers überschritten
400DISK_USAGE_EXCEEDEDDowngrade nicht möglich wegen Disk-Nutzung
401AUTH_REQUIREDFehlender oder ungültiger API-Key
403FORBIDDENUnzureichende Berechtigungen
403ADDON_REQUIREDFeature benötigt ein Addon oder Premium Plan
403FEATURE_UNAVAILABLEFeature nicht verfügbar für diesen Plan
403DISTRIBUTION_RESTRICTEDMod erlaubt keinen 3rd-Party Download
404SERVER_NOT_FOUNDServer nicht gefunden oder gehört nicht zum Reseller
404USER_NOT_FOUNDBenutzer nicht gefunden (Subuser)
404NOT_FOUNDRessource auf Pelican-Ebene nicht gefunden
409CONFLICTVersions-Mismatch oder Duplikat
409SERVER_SUSPENDEDServer ist gesperrt — Schreibzugriff blockiert
409SERVER_INSTALLINGServer wird noch eingerichtet
409ALREADY_EXISTSEntität existiert bereits (z.B. Subuser)
422LIMIT_REACHEDPelican-seitiges Limit erreicht
500CONFIG_ERRORServer-Konfiguration fehlt (z.B. DB-Host)
500INTERNAL_ERRORInterner Serverfehler
500UPLOAD_FAILEDMod-Upload zum Server fehlgeschlagen
503SERVICE_UNAVAILABLEKeine verfügbaren Nodes, Ports oder Panel nicht erreichbar

Rate Limiting

Die API ist rate-limited. Informationen zum aktuellen Limit findest du in den Antwort-Headern.

Bei Rate-Limit-Überschreitung erhältst du einen 429 Too Many Requests. Warte bis X-RateLimit-Reset abgelaufen ist, bevor du weitere Anfragen sendest.

Verfügbare Endpunkte