Admin-API

Deine Flotte, programmatisch verwaltet.

Alles, was du im Panel pro App tun kannst, geht auch als REST-Call: App-IDs samt Enrollment-Code erzeugen, Flotte auflisten, Apps deaktivieren oder löschen. Gebaut für Skripte und AI-Agents — ein statischer API-Key, schlichtes JSON, kein SDK nötig.

Authentifizierung

Erzeuge einen API-Key im Panel unter Einstellungen → API-Keys. Der Key (pz_live_…) wird einmalig angezeigt — sicher ablegen. Bei jedem Request als Bearer-Token mitschicken:

curl https://poisonzero.com/api/v1/apps \
  -H "Authorization: Bearer pz_live_..."

Endpunkte

POST /v1/apps

Erzeugt App und Enrollment-Code in einem Call. Optionaler Body: {"name": "…"} (max. 100 Zeichen). Antwortet 201 mit appId, enrollCode und enrollCodeExpiresAt — alles, was eine Maschine zum Enrollen braucht.

curl -X POST https://poisonzero.com/api/v1/apps \
  -H "Authorization: Bearer $PZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "build-server-07"}'

GET /v1/apps

Listet deine Flotte: appId, name, status (pending / active / revoked), platform, agentVersion, lastSeenAt, createdAt.

curl https://poisonzero.com/api/v1/apps -H "Authorization: Bearer $PZ_API_KEY"

GET /v1/apps/{appId}

Liefert eine einzelne App. Unbekannte IDs — auch fremde Apps — antworten 404.

curl https://poisonzero.com/api/v1/apps/k7x2m9q4w1bz8r3tj6vn -H "Authorization: Bearer $PZ_API_KEY"

POST /v1/apps/{appId}/enroll-code

Erzeugt einen frischen Enrollment-Code für eine bestehende App, z. B. um eine Maschine neu zu provisionieren. Codes sind Einmal-Codes, 30 Tage gültig.

curl -X POST https://poisonzero.com/api/v1/apps/k7x2m9q4w1bz8r3tj6vn/enroll-code -H "Authorization: Bearer $PZ_API_KEY"

POST /v1/apps/{appId}/revoke

Deaktiviert eine App: Status wird revoked, die Zugangsdaten des Daemons verlieren sofort ihre Gültigkeit. Gleiche Wirkung wie „Widerrufen“ im Panel.

curl -X POST https://poisonzero.com/api/v1/apps/k7x2m9q4w1bz8r3tj6vn/revoke -H "Authorization: Bearer $PZ_API_KEY"

DELETE /v1/apps/{appId}

Löscht eine App endgültig: App, Konfiguration, Daemon-Identität, offene Enrollment-Codes und ihre Review-Queue-Einträge. Audit-Logs bleiben erhalten. Antwortet 204.

curl -X DELETE https://poisonzero.com/api/v1/apps/k7x2m9q4w1bz8r3tj6vn -H "Authorization: Bearer $PZ_API_KEY"

50 Daemons in einer Schleife provisionieren

Jeder Call liefert App-ID plus Enrollment-Code — direkt verwertbar in deiner Flotten-Automatisierung (Ansible, SSH-Schleife, MDM). Die Daemons enrollen sich beim ersten Start selbst:

for i in $(seq -w 1 50); do
  curl -s -X POST https://poisonzero.com/api/v1/apps \
    -H "Authorization: Bearer $PZ_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"name\": \"daemon-$i\"}"
done

Fehler

Alle Fehler haben dieselbe Form: {"error": {"code": "…", "message": "…"}}. 401 — fehlender/ungültiger/widerrufener Key oder gesperrter Account. 404 — unbekannter Endpunkt oder unbekannte/fremde App-ID. 400 — Validierung (z. B. invalid_name, limit_reached).

Maschinenlesbar: Markdown-Version · OpenAPI-3-Spec. Billing bleibt unverändert: Aktive Daemons werden nächtlich gezählt — egal, wie sie entstanden sind.