Zum Hauptinhalt springenZenit-Hosting Logo

Schnellstart

In drei Schritten zum ersten Aufruf: Token anlegen, als Umgebungsvariable bereitstellen und GET /me senden.

1. Token anlegen

  1. Öffne im Kundenbereich dein Profil und dort den Reiter „Zugriffstokens“.
  2. Lege ein neues Token an: Vergib einen Namen und wähle mindestens ein Recht. Für den ersten Aufruf reicht jedes Recht, zum Beispiel „Server lesen“ (servers:read).
  3. Lass den Ablauf bei 90 Tagen stehen oder wähle bis zu 365 Tage. Ein Token ohne Ablauf gibt es nicht.
  4. Bestätige mit deinem zweiten Faktor. Das Token erscheint genau einmal. Kopiere es sofort, denn Zenit zeigt es danach nicht mehr an.

2. Token bereitstellen

Alle Beispiele lesen das Token aus der Umgebungsvariable ZENIT_TOKEN. Schreib es nie in Quellcode, in eine URL oder in ein Repository.

3. Ersten Aufruf senden

GET /api/developer/v1/me braucht kein bestimmtes Recht und zeigt, als wer das Token handelt.

cURL: ersten Aufruf senden
export ZENIT_TOKEN="<dein Token>"

curl "https://api.zenit-hosting.de/api/developer/v1/me" \
  -H "Authorization: Bearer $ZENIT_TOKEN"
JavaScript: ersten Aufruf senden
const response = await fetch('https://api.zenit-hosting.de/api/developer/v1/me', {
  headers: { Authorization: 'Bearer ' + process.env.ZENIT_TOKEN },
});

if (!response.ok) {
  const error = await response.json();
  throw new Error(error.code + ': ' + error.message + ' (' + error.requestId + ')');
}

console.log(await response.json());
Python: ersten Aufruf senden
import os
import requests

response = requests.get(
    "https://api.zenit-hosting.de/api/developer/v1/me",
    headers={"Authorization": "Bearer " + os.environ["ZENIT_TOKEN"]},
    timeout=10,
)

if not response.ok:
    error = response.json()
    raise RuntimeError(error["code"] + ": " + error["message"] + " (" + error["requestId"] + ")")

print(response.json())

Antwort lesen

Beispielantwort von GET /me
{
  "actor": "pat",
  "scopes": ["servers:read"],
  "user": { "id": "6c1f0f0e-6a8e-4c0a-9d3e-2f6b8c3f1a10", "username": "max" },
  "bot": null,
  "token": {
    "displayPrefix": "zhp_AbCdEfGh",
    "expiresAt": "2027-01-03T12:00:00Z",
    "serverRestricted": false
  }
}
  • actor ist pat bei einem Zugriffstoken und bot bei einem Bot.
  • scopes listet die Rechte, die das Token hat.
  • user nennt den User bei einem Zugriffstoken, bot den Bot bei einem Bot-Token. Das jeweils andere Feld ist null.
  • token zeigt den Anfang des Tokens (displayPrefix), den Ablauf (expiresAt) und ob es an Server gebunden ist (serverRestricted).

Wenn der Aufruf fehlschlägt

  • Antwort 401 mit TOKEN_INVALID: Das Token fehlt, ist falsch, abgelaufen oder widerrufen, oder der Aufruf kommt von einer nicht erlaubten IP-Adresse. Prüfe die Umgebungsvariable und das Token in deinem Profil. Mehr dazu unter Authentifizierung.
  • Antwort 429 mit RATE_LIMITED: Warte die Zeit im Header Retry-After ab. Siehe Rate-Limits.
  • Alle weiteren Codes erklärt die Seite Fehler.

Server auflisten und blättern

Mit dem Recht servers:read listet GET /servers deine Server. Wie du durch längere Listen blätterst, steht unter Pagination, alle Endpunkte stehen in der API-Referenz.