Zum Inhalt springen

Admin-API

Eine Organisation ohne Browser-Sitzung verwalten: Tokens mit Scopes und Ablauf für Abrechnungsexporte, das Anlegen von Kunden und Mitgliedern sowie Audit-Feeds.

Einstellungen › Admin API in der Konsole öffnen

Token erstellen

Öffnen Sie in der Konsole Einstellungen › Admin API (Inhaber oder Admin, mit bestätigter E-Mail-Adresse). Benennen Sie das Token, wählen Sie die nötigen Scopes und die Laufzeit: bis zu 365 Tage, Standard 90 (die Konsole bietet 30/90/180/365). Das Geheimnis wird genau einmal angezeigt; nur die ersten Zeichen bleiben zur Wiedererkennung. Legen Sie es im Secret-Store Ihrer Integration ab, nie im Quellcode.

Schreib-Scopes kann nur ein Inhaber der Organisation vergeben, denn ein Schreib-Token handelt auf der API als Inhaber. Tokens werden nur aus einer angemeldeten Sitzung erstellt: ein Token kann nie Tokens erstellen, auflisten oder widerrufen.

# the token is shown once, at creation: keep it in your integration's secret store
export SLUIS_ADMIN_TOKEN="sluis_admin_…"

curl https://api.sluis.ai/admin/orgs \
  -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN"

Authentifizierung und Scopes

Senden Sie das Geheimnis bei jeder Anfrage als Bearer-Token. Ein Token ist an die Organisation gebunden, in der es erstellt wurde, und erreicht nur die Endpunkte, die seine Scopes erlauben; alles andere antwortet mit 403. Scopes sind nach Familien gruppiert: read öffnet GET auf der Familie, write öffnet jede Methode und schließt read ein. Nur-Lese-Familien haben keinen write-Scope.

Sitzungsgebunden, was auch immer das Token trägt: Token-Verwaltung, Zwei-Faktor-Einstellungen, Anbieter- und Gateway-Zugangsdaten, rechtliche Vereinbarungen, Organisationswechsel, Richtlinien-Versionshistorie und jede Zahlungsaktion.

FamilieLesen (GET)Schreiben
usage
Verbrauch pro Organisation (Abrechnungsexport)
GET /admin/v1/usage · GET /admin/usage
orgs
Organisationen und ihre Kunden, Budgets und Margen
GET /admin/orgsPOST /admin/orgs · PUT /admin/orgs/{id}/budget · PUT /admin/orgs/{id}/margin
members
Mitglieder, Rollen und Einladungen (Einladung nur per E-Mail)
GET /admin/membersPOST /admin/members · PUT/DELETE /admin/members/{id} · POST /admin/members/{id}/invite
keys
API-Schlüssel und Workloads
GET /admin/keys · GET /admin/workloads*POST/PUT/DELETE /admin/keys* · /admin/workloads*
policy
Die aktive Standardrichtlinie (nur lesen)
GET /admin/policy
audit
Audit-Log und Operator-Audit (Metadaten, keine Payloads)
GET /admin/audit · /admin/operator-audit · /admin/requests/live
billing
Guthaben, Rechnungen und Abrechnungen (nur lesen, nie eine Zahlung)
GET /admin/billing · /admin/billing/invoice/{id} · /admin/billing/statement/{y}/{m} · /admin/usage/org-spend
# a token without the scope for this endpoint
{
  "error": {
    "message": "token scope does not allow this endpoint",
    "type": "sluis_error"
  }
}

Verbrauchsexport für die Rechnungsstellung

GET /admin/v1/usage liefert den Verbrauch Ihres Organisationsbaums für ein Zeitfenster, ein Eintrag pro Organisation — auch Kunden ohne Verbrauch, damit ein Rechnungslauf jeden Kunden sieht. Beträge sind ganze Cent ohne MwSt., berechnet mit derselben Abfrage wie die Abrechnungsseite der Konsole, sodass der Export mit Ihrer Monatsabrechnung übereinstimmt.

from und to sind YYYY-MM-DD-Daten in UTC, halboffen [from, to), höchstens 92 Tage; ohne Angabe gilt der vorige Kalendermonat. Jede Organisation trägt Zeilen pro Anbieter und Modell. Speichern Sie den Zeitraum auf Ihrer Rechnung, damit ein erneuter Lauf desselben Monats bei Ihnen idempotent ist. Nur Stammorganisationen: das Token einer Kundenorganisation erhält 403.

# usage:read — every organisation under the root, per provider/model, for one month
curl "https://api.sluis.ai/admin/v1/usage?from=2026-08-01&to=2026-09-01" \
  -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN"
fromYYYY-MM-DD (UTC), inclusive. Default: first day of the previous month.
toYYYY-MM-DD (UTC), exclusive. Default: first day of the current month. Window ≤ 92 days.
billable_centsInteger cents excl. VAT: what the root is charged for that organisation. list_cents is provider list price (0 on BYOK).

Organisationen, Mitglieder und Schlüssel anlegen

Mit orgs:write legt eine Agentur Kundenorganisationen aus dem eigenen CRM an und setzt Budget und Marge; der Inhaber, der das Token erstellt hat, wird erster Inhaber jedes neuen Kunden und muss dafür weiterhin Inhaber sein. members:write lädt nur per E-Mail ein, ändert Rollen und entfernt Personen — ein Token kann weder die Inhaberrolle vergeben noch ein Passwort setzen noch einen Inhaber entfernen. keys:write legt API-Schlüssel und Workloads an.

Jede Änderung durchläuft dieselben Prüfungen, Rollen- und Abrechnungsregeln wie die Konsole: Kundenorganisationen anzulegen setzt weiterhin eine aktive Abrechnung voraus. Ein Token kann keine Inhaberrolle vergeben, keine Passwörter setzen und keine Anfrage- oder Antwortinhalte lesen.

# orgs:write — a new client organisation under your agency (201 → { id, name, kind, parent_id, … })
curl https://api.sluis.ai/admin/orgs \
  -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN" -H "Content-Type: application/json" \
  -d '{ "name": "Client BV", "allocated_budget_microeur": 250000000 }'

# its monthly budget (micro-euros; null clears) and reseller margin (basis points)
curl -X PUT https://api.sluis.ai/admin/orgs/$ORG_ID/budget  -d '{ "allocated_budget_microeur": 500000000 }'curl -X PUT https://api.sluis.ai/admin/orgs/$ORG_ID/margin  -d '{ "margin_bps": 2000 }'

Ablauf, Ratenlimit, Widerruf und Audit

Jedes in der Konsole erstellte Token läuft ab; ein abgelaufenes Token antwortet mit 401 wie ein widerrufenes, und die Konsole zeigt es als abgelaufen. Widerrufen Sie in derselben Tabelle — das Token authentifiziert innerhalb von 30 Sekunden nicht mehr. Jedes Token ist auf 600 Anfragen pro Minute begrenzt; darüber antwortet das Gateway mit 429 und einem Retry-After-Header: warten und erneut versuchen.

Jede mit einem Token vorgenommene Änderung wird ins Operator-Audit geschrieben (GET /admin/operator-audit, auch in der Konsole unter Audit-Log) mit Token-ID und -Name als Akteur, sodass die Spur immer die handelnde Integration nennt. audit:read liefert nur Metadaten — nie Anfrage- oder Antwortinhalte. Tokens werden automatisch widerrufen, wenn der Nutzer, der sie erstellt hat, entfernt wird, die Inhaberrolle verliert oder sein Passwort ändert.

# audit:read — a mutation made with a token names the token as its actor
curl https://api.sluis.ai/admin/operator-audit -H "Authorization: Bearer $SLUIS_ADMIN_TOKEN"
{
  "rows": [{
    "action": "org.create", "target_type": "organisation", "target_id": "…",
    "actor_email": "admin-token",
    "metadata": { "name": "Client BV", "actor_token": { "id": "…", "name": "crm-sync" } }
  }]
}

Fehler

Fehler nutzen dieselbe Hülle wie der Rest der API: ein error-Objekt mit message und type. Der Statuscode sagt, was zu tun ist.

Ein 403 mit „token scope does not allow this endpoint“ bedeutet: das Token existiert und ist gültig, hat aber den Scope nicht. Erstellen Sie ein neues Token mit dem richtigen Scope, statt ein bestehendes zu erweitern — Scopes stehen bei der Erstellung fest.

StatusBedeutung
401Token fehlt, ist ungültig, widerrufen oder abgelaufen.
403Die Scopes des Tokens decken diesen Endpunkt nicht ab, oder die Rollenregeln lehnen die Aktion ab.
429Ratenlimit pro Token überschritten; Retry-After Sekunden warten.
400Ungültiger Body oder ungültige Abfrage (die Meldung nennt das Feld).