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.