De lionbackup-API
Projecten aanmaken, back-uptokens uitgeven en intrekken, zones en organisaties opvragen: een REST-API met JSON, open OpenAPI 3.1-specificatie en Terraform-provider. Ze past dezelfde rechten toe als het portaal.
In drie stappen naar uw eerste aanroep
Serviceaccount en sleutel aanmaken
In het portaal onder Developer maakt u een serviceaccount aan en daarbij een API-sleutel. Het serviceaccount heeft precies de rechten van uw gebruikersaccount; de sleutel wordt maar één keer getoond.
Sleutel inwisselen voor een toegangstoken
De sleutel is geen bearer-token. U wisselt hem in voor een toegangstoken dat 15 minuten geldig is:
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)
Aanroepen met het token versturen
Alle endpoints staan onder
https://api.lionbackup.cloud/api/v1en verwachten het token in de headerAuthorization:API=https://api.lionbackup.cloud/api/v1 curl -s "$API/organizations" -H "Authorization: Bearer $ACCESS_TOKEN" # 200 {"organizations": [{ "id": "9b2e6c1a-…", "name": "Voorbeeld BV", "status": "approved", "role": "owner" }]}
Voorbeeld: project aanmaken en write-token uitgeven
Een project heeft een naam en de ID van zijn opslagzone nodig. Een back-uptoken hoort bij precies één project: met een write-token maakt de client back-ups, met een read-token zet hij ze terug.
# Zone kiezen: alleen zones met status "active" zijn bruikbaar ZONE_ID=$(curl -s "$API/zones" -H "Authorization: Bearer $ACCESS_TOKEN" \ | jq -r '.zones[] | select(.name == "de01-1") | .id') # Project aanmaken (rol owner of admin in de organisatie) 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 voor de client uitgeven 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" is het back-uptoken en verschijnt alleen in dit antwoord {"token": {"id": "c4d1e8f2-…", "type": "write", "secret": "9f3e7b1c…"}}
Antwoorden en ID’s zijn ingekort weergegeven. Een project wordt niet verwijderd maar gesloten met POST /projects/{projectId}/close: write-tokens worden direct ingetrokken, read-tokens blijven tijdens de bewaartermijn geldig voor het terugzetten.
Alle endpoints
Projecten
GET/organizations/{orgId}/projects
POST/organizations/{orgId}/projects
GET/projects/{projectId}
PATCH/projects/{projectId}
POST/projects/{projectId}/close
Opvragen, aanmaken, lezen, naam, alarm-e-mail en factuurreferentie wijzigen, sluiten.
Back-uptokens
GET/projects/{projectId}/tokens
POST/projects/{projectId}/tokens
DELETE/projects/{projectId}/tokens/{tokenId}
Read- en write-tokens voor Linux, Windows en macOS aanmaken, opvragen (alleen metadata) en intrekken.
Overzicht
GET/zones
GET/whoami
GET/organizations
GET/organizations/{orgId}
GET/openapi.yaml
Opslagzones met status, het actieve serviceaccount, uw organisaties met uw rol en betaalwijze, één organisatie met haar SEPA-incassomachtiging (IBAN gemaskeerd) en de specificatie van de draaiende versie.
Goed om te weten
Dezelfde rechten als in het portaal
Een serviceaccount erft de rechten van zijn eigenaar. Wat u niet mag zien, antwoordt met 404; een actie die uw rol niet toestaat, met 403.
Het geheim verschijnt één keer
Het geheim van een back-uptoken verschijnt alleen in het antwoord op het aanmaken. Het platform bewaart er alleen een hash van.
Aanroeplimiet
60 aanroepen per minuut per serviceaccount en per IP-adres. Elk antwoord bevat X-RateLimit-headers; boven de limiet antwoordt de API met 429 en Retry-After.
Stabiele foutcodes
Elke fout is een JSON-object {"error":"<code>"}, bijvoorbeeld invalid_token, not_found of project_closed.
Sluiten in plaats van verwijderen
Het sluiten van een project trekt alle write-tokens direct in. Read-tokens blijven geldig zolang er back-ups binnen de bewaartermijn liggen, zodat u nog kunt terugzetten.
Gebruikers en organisaties
Gebruikers, rollen en organisaties beheert u in het portaal. De API dekt projecten en back-uptokens; de back-ups zelf maakt de open-source lionbackup-client.
Specificatie en Terraform
OpenAPI 3.1
De volledige specificatie als openapi.yaml, plus een interactieve referentie in de documentatie. De API levert hetzelfde bestand onder /api/v1/openapi.yaml en beschrijft zo altijd de draaiende versie.
Terraform-provider
Met de provider lionbackup beheert u projecten en back-uptokens als infrastructuur-als-code, voor Terraform vanaf 1.9 en voor OpenTofu. Installatie en voorbeeld in de documentatie.
Vragen over de API? Bereik ons via het contactformulier.