# GET /v1/health

Stav API, kanonickej SK databázy a synchronizačného pipeline. Endpoint rozlišuje dostupnosť služby od aktuálnosti dát.

```bash
curl "https://api.subjekt.sk/v1/health"
```

## Odpoveď

```json
{
  "status": "ok",
  "data": {
    "sk_entities": 2261276,
    "sk_last_sync": "2026-07-17 13:40:00",
    "last_sync_status": "ok",
    "last_sync_entities_upserted": 2261276,
    "sync_lag_seconds": 90,
    "last_attempt_at": "2026-07-17 13:40:00",
    "last_attempt_error": null,
    "last_success_at": "2026-07-17 13:40:00",
    "source_last_modified": "Sun, 12 Jul 2026 05:34:31 GMT",
    "source_artifact_hash": "sha256:…",
    "rpo_last_success_at": "2026-07-12 06:00:00",
    "tax_last_success_at": "2026-07-17 13:40:00",
    "tax_source_last_modified": "2026-07-17T02:00:00.000Z",
    "cz_status": "not_checked",
    "cz_source": "ares_proxy"
  }
}
```

## Význam statusu

| HTTP | `status` | Význam |
|---|---|---|
| 200 | `ok` | Databáza odpovedá a platí všetko: posledný pokus uspel (alebo sync beží najviac 3 hodiny), posledný úspešný sync je mladší ako 26 hodín, RPO snapshot nie je starší ako 10 dní, daňové zosúladenie je mladšie ako 26 hodín a daňové zdroje sú mladšie ako 3 dni. |
| 200 | `degraded` | API odpovedá, ale niektorá z podmienok pre `ok` neplatí. API ďalej servíruje posledné úspešne importované dáta. |
| 503 | `error` | Health dotaz do databázy zlyhal. |

`sk_last_sync` je spätne kompatibilný alias pre `last_success_at`. `last_attempt_at` a `last_attempt_error` opisujú posledný pokus, takže zlyhanie už neprepíše čas posledného úspechu.

## Dôležité polia

| Pole | Popis |
|---|---|
| `sk_entities` | Skutočný počet SK subjektov v kanonickej databáze. |
| `sync_lag_seconds` | Sekundy od poslednej úspešnej synchronizácie. |
| `source_last_modified` | Čas publikovania použitého RPO snapshotu. |
| `source_artifact_hash` | SHA-256 zdrojového artefaktu pre audit a reprodukovateľnosť. |
| `rpo_last_success_at` | Posledný úspešný import RPO, nezávislý od denného zosúladenia daní. |
| `tax_last_success_at` | Posledné úspešné zosúladenie daní. |
| `tax_source_last_modified` | Starší z dátumov publikovania dvoch FS zdrojov. |
| `cz_source` / `cz_status` | `ares_proxy` / `not_checked`: health nekontroluje dostupnosť ARES. |

Pre monitoring považujte za zdravý iba `HTTP 200` spolu so `status: "ok"`. Podrobnosti sú na stránke [Aktuálnosť a cache dát](../aktualnost-dat.md).
