Sprievodcovia

Zdroje a aktuálnosť firemných údajov

Odkiaľ pochádzajú dáta RPO, Finančnej správy a ARES, kedy sa obnovujú a ako rozlíšiť čas importu od veku zdroja.

Slovenské dáta

SK záznamy sa skladajú z RPO, exportov DIČ a platiteľov DPH Finančnej správy a voliteľného DIČ obohatenia z RÚZ.

  • GitHub Actions má naplánovanú kontrolu publikovania RPO denne o 03:17 UTC; importuje len zmenený snapshot. GitHub môže spustenie oneskoriť. Denná kontrola zachytí aj oneskorené týždenné vydanie.
  • DIČ a registrácie DPH sa zosúlaďujú denne, nezávisle od zmien RPO.
  • Hromadný RPO snapshot použitý pipeline je zdrojom publikovaný približne týždenne.
  • Čas posledného úspešného importu preto nie je to isté ako čas publikovania zdroja.

Oba údaje vracia health endpoint:

curl "https://api.subjekt.sk/v1/health"
  • last_success_at / sk_last_sync — posledná úspešná fáza synchronizácie (zvyčajne dane),
  • rpo_last_success_at — posledný úspešný import RPO,
  • tax_last_success_at, tax_source_last_modified — úspešné zosúladenie daní a starší z dátumov publikovania jeho dvoch zdrojov,
  • source_last_modified — čas publikovania importovaného RPO snapshotu,
  • last_attempt_at, last_sync_status, last_attempt_error — výsledok posledného pokusu,
  • sync_lag_seconds — vek posledného úspešného importu.

Presné podmienky pre status: "ok" a degraded sú v tabuľke na stránke GET /v1/health. Stránka Stav ukazuje, ktorá kontrola neprešla.

České dáta

CZ dáta sa získavajú z ARES. Detail je v pamäťovej cache Workera najviac šesť hodín, vyhľadávanie názvu 30 minút; navyše platí HTTP cache uvedená nižšie. Chyba ARES vracia 502 upstream_unavailable alebo 504 timeout, aj pri country=both. Výpadok sa neskrýva za neúplný zoznam.

Health nekontroluje dostupnosť ARES: uvádza cz_status: "not_checked". Pole updated_at českého detailu pochádza z ARES datumAktualizace, nie z času požiadavky.

Nová slovenská firma sa objaví po zapísaní do RPO, zahrnutí do nasledujúceho týždenného snapshotu a úspešnom importe. Zmeny teda nie sú okamžité; úplnosť závisí od zdrojových registrov. Viac registrácií pod rovnakým IČO zastupuje jeden deterministický záznam: aktívny má prednosť, potom Obchodný register, Živnostenský register a ostatné registre. Zaniknuté subjekty zostávajú vo vyhľadávaní.

Cache-Control

API momentálne vracia:

Úspešný endpoint Cache-Control
GET /v1/entity/{ico} public, max-age=3600
GET /v1/search public, max-age=300
GET /v1/health public, max-age=30

Chybové odpovede používajú no-store, aby sa výpadky, 429 alebo dočasné upstream chyby neukladali do cache.

Príklad kontroly

const response = await fetch("https://api.subjekt.sk/v1/health");
const health = await response.json();

if (!response.ok || health.status !== "ok") {
  console.warn("Subjekt API alebo synchronizácia je degradovaná", health.data);
}

Táto stránka vo formáte Markdown