Die lionbackup-API
Projekte anlegen, Backup-Token ausstellen und widerrufen, Zonen und Organisationen abfragen: eine REST-API mit JSON, offener OpenAPI-3.1-Spezifikation und Terraform-Provider. Sie prüft dieselben Rechte wie das Portal.
In drei Schritten zum ersten Aufruf
Service Account und Schlüssel anlegen
Im Portal unter Developer legen Sie einen Service Account und dazu einen API-Schlüssel an. Der Service Account hat genau die Rechte Ihres Benutzerkontos; der Schlüssel wird nur einmal angezeigt.
Schlüssel gegen ein Zugriffstoken tauschen
Der Schlüssel ist kein Bearer-Token. Sie tauschen ihn gegen ein Zugriffstoken, das 15 Minuten gilt:
ACCESS_TOKEN=$(curl -s https://authentik.prod.lionbackup.cloud/application/o/token/ \ -d grant_type=client_credentials \ -d client_id=lionbackup-api \ -d client_secret="$LIONBACKUP_API_KEY" \ -d scope="profile lionbackup_api" | jq -r .access_token)
Aufrufe mit dem Token senden
Alle Endpunkte liegen unter
https://api.lionbackup.cloud/api/v1und erwarten das Token in der KopfzeileAuthorization:API=https://api.lionbackup.cloud/api/v1 curl -s "$API/organizations" -H "Authorization: Bearer $ACCESS_TOKEN" # 200 {"organizations": [{ "id": "9b2e6c1a-…", "name": "Beispiel GmbH", "status": "approved", "role": "owner" }]}
Beispiel: Projekt anlegen und Write-Token ausstellen
Ein Projekt braucht einen Namen und die Kennung seiner Storage-Zone. Ein Backup-Token gehört zu genau einem Projekt: Mit einem Write-Token sichert der Client, mit einem Read-Token stellt er wieder her.
# Zone wählen: buchbar sind Zonen mit status "active" ZONE_ID=$(curl -s "$API/zones" -H "Authorization: Bearer $ACCESS_TOKEN" \ | jq -r '.zones[] | select(.name == "de01-1") | .id') # Projekt anlegen (Rolle owner oder admin in der Organisation) curl -s -X POST "$API/organizations/$ORG_ID/projects" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"name\":\"web-servers\",\"availability_zone_id\":\"$ZONE_ID\"}" # 201 {"project": { "id": "ea1296ad-…", "name": "web-servers", "status": "active", "availability_zone_id": "b0000001-…", "alert_email": null, … }} # Write-Token für den Client ausstellen curl -s -X POST "$API/projects/$PROJECT_ID/tokens" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"type":"write","operating_system":"Linux"}' # 201: "secret" ist das Backup-Token und erscheint nur in dieser Antwort {"token": {"id": "c4d1e8f2-…", "type": "write", "secret": "9f3e7b1c…"}}
Antworten und Kennungen sind gekürzt dargestellt. Ein Projekt wird nicht gelöscht, sondern mit POST /projects/{projectId}/close geschlossen: Write-Token werden sofort widerrufen, Read-Token bleiben für Wiederherstellungen während der Vorhaltezeit gültig.
Alle Endpunkte
Projekte
GET/organizations/{orgId}/projects
POST/organizations/{orgId}/projects
GET/projects/{projectId}
PATCH/projects/{projectId}
POST/projects/{projectId}/close
Auflisten, anlegen, lesen, Name, Alarm-E-Mail und Abrechnungsreferenz ändern, schließen.
Backup-Token
GET/projects/{projectId}/tokens
POST/projects/{projectId}/tokens
DELETE/projects/{projectId}/tokens/{tokenId}
Read- und Write-Token für Linux, Windows und macOS anlegen, auflisten (nur Metadaten) und widerrufen.
Verzeichnis
GET/zones
GET/organizations
GET/whoami
GET/openapi.yaml
Storage-Zonen mit Status, Ihre Organisationen samt Rolle, das handelnde Service Account und die Spezifikation des laufenden Standes.
Gut zu wissen
Rechte wie im Portal
Ein Service Account erbt die Rechte seines Besitzers. Was Sie nicht sehen dürfen, antwortet mit 404; eine Aktion, die Ihre Rolle nicht erlaubt, mit 403.
Geheimnis nur einmal
Das Geheimnis eines Backup-Tokens erscheint nur in der Antwort auf das Anlegen. Die Plattform speichert davon nur einen Hash.
Ratenbegrenzung
60 Anfragen pro Minute je Service Account und je IP-Adresse. Jede Antwort trägt X-RateLimit-Kopfzeilen; darüber antwortet die API mit 429 und Retry-After.
Stabile Fehlercodes
Jeder Fehler ist ein JSON-Objekt {"error":"<code>"}, etwa invalid_token, not_found oder project_closed.
Schließen statt löschen
Das Schließen eines Projekts widerruft alle Write-Token sofort. Read-Token bleiben gültig, solange Backups in der Vorhaltezeit liegen, damit Sie weiterhin wiederherstellen können.
Benutzer und Organisationen
Benutzer, Rollen und Organisationen verwalten Sie im Portal. Die API deckt Projekte und Backup-Token ab; die Sicherung selbst übernimmt der quelloffene lionbackup-Client.
Spezifikation und Terraform
OpenAPI 3.1
Die vollständige Spezifikation als openapi.yaml, dazu eine interaktive Referenz in der Dokumentation. Die API liefert dieselbe Datei unter /api/v1/openapi.yaml aus und beschreibt damit immer den laufenden Stand.
Terraform-Provider
Mit dem Provider lionbackup legen Sie Projekte und Backup-Token als Infrastruktur-Code an, für Terraform ab 1.9 und OpenTofu. Einrichtung und Beispiel in der Dokumentation.
Fragen zur API beantworten wir über das Kontaktformular.