Authentifizierung

API-Schlüssel, Scopes und Verwaltung über das Dashboard.

API-Schlüssel

Jede Anfrage an eine KI-Kategorie authentifiziert sich mit einem API-Schlüssel im Authorization-Header:

http
Authorization: Bearer emk_live_xxxxxxxxxxxxxxxxxxxx

Ein Schlüssel ist immer einer Umgebung zugeordnet (z. B. "development", "production"), die wiederum einem Projekt und dann einer Organisation zugeordnet ist. Das Präfix unterscheidet den Schlüsseltyp:

  • emk_live_... — Produktionsschlüssel, tatsächlich abgerechnete Aufrufe
  • emk_test_... — Testschlüssel, automatisch erstellt für jede Umgebung außer "production"
Der rohe Wert eines Schlüssels wird nur einmal angezeigt, zum Zeitpunkt seiner Erstellung (POST /v1/environments/{environment_id}/api-keys). Nur sein Hash wird serverseitig gespeichert — wenn Sie ihn verlieren, widerrufen Sie ihn und erstellen Sie einen neuen.

Scopes

Bei der Erstellung kann ein Schlüssel auf eine Liste von Kategorien beschränkt werden (scopes: chat, images, vision, audio, video, embeddings, translation, agents). Ein Schlüssel ohne expliziten Scope (scopes: [], Standardwert) hat Zugriff auf alle Kategorien — die Einschränkung des Zugriffs ist daher immer eine bewusste Entscheidung.

bash
curl -X POST https://api.ileai.io/v1/environments/{environment_id}/api-keys \
  -H "Authorization: Bearer <jeton de session>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Cle chat uniquement",
    "scopes": ["chat"]
  }'

Eine Anfrage an eine Kategorie, die von den Scopes des Schlüssels nicht abgedeckt ist, liefert 403 insufficient_scope.

Schlüssel verwalten

Über das Dashboard (API-Schlüssel) oder über die API:

bash
# Lister les cles d'un environnement
GET /v1/environments/{environment_id}/api-keys

# Revoquer une cle
DELETE /v1/api-keys/{api_key_id}

Konten und Teams

Die Authentifizierung per API-Schlüssel dient programmatischen Aufrufen (SDK, direktes HTTP). Das Dashboard selbst verwendet eine Kontositzung (E-Mail/Passwort, httpOnly-Cookies) — die Endpunkte /v1/account, /v1/auth/login, /v1/orgs/{id}/invitations usw. akzeptieren keinen API-Schlüssel und sind nicht für den programmatischen Einsatz vorgesehen.