Zum Inhalt springen
Sursa Developers

POST/v1/api-keys

API-Schlüssel erstellen

create_api_key

Authentifizierung

Senden Sie einen API-Schlüssel im Header Authorization: Authorization: Bearer <Schlüssel>.

Header-Parameter

  • Idempotency-Keystring

    Schlüssel für die sichere Wiederholung eines Schreibvorgangs: 1 bis 255 druckbare ASCII-Zeichen; empfohlen wird eine UUID v4 pro logischer Operation. Eine Wiederholung mit demselben Schlüssel innerhalb von 24 Stunden führt die Operation nicht erneut aus, sondern liefert die gespeicherte Antwort (Status, Header und Body) mit dem Header Idempotency-Replayed: true. Derselbe Schlüssel mit einer anderen Methode, einem anderen Pfad, Content-Type oder Body ergibt 409 api.idempotency_mismatch; solange die erste Anfrage noch läuft, 409 api.idempotency_in_progress mit Retry-After: 1. Nach einer 5xx- oder 429-Antwort wird der Schlüssel freigegeben, und eine Wiederholung führt die Operation erneut aus. Der Schlüssel gilt pro Organisation und Aufrufer (API-Schlüssel, Benutzer oder Schlüssel einer benutzerdefinierten Quelle).

    length ≥ 1, length ≤ 255

  • X-View-Asstring

    Nur für API-Schlüssel mit der Rolle admin. Führt die Anfrage mit dem Datenprofil <profile>[:viewer|verifier|editor] aus, zum Beispiel employee:viewer. Der Installationsschlüssel kann diesen Header nicht verwenden (403).

Cookie-Parameter

  • kb_view_asstring

    Cookie des Modus „Ansicht als“ für eine Sitzung. POST /auth/view-as setzt es, DELETE /auth/view-as entfernt es.

Anfragetext

application/json

Objekt: ApiKeyCreate

  • namestringerforderlich

    length ≥ 1, length ≤ 64

  • rolestring

    Standard: "editor"

  • data_profilestring | null

    Datenprofil des Schlüssels. Ohne dieses Feld erhält der Schlüssel das Standardprofil der Organisation. Ein Datenprofil gilt nicht für die Rolle admin. Ein Schlüssel mit dieser Rolle sieht alle Daten der Organisation, und ein anderes Profil als full ergibt 400 api_keys.data_profile_not_applicable.

  • expires_atstring (date-time) | null

    Ablaufzeitpunkt des Schlüssels (ISO 8601, in der Zukunft). null oder kein Wert bedeutet, dass der Schlüssel nicht abläuft.

  • scopesarray of ApiKeyScope | null

    Scopes des Schlüssels. Fehlen sie, richten sich die Scopes nach der Rolle: admin erhält read, write, admin; editor und verifier erhalten read, write; viewer erhält read. Der Scope system wird nur vom Administrator der Installation vergeben. Feingranulare Scopes resource:action (ApiKeyScope) werden ebenfalls akzeptiert; die früheren read, write und admin werden zu Sätzen von Scopes erweitert.

  • collection_idsarray of integer | null

    Beschränkt den Schlüssel auf diese Sammlungen der Organisation. Karten, Suche, Antworten und Ereignisse funktionieren nur in ihnen, zusätzlich zu Rolle und Datenprofil. Kein Wert oder eine leere Liste bedeutet keine Beschränkung. Ist der aufrufende Schlüssel selbst auf Sammlungen beschränkt, kann der neue Schlüssel nur in dessen Sammlungen liegen. Ohne dieses Feld erhält der neue Schlüssel die Sammlungen des aufrufenden Schlüssels. Eine leere Liste oder eine Sammlung außerhalb seiner Liste ergibt 400 api_keys.invalid_collections.

    items ≤ 100

  • allowed_cidrsarray of string | null

    Netzwerke, aus denen der Schlüssel verwendet werden darf, etwa 10.0.0.0/8 oder 2001:db8::/32. Eine einzelne Adresse ist ein Netzwerk aus einer Adresse. Eine Anfrage von einer anderen Adresse ergibt 403 api_keys.ip_not_allowed. Kein Wert bedeutet keine Beschränkung.

    items ≤ 50

Antworten

200Erfolgreiche Antwort

Antwort-Header

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

  • Idempotency-Replayed

    true bedeutet, dass die für diesen Idempotency-Key gespeicherte Antwort erneut geliefert wurde: Die Operation wurde nicht noch einmal ausgeführt.

application/json

Objekt: ApiKeyCreated

  • idintegererforderlich
  • namestringerforderlich
  • prefixstringerforderlich
  • roleRoleerforderlich
  • created_atstring (date-time)erforderlich
  • keystringerforderlich
  • data_profilestring | nullerforderlich
  • expires_atstring (date-time)

    Ablaufzeitpunkt. Nur bei Schlüsseln mit Ablauf vorhanden.

  • scopesarray of string

    Explizite Scopes des Schlüssels. Nur bei Schlüsseln mit explizit festgelegten Scopes vorhanden.

  • collection_idsarray of integer

    Beschränkung auf Sammlungen. Nur bei Schlüsseln mit Beschränkung vorhanden.

  • allowed_cidrsarray of string

    Erlaubte Netzwerke. Nur bei Schlüsseln mit Beschränkung vorhanden.

400Die Anfrage ist ungültig: Ein Parameterwert oder der Zustand des Objekts lässt die Aktion nicht zu (`detail` ist eine Meldung).

Antwort-Header

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

application/json

Objekt: Error

401Es wurden keine Anmeldedaten gesendet (weder ein Sitzungscookie noch ein API-Schlüssel), oder der Schlüssel wurde nicht gefunden.

Antwort-Header

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

application/json

Objekt: Error

403Die Aktion ist nicht erlaubt: Die Rolle reicht nicht aus, es besteht kein Zugriff auf die Sammlung oder Karte, die Anfrage läuft im Modus „Ansicht als“, oder die Organisation ist gesperrt oder gelöscht (`detail` ist ein Objekt mit `code: org_suspended | org_deleted`).

Antwort-Header

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

application/json

Objekt: Error

422Validierungsfehler: Der Body oder die Parameter entsprechen nicht dem Schema (`detail` ist eine Liste von Validierungsfehlern), oder ein Parameterwert liegt außerhalb des zulässigen Bereichs (`detail` ist eine Meldung).

Antwort-Header

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

application/json

Objekt: Error

429Zu viele Anfragen (`api.rate_limited`), das Kontingent der Organisation für die Minute, den Tag oder den Monat ist aufgebraucht (`api.quota_exceeded`; `error.details` enthält `quota`, `limit` und `reset_at`), das Limit der Organisation ist erreicht, oder der Antwortdienst ist ausgelastet (`answers.engine_busy`). Warten Sie die im Header `Retry-After` angegebene Zeit ab.

Antwort-Header

  • Retry-After

    Anzahl der Sekunden, die Sie warten sollten, bevor Sie die Anfrage wiederholen.

  • RateLimit-Policy

    Geltende Limits im Format des IETF-Entwurfs draft-ietf-httpapi-ratelimit-headers: durch Kommas getrennte Einträge "<name>";q=<quota>;w=<window in seconds>. key ist die Anfragerate des API-Schlüssels (das Kontingent ist der Burst, das Fenster die Zeit bis zum vollständigen Auffüllen; für eine Sitzung heißt der Eintrag user, ohne Anmeldedaten ip); minute, day und month sind die Kontingente der Organisation für die Kalenderminute, den Kalendertag und den Kalendermonat in UTC.

  • RateLimit

    Was von jedem Limit in RateLimit-Policy übrig ist: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Limit des strengsten Eintrags in RateLimit-Policy (des Eintrags mit den wenigsten verbleibenden Anfragen).

  • X-RateLimit-Remaining

    Verbleibende Anfragen unter dem strengsten Limit.

  • X-RateLimit-Reset

    Sekunden bis zum Zurücksetzen des strengsten Limits.

application/json

Objekt: Error

Fehlercodes

Codes, die dieser Endpunkt in error.code zurückgeben kann, zusätzlich zu den allgemeinen Codes jeder Anfrage.

Sichere Wiederholungen

Senden Sie bei jedem POST und PATCH einen Header Idempotency-Key (zum Beispiel eine UUID). Eine Wiederholung mit demselben Schlüssel innerhalb von 24 Stunden gibt die gespeicherte Antwort zurück, statt die Anfrage erneut auszuführen.

Ratenlimits

Antworten enthalten die Header RateLimit und RateLimit-Policy sowie die älteren X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. Eine Antwort 429 enthält Retry-After in Sekunden: Warten Sie und versuchen Sie es dann erneut.

← api-keys · API-Referenz