GET /api/developer/v1/servers
Server auflisten
Alle Server, auf die das Token zugreifen darf: bei persönlichen Tokens die eigenen und die freigegebenen Server, bei Bots die Server mit Installation. Ein auf Server eingeschränktes Token sieht nur diese. Seitenweise Liste: limit (1 bis 100, Standard 25) und cursor. nextCursor ist null auf der letzten Seite, sonst der Wert für den nächsten Aufruf.
Rechte
- servers:read Server lesen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| limit | Query | integer (int32) | nein | Einträge je Seite, 1 bis 100. Standard 25. Ein Wert außerhalb ergibt 400 `VALIDATION_ERROR`. |
| cursor | Query | string | nein | Wert von `nextCursor` der vorherigen Seite. Nicht ändern, nicht auswerten. Ein ungültiger Cursor ergibt 400 `VALIDATION_ERROR`. |
Antworten
OK
application/json
SchemaDevServerDtoPage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| data | DevServerDto[] | ja | |
| data[].id | string (uuid) | ja | |
| data[].name | string | ja | |
| data[].status | string | ja | Zustand des Servers in Zenit. |
| data[].powerState | string | null | ja | Zuletzt gemeldeter Betriebszustand; `null`, wenn unbekannt. |
| data[].game | DevServerGameDto | ja | |
| data[].game.name | string | ja | |
| data[].game.variant | string | ja | |
| data[].game.version | string | null | ja | |
| data[].memoryMb | integer (int32) | ja | |
| data[].cpuPercent | integer (int32) | ja | |
| data[].diskMb | integer (int32) | ja | |
| data[].location | string | null | ja | |
| data[].address | string | null | ja | |
| data[].isOwner | boolean | ja | |
| data[].createdAt | string (date-time) | ja | |
| nextCursor | string | null | ja |
{
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"status": "string",
"powerState": "string",
"game": {
"name": "string",
"variant": "string",
"version": "string"
},
"memoryMb": 0,
"cpuPercent": 0,
"diskMb": 0,
"location": "string",
"address": "string",
"isOwner": true,
"createdAt": "2026-10-05T12:00:00Z"
}
],
"nextCursor": "string"
}Codebeispiele
curl "https://api.zenit-hosting.de/api/developer/v1/servers" \ -H "Authorization: Bearer $ZENIT_TOKEN"
GET /api/developer/v1/servers/{id}
Server lesen
Stammdaten eines Servers: Status, Spiel, Ressourcen-Zuteilung und Adresse.
Rechte
- servers:read Server lesen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | Pfad | string (uuid) | ja | Id des Servers. |
Antworten
OK
application/json
SchemaDevServerDto
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| id | string (uuid) | ja | |
| name | string | ja | |
| status | string | ja | Zustand des Servers in Zenit. |
| powerState | string | null | ja | Zuletzt gemeldeter Betriebszustand; `null`, wenn unbekannt. |
| game | DevServerGameDto | ja | |
| game.name | string | ja | |
| game.variant | string | ja | |
| game.version | string | null | ja | |
| memoryMb | integer (int32) | ja | |
| cpuPercent | integer (int32) | ja | |
| diskMb | integer (int32) | ja | |
| location | string | null | ja | |
| address | string | null | ja | |
| isOwner | boolean | ja | |
| createdAt | string (date-time) | ja |
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"status": "string",
"powerState": "string",
"game": {
"name": "string",
"variant": "string",
"version": "string"
},
"memoryMb": 0,
"cpuPercent": 0,
"diskMb": 0,
"location": "string",
"address": "string",
"isOwner": true,
"createdAt": "2026-10-05T12:00:00Z"
}Codebeispiele
curl "https://api.zenit-hosting.de/api/developer/v1/servers/<id>" \ -H "Authorization: Bearer $ZENIT_TOKEN"
GET /api/developer/v1/servers/{id}/activity
Aktivität lesen
Der Aktivitätsverlauf des Servers, neueste zuerst, ohne Detailfelder. Seitenweise Liste: limit (1 bis 100, Standard 25) und cursor. nextCursor ist null auf der letzten Seite, sonst der Wert für den nächsten Aufruf.
Rechte
- servers:read Server lesen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | Pfad | string (uuid) | ja | Id des Servers. |
| limit | Query | integer (int32) | nein | Einträge je Seite, 1 bis 100. Standard 25. Ein Wert außerhalb ergibt 400 `VALIDATION_ERROR`. |
| cursor | Query | string | nein | Wert von `nextCursor` der vorherigen Seite. Nicht ändern, nicht auswerten. Ein ungültiger Cursor ergibt 400 `VALIDATION_ERROR`. |
Antworten
OK
application/json
SchemaDevActivityDtoPage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| data | DevActivityDto[] | ja | |
| data[].id | string (uuid) | ja | |
| data[].serverId | string (uuid) | ja | |
| data[].category | string | ja | Gruppe des Eintrags. |
| data[].type | string | ja | |
| data[].severity | string | ja | Gewicht des Eintrags. |
| data[].source | string | ja | Wer den Eintrag ausgelöst hat. `api` ist ein persönliches Token, `bot` ein Bot. |
| data[].title | string | ja | |
| data[].createdAt | string (date-time) | ja | |
| nextCursor | string | null | ja |
{
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"serverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"category": "string",
"type": "string",
"severity": "string",
"source": "string",
"title": "string",
"createdAt": "2026-10-05T12:00:00Z"
}
],
"nextCursor": "string"
}Codebeispiele
curl "https://api.zenit-hosting.de/api/developer/v1/servers/<id>/activity" \ -H "Authorization: Bearer $ZENIT_TOKEN"
POST /api/developer/v1/servers/{id}/commands
Konsolenbefehl senden
Übergibt einen Befehl (1 bis 1024 Zeichen) an die Konsole. Eine Antwort des Spiels gibt es nicht; Ausgaben liest du in der Konsole des Panels.
Rechte
- servers:console Konsolenbefehle senden
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | Pfad | string (uuid) | ja | Id des Servers. |
| Idempotency-Key | Header | string | nein | Empfohlen für jeden POST. 1 bis 128 sichtbare ASCII-Zeichen ohne Leerzeichen. Derselbe Schlüssel mit derselben Anfrage liefert innerhalb von 24 Stunden die gespeicherte Antwort (Header `Idempotency-Replayed: true`), mit einer anderen Anfrage 422, solange die erste läuft 409. |
Request-Body
application/json
SchemaDevCommandRequest
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| command | string | ja |
{
"command": "string"
}Antworten
Accepted
application/json
SchemaDevCommandAcceptedDto
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| status | string | ja | Immer `sent`. |
{
"status": "string"
}Codebeispiele
curl -X POST "https://api.zenit-hosting.de/api/developer/v1/servers/<id>/commands" \
-H "Authorization: Bearer $ZENIT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"command": "string"
}'POST /api/developer/v1/servers/{id}/power
Power-Signal senden
Reiht start, stop, restart oder kill ein. Die Antwort 202 bestätigt nur das Einreihen; das Ergebnis steht im Aktivitätsverlauf. killAfterSeconds (10 bis 600) gilt nur für stop.
Rechte
- servers:power Server starten und stoppen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | Pfad | string (uuid) | ja | Id des Servers. |
| Idempotency-Key | Header | string | nein | Empfohlen für jeden POST. 1 bis 128 sichtbare ASCII-Zeichen ohne Leerzeichen. Derselbe Schlüssel mit derselben Anfrage liefert innerhalb von 24 Stunden die gespeicherte Antwort (Header `Idempotency-Replayed: true`), mit einer anderen Anfrage 422, solange die erste läuft 409. |
Request-Body
application/json
SchemaDevPowerRequest
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| signal | string | ja | Das Signal. |
| killAfterSeconds | integer (int32) | null | nein |
{
"signal": "string",
"killAfterSeconds": 0
}Antworten
Accepted
application/json
SchemaDevPowerAcceptedDto
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| signal | string | ja | |
| jobId | string (uuid) | null | ja | |
| deduped | boolean | ja |
{
"signal": "string",
"jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"deduped": true
}Codebeispiele
curl -X POST "https://api.zenit-hosting.de/api/developer/v1/servers/<id>/power" \
-H "Authorization: Bearer $ZENIT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"signal": "string",
"killAfterSeconds": 0
}'GET /api/developer/v1/servers/{id}/resources
Ressourcen lesen
Momentaufnahme aus dem Panel: Zustand, Arbeitsspeicher, CPU, Datenträger, Netzwerk und Laufzeit.
Rechte
- servers:read Server lesen
Parameter
| Name | Ort | Typ | Pflicht | Beschreibung |
|---|---|---|---|---|
| id | Pfad | string (uuid) | ja | Id des Servers. |
Antworten
OK
application/json
SchemaDevServerResourcesDto
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| state | string | ja | Betriebszustand laut Panel. |
| isSuspended | boolean | ja | |
| memoryBytes | integer (int64) | ja | |
| cpu | number (double) | ja | |
| diskBytes | integer (int64) | ja | |
| networkRxBytes | integer (int64) | ja | |
| networkTxBytes | integer (int64) | ja | |
| uptimeMs | integer (int64) | ja |
{
"state": "string",
"isSuspended": true,
"memoryBytes": 0,
"cpu": 0,
"diskBytes": 0,
"networkRxBytes": 0,
"networkTxBytes": 0,
"uptimeMs": 0
}Codebeispiele
curl "https://api.zenit-hosting.de/api/developer/v1/servers/<id>/resources" \ -H "Authorization: Bearer $ZENIT_TOKEN"
Bereich Server geladen, 6 Endpunkte.
