L lionbackup CLOUD
REGISTREREN LOGIN
Nu beschikbaar

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

  1. 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.

  2. 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)
  3. Aanroepen met het token versturen

    Alle endpoints staan onder https://api.lionbackup.cloud/api/v1 en verwachten het token in de header Authorization:

    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.