Zum Inhalt springen
Sursa Developers

GET/v1/jobs/stream

Änderungen an Jobs streamen (SSE)

jobs_stream

Server-Sent Events: ein Snapshot des aktuellen Batches, danach Änderungen an den Jobs der Organisation (Phase, Prozentsatz, Dateiname).

Jedes Ereignis hat eine id, einen Zeitstempel-Cursor. Bei einer erneuten Verbindung sendet der Browser ihn in Last-Event-ID (oder der Client übergibt ?since=), und der Snapshot wird um alles ergänzt, was sich während der Unterbrechung geändert hat.

Läufe von Quellen können außerdem Ereignisse {"type": "source", "source": {"id", "status", "updated_at"}} ohne ID-Cursor erzeugen. status ist die Phase einer laufenden Synchronisierung (listing, syncing, retry) oder ihr Ergebnis (ok, partial, error). Heruntergeladene Dateien werden von Jobs indexiert und kommen wie Uploads als Ereignisse job an.

Authentifizierung

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

Query-Parameter

  • sincestring | null

    Cursor zum Fortsetzen (ISO-Zeit mit Zeitzone), eine Alternative zu Last-Event-ID.

Header-Parameter

  • 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).

  • Last-Event-IDstring | null

    ID des zuletzt empfangenen Ereignisses (erneute Verbindung von EventSource). Der Stream beginnt mit den darauf folgenden Ereignissen.

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.

Antworten

200`text/event-stream`. Das erste Feld ist `retry: 3000`, danach folgt ein Ereignis `snapshot` mit den aktuellen Jobs und der Übersicht, gefolgt von Ereignissen `job` (ein Job hat sich geändert) und `summary` (die Übersicht nach einer Statusänderung). Jedes Ereignis trägt `id:`, einen Zeitstempel-Cursor (ISO). Bei einer erneuten Verbindung sendet der Browser ihn in `Last-Event-ID` (oder der Client übergibt ihn in `?since=`), und der Snapshot wird um alles ergänzt, was sich während der Unterbrechung geändert hat (bis zu 24 Stunden zurück). Nach jeweils 15 Sekunden Stille sendet der Server einen Kommentar `: keep-alive`. Antwort-Header: `Cache-Control: no-cache`, `X-Accel-Buffering: no`.

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.

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.

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.

← jobs · API-Referenz