---
title: "Verfuegbarkeit und Datenstand"
method: GET
path: "/health"
tags: ["Betrieb"]
---

# Verfuegbarkeit und Datenstand

`GET /health`

## Request

- Base URL: `https://firmenwatch.ch/api/v1`
- URL: `https://firmenwatch.ch/api/v1/health`
- Auth: none required

Trennt die juengste bereits verfuegbare SHAB-Publikation von der lueckenlos verifizierten Freigabegrenze und dem daraus abgeleiteten Datenqualitaetsstatus. identity_quarantined_publications zaehlt exakt aktive, gespeicherte Quellen mit ungeklärter UID-Zuordnung. Ein positiver Wert bedeutet ok=false, data_quality_status=degraded und HTTP 503; auch ein aktueller oder unveraenderter erfolgreicher Ingest loest die Quarantaene nicht. problems erlaeutert diesen Befund. compliance_screening meldet Frische und Abdeckung der MWST-, FINMA- und SECO-Quellen unabhaengig. Ein dortiges Problem erzeugt allein keinen HTTP 503 und darf nie als negativer Firmenbefund gelten.

## Response `200`

SHAB-Kernbestand betriebsbereit und aktuell, ohne aktive Identitaetsquarantaene; Compliance kann im getrennten Feld eingeschraenkt sein.

- Health
  - `ok` boolean, required
  - `latest_publication` string, date, nullable, required: Datum der juengsten bereits im Bestand verfuegbaren SHAB-Publikation; kein Vollstaendigkeitsbeleg.
  - `verified_through` string, date, nullable, required: Letzter Publikationstag des lueckenlos technisch freigegebenen Datenstroms.
  - `expected_publication` string, date, required: Publikationstag, bis zu dem der regulaere Ingest aktuell sein muss.
  - `data_age_days` integer, nullable, required
  - `verified_age_days` integer, nullable, required: Alter der technischen Freigabegrenze in ganzen UTC-Tagen.
  - `data_quality_status` 'current' | 'processing' | 'degraded' | 'unavailable', required: Zusammenfassender Zustand aus Verfuegbarkeit, Freigabegrenze, offenen Ingest-Scheiben und aktiver Identitaetsquarantaene. Ein positiver identity_quarantined_publications-Wert bedeutet immer degraded.
  - `entities` integer, required: Bei der letzten PostgreSQL-Analyse geschaetzter Bestand.
  - `events` integer, required: Bei der letzten PostgreSQL-Analyse geschaetzter Bestand.
  - `publications` integer, required: Bei der letzten PostgreSQL-Analyse geschaetzter Bestand.
  - `identity_quarantined_publications` integer, required: Exakte Anzahl aktiver Publikationen mit dauerhaft ungeklärter UID-Zuordnung. Die Quellen sind gespeichert, aber nicht fuer eine Firmenprojektion freigegeben; unabhaengig vom Ergebnis des letzten Ingest-Laufs.
  - `problems` string[], required: Lesbare Hinweise zu aktiver UID-Quarantaene. Eine leere Liste allein belegt keinen gesunden Datenstand; massgebend sind ok und data_quality_status.
  - `counts_estimated` true, required: Nur entities, events und publications sind geschaetzte Bestandszahlen. identity_quarantined_publications, Datenalter und Stromgrenze sind exakt.
  - `history_available_from` '2025-01-03', date, required: Fruehester angebotener Tag der erfassten Publikationshistorie.
  - `history_complete` false, required: Es wird keine vollstaendige amtliche Gesamthistorie zugesichert.
  - `stream_high_water` integer, required: Exakte, zuletzt freigegebene Sequenz des oeffentlichen Ereignisstroms.
  - `ingest_backlog_from` string, date, nullable, required: Publikationstag der wichtigsten unvollstaendigen Ingest-Scheibe; sonst null.
  - `ingest_backlog_scope` string, nullable, required: Kanonischer Rubrik-/Subrubrik-Scope der unvollstaendigen Scheibe; sonst null.
  - `ingest_backlog_status` 'running' | 'error' | 'null', nullable, required: Status der wichtigsten unvollstaendigen Ingest-Scheibe; sonst null.
  - `compliance_screening` ComplianceHealth, required
    - `status` 'checked' | 'unavailable', required
    - `healthy` boolean, required
    - `checked_at` string, date-time, required
    - `checked_sources` integer, required
    - `problem_codes` string[], required
    - `warning_codes` string[], required
    - `sources` object[], required
      - `key` 'uid_vat' | 'finma_authorisations' | 'finma_warnings' | 'seco_sanctions', required
      - `sync_status` 'idle' | 'fetching' | 'healthy' | 'error' | 'missing', required
      - `coverage_status` 'not_applicable' | 'delta_only' | 'building' | 'complete' | 'unknown', required
      - `last_success_at` string, date-time, nullable, required
      - `last_complete_at` string, date-time, nullable, required
      - `freshness` 'fresh' | 'stale_warning' | 'stale_problem' | 'unknown', required
      - `freshness_warning_after_hours` integer, required
      - `freshness_problem_after_hours` integer, required
      - `problem_codes` string[], required
      - `warning_codes` string[], required

## Other responses

- `503`: Datenbestand veraltet, eine aufmerksamkeitspflichtige Ingest-Scheibe ist unvollstaendig oder fehlgeschlagen, eine aktive Identitaetsquarantaene bleibt offen (ok=false, data_quality_status=degraded), oder die Datenbank ist nicht erreichbar.

---

[API](https://skmtc.dev/firmenwatch/apis/firmenwatch-api.md) · [All operations](https://skmtc.dev/firmenwatch/apis/firmenwatch-api/llms.txt) · [OpenAPI document](https://skmtc.dev/firmenwatch/apis/firmenwatch-api/revisions/65e774135677?raw)
