Frische je Datentopf, Abdeckung, Durchsatz und die Steuerung der Hintergrundläufe. Die /health- und /status-Endpunkte brauchen keinen Schlüssel.
Wozu das gut ist, steht auf der Produktseite: Datenstand und Jobs
/coverageBestandsuebersicht ueber alle Statement-Toepfe plus Rueckstand je Lane.
Je Topf: Dokumente, Unternehmen und der Zeitraum, den sie abdecken. Je Lane zusaetzlich, wie viel noch offen ist. Gedacht als der eine Aufruf, mit dem sich eine Bestandsluecke feststellen laesst, bevor sie in einer Auswertung auftaucht.
Keine Parameter.
curl "$API/coverage" \ -H "X-API-Key: $KEY"
/healthohne SchlüsselKeine Parameter.
curl "$API/health"
/health/ingestohne SchlüsselFreshness-Uebersicht der Statement-Pipelines: letzter Lauf je Quelle (aus ingest_runs, geschrieben von refresh.py) plus grobe Staleness-Ampel. Fuer us zusaetzlich der DERA-Quartalsverzug — ein fehlender Datensatz macht den Lauf nicht rot, laesst aber Berichte fehlen. Auth-frei (unter /health). Nutzbar fuer Monitoring/Alerting.
Keine Parameter.
curl "$API/health/ingest"
{
"lanes": {
"us": { "lastRun": "2026-09-01T02:14:00Z", "stale": false },
"eu": { "lastRun": "2026-09-02T03:40:00Z", "stale": false },
"de": { "lastRun": null, "stale": true, "reason": "never ran" }
}
}/jobsBulk-Jobs, neueste zuerst.
| Name | Typ | Bedeutung |
|---|---|---|
limit | integer, in der Abfrage optional · Vorgabe 20 | — |
lane | string, in der Abfrage optional | Lane filtern, z. B. earnings.dates.repair |
status | string, in der Abfrage optional | Status filtern: pending, running, done, failed, cancelled, orphaned |
type | string, in der Abfrage optional | Job-Typ filtern |
curl "$API/jobs" \ -H "X-API-Key: $KEY"
/jobs/lanesPro Lane der juengste Job plus die Zahl der aktuell laufenden.
Das ist der Polling-Endpunkt fuer den Chunk-and-Loop-Betrieb: er beantwortet "laeuft gerade etwas" und "wie weit ist es" in einem Call.
Keine Parameter.
curl "$API/jobs/lanes" \ -H "X-API-Key: $KEY"
{
"lanes": [
{ "lane": "statements.esef", "running": 1, "backlog": 412 },
{ "lane": "earnings.dates.repair", "running": 0, "backlog": 0 }
]
}/jobs/reapVerwaiste running-Jobs auf orphaned setzen.
Ein Job gilt als verwaist, wenn ihn kein lebender Prozess mehr besitzt — entweder traegt er die Kennung eines fremden Prozesses, oder sein Heartbeat ist aelter als max_heartbeat_age_s.
Das laeuft beim Start und danach periodisch von selbst; dieser Endpunkt ist fuer den Fall, dass man nicht auf den naechsten Durchlauf warten will.
| Name | Typ | Bedeutung |
|---|---|---|
max_heartbeat_age_s | integer, in der Abfrage optional · Vorgabe 180 | — |
curl -X POST "$API/jobs/reap" \ -H "X-API-Key: $KEY"
/jobs/{job_id}| Name | Typ | Bedeutung |
|---|---|---|
job_id | string, im Pfad Pflicht | — |
curl "$API/jobs/job_7f3c" \ -H "X-API-Key: $KEY"
/jobs/{job_id}/cancelAbbruch anfordern.
Der Worker-Pool pollt cancel_requested alle 5 s, laufende Items werden zu Ende gefuehrt. Der Job endet danach mit status: "cancelled".
| Name | Typ | Bedeutung |
|---|---|---|
job_id | string, im Pfad Pflicht | — |
curl -X POST "$API/jobs/job_7f3c/cancel" \ -H "X-API-Key: $KEY"
/stats/throughputDurchsatz je Datentopf: Summe und Durchschnitt pro Tag im gewaehlten Fenster.
Beantwortet die Frage "wie viel schafft das System pro Tag?" — im Gegensatz zu /coverage (Bestand) und /health/ingest (Frische). Je Topf werden drei Durchschnitte geliefert: pro Kalendertag, pro Werktag (die aussagekraeftige Zahl, weil an Wochenenden weder veroeffentlicht noch eingereicht wird) und pro Tag mit Bewegung.
dateKind sagt, was gezaehlt wird: business = Ereignisse am Markt (Zufluss), ingest = von uns verarbeitete Datensaetze (Pipeline-Leistung).
| Name | Typ | Bedeutung |
|---|---|---|
days | integer, in der Abfrage optional · Vorgabe 30 | Fenster in Tagen (rueckwaerts von heute) |
series | boolean, in der Abfrage optional · Vorgabe False | Tageswerte mitliefern (fuer Charts) |
pots | string, in der Abfrage optional | Komma-getrennte Auswahl, z.B. directors_dealings,earnings_dates |
curl "$API/stats/throughput" \ -H "X-API-Key: $KEY"
/statusohne SchlüsselDatenstand je Topf plus laufende Hintergrundjobs — ein Call.
Pro Topf: Dokumente, Unternehmen, Zeitpunkt der letzten Aktualisierung (samt Herkunft dieses Zeitstempels), Frische-Ampel, Rueckstand und der zugehoerige Job. text ist die vorlesbare Kurzform, z. B. „29.363 Dokumente von 29.363 Unternehmen — aktualisiert 11.08.2026 12:10 UTC (vor 3 Std.)".
Default ist auf Polling ausgelegt (Metadaten-Zaehlungen, indizierte Zeitstempel). ?deep=true liefert exakte Zahlen und die teuren Zeitstempel — dann dauert es Sekunden bis Minuten.
| Name | Typ | Bedeutung |
|---|---|---|
deep | boolean, in der Abfrage optional · Vorgabe False | Exakte Zaehlungen und die teuren, direkt aus den Daten gelesenen Zeitstempel (Voll-Scans, Sekunden bis Minuten) |
group | string, in der Abfrage optional | Nur eine Gruppe: earnings, financials, statements, market, derived, reference |
dataset | string, in der Abfrage optional | Komma-separierte Keys, z. B. earnings.dates,prices |
recent_jobs | integer, in der Abfrage optional · Vorgabe 8 | Wie viele beendete Jobs |
curl "$API/status"
/status/datasetsohne SchlüsselWelche Toepfe es gibt und wo ihre Zahlen herkommen — ohne DB-Zugriff.
Nuetzlich, um ?dataset= zu bauen, ohne die volle Abfrage zu bezahlen.
Keine Parameter.
curl "$API/status/datasets"
/sync/allAlle Lanes anstossen — der eine Knopf.
Blockiert nicht und wartet auf keine Lane: jede laeuft als eigener Background-Job weiter. Laeuft eine Lane schon oder ist nichts faellig, wird sie uebersprungen statt zu scheitern (409/422 sind hier keine Fehler, sondern die Normalantwort).
| Name | Typ | Bedeutung |
|---|---|---|
lanes | string, in der Abfrage optional | Komma-separiert; leer = alle |
dry_run | boolean, in der Abfrage optional · Vorgabe False | nur die Rueckstaende melden |
curl -X POST "$API/sync/all" \ -H "X-API-Key: $KEY"