Schnellstart
In drei Schritten zum ersten Aufruf: Token anlegen, als Umgebungsvariable bereitstellen und GET /me senden.
1. Token anlegen
- Öffne im Kundenbereich dein Profil und dort den Reiter „Zugriffstokens“.
- 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). - Lass den Ablauf bei 90 Tagen stehen oder wähle bis zu 365 Tage. Ein Token ohne Ablauf gibt es nicht.
- 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
}
}actoristpatbei einem Zugriffstoken undbotbei einem Bot.scopeslistet die Rechte, die das Token hat.usernennt den User bei einem Zugriffstoken,botden Bot bei einem Bot-Token. Das jeweils andere Feld istnull.tokenzeigt 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 HeaderRetry-Afterab. 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.
