API Dokumentácia
FirmAPI poskytuje REST API na prístup k slovenským firemným dátam agregovaným z viacerých oficiálnych registrov (RPO, ORSR, ZRSR) s automatickým obohatením z daňových úradov a EU VIES.
Autentifikácia
Všetky API požiadavky vyžadujú autentifikáciu pomocou API kľúča. API kľúče si môžete vytvoriť vo svojom dashboarde.
Pridajte API kľúč do hlavičky Authorization:
Authorization: Bearer YOUR_API_KEY
Alebo použite hlavičku X-API-Key:
X-API-Key: YOUR_API_KEY
Základná URL
https://api.firmapi.sk/v1
Zdroje dát
FirmAPI agreguje dáta z viacerých slovenských registrov do jednej odpovede:
| Zdroj | Dáta | Frekvencia aktualizácie |
|---|---|---|
| RPO (Register právnických osôb) | Názov, IČO, sídlo, právna forma, stav | Denne |
| ORSR (Obchodný register) | Spoločníci, štatutárne orgány, predmety podnikania, základné imanie | Na vyžiadanie / mesačne |
| RegisterÚZ / Finančná správa | DIČ, IČ DPH, platca DPH | Denne (pri zmene) |
| EU VIES | Overenie platnosti IČ DPH | Na vyžiadanie (cache 7 dní) |
Neaktuálne dáta a obnova na pozadí
Pre firmy zapísané v obchodnom registri (ORSR) sú podrobné dáta (spoločníci, štatutárne orgány, predmety podnikania) pravidelne obnovované z ORSR.sk.
Ak sú dáta z ORSR staršie ako 30 dní, API vráti existujúce (neaktuálne) dáta okamžite a zaradí obnovu na pozadí. Odpoveď bude obsahovať:
-
meta.stale: true— dáta sú neaktuálne -
meta.retry_at— ISO 8601 časová značka, kedy znova požiadať o aktuálne dáta -
meta.stale_reason— buďorsr_data_outdatedaleboorsr_data_not_available
Jednoducho zopakujte rovnakú požiadavku po čase retry_at pre získanie aktuálnych dát. Obnova na pozadí sa zvyčajne dokončí za 10 – 15 sekúnd.
{
"data": { ... },
"meta": {
"rpo_updated_at": "2026-02-05T06:00:00Z",
"orsr_synced_at": "2025-12-01T14:30:00Z",
"source": "database",
"stale": true,
"retry_at": "2026-02-05T12:00:15Z",
"stale_reason": "orsr_data_outdated"
}
}
Endpointy
/company/ico/{ico}
Získať údaje o firme podľa IČO (identifikačné číslo organizácie).
Parametre
| ico | string | 8-miestne identifikačné číslo organizácie |
Príklad požiadavky
curl -X GET "https://api.firmapi.sk/v1/company/ico/51636549" \
-H "Authorization: Bearer YOUR_API_KEY"
Príklad odpovede
{
"data": {
"ico": "51636549",
"name": "Version Two s. r. o.",
"legal_form": "Spoločnosť s ručením obmedzeným",
"legal_form_code": "112",
"address": {
"street": "Hlavná 1",
"city": "Bratislava",
"postal_code": "81101",
"country": "Slovensko"
},
"established_date": "2018-05-15",
"terminated_date": null,
"source_register": "Obchodný register",
"status": "active",
"orsr_id": "427482",
"registration_date": "2018-05-15",
"business_activities": "Počítačové služby...",
"registered_capital": "5 000 EUR",
"shareholders": [
{"name": "John Doe", "address": "Bratislava", "share_amount": "5000 EUR", "share_percentage": "100%"}
],
"statutory_body": [
{"name": "John Doe", "role": "konateľ", "address": "Bratislava"}
]
},
"meta": {
"rpo_updated_at": "2026-02-05T06:00:00Z",
"orsr_synced_at": "2026-01-20T14:30:00Z",
"source": "database"
}
}
/search/autocomplete
Vyhľadávanie firiem podľa názvu alebo IČO s automatickým dopĺňaním. Vracia formát kompatibilný so Select2.
Query parametre
| q | string | Vyhľadávací dopyt (min 2 znaky) |
| limit | integer | Max. výsledkov (predvolené: 10, max: 20) |
Príklad odpovede
{
"results": [
{"id": "51636549", "text": "Version Two s. r. o.", "ico": "51636549", "city": "Bratislava"},
{"id": "12345678", "text": "Version s.r.o.", "ico": "12345678", "city": "Košice"}
],
"pagination": {"more": false}
}
/company/id/{orsr_id}
Získať údaje o firme podľa interného ID z obchodného registra.
Príklad požiadavky
curl -X GET "https://api.firmapi.sk/v1/company/id/427482" \
-H "Authorization: Bearer YOUR_API_KEY"
/company/{id}
Získať údaje o firme podľa interného databázového ID.
Príklad požiadavky
curl -X GET "https://api.firmapi.sk/v1/company/12345" \
-H "Authorization: Bearer YOUR_API_KEY"
/search/name
Vyhľadávanie firiem podľa názvu so stránkovaním.
Query parametre
| q | string | Názov firmy (min 3 znaky) |
| exact | integer | Presná zhoda (0 alebo 1, predvolené: 0) |
| limit | integer | Max. výsledkov (predvolené: 10, max: 100) |
| offset | integer | Offset stránkovania (predvolené: 0) |
/search/ico
Vyhľadávanie firiem podľa čiastočného IČO.
Query parametre
| q | string | Čiastočné IČO |
| limit | integer | Max. výsledkov (predvolené: 10, max: 100) |
/search/advanced
Vyhľadávanie podľa viacerých polí s rôznymi filtrami.
Query parametre
| name | string | Názov firmy |
| city | string | Mesto |
| legal_form | string | Právna forma |
/batch/ico
Vyžaduje plán Starter+
Hromadné vyhľadanie viacerých firiem podľa IČO. Vyžaduje plán Starter alebo vyšší.
Telo požiadavky
{
"icos": ["51636549", "12345678", "87654321"]
}
Príklad odpovede
{
"data": {
"51636549": {"found": true, "data": {...}},
"12345678": {"found": true, "data": {...}},
"87654321": {"found": false, "data": null}
},
"meta": {
"total": 3,
"found": 2,
"not_found": 1
}
}
/batch/names
Vyžaduje plán Starter+
Hromadné vyhľadanie viacerých firiem podľa názvu. Vyžaduje plán Starter alebo vyšší.
Telo požiadavky
{
"names": ["Version Two s. r. o.", "Example Company"]
}
/account/usage
Získať štatistiky využitia za aktuálne obdobie.
/account/quota
Získať zostávajúcu kvótu za aktuálne fakturačné obdobie.
/account/history
Získať históriu využitia za zadané obdobie.
Query parametre
| days | integer | Počet dní na zobrazenie (predvolené: 30, max: 365) |
Formát odpovede a dátový model
Firemné endpointy vracajú JSON objekt s poľami data a meta. Objekt data obsahuje všetky dostupné firemné údaje rozdelené do nasledujúcich kategórií.
Základné informácie
Základné firemné dáta z RPO: ico, name, legal_form, legal_form_code, address (street, city, postal_code, country), status (active, terminated, deleted), established_date, terminated_date, source_register.
Daňové informácie
Daňové identifikátory a stav DPH: dic (DIČ), ic_dph (IČ DPH), is_vat_payer, vies_valid (výsledok overenia cez EU VIES), vies_verified_at.
Detaily z ORSR
Podrobné dáta z obchodného registra (len pre firmy zapísané v ORSR): orsr_id, shareholders (name, address, share_amount, share_percentage, is_company, ico), statutory_body (name, role, address, acting_method), business_activities, registered_capital, registration_date.
Meta polia
Metadáta odpovede: rpo_updated_at (posledná synchronizácia RPO), orsr_synced_at (posledné načítanie z ORSR), source (database alebo cache), stale (boolean, či sú dáta z ORSR neaktuálne), retry_at (kedy znova požiadať o aktuálne dáta), stale_reason.
Webhooky
Webhooky vám umožňujú prijímať notifikácie v reálnom čase, keď sa zmenia firemné dáta vo FirmAPI. Namiesto opakovaného dotazovania API môžete nakonfigurovať URL adresu, ktorá bude prijímať HTTP POST požiadavky pri každej relevantnej udalosti.
Nastavenie
Nakonfigurujte endpoint pre webhooky v dashboarde. Každá registrácia dostane unikátny HMAC tajný kľúč na overenie podpisu.
Typy udalostí
-
company.updated— Vyvolaná pri zmene existujúcich firemných dát (napr. zmena adresy, noví spoločníci, zmena stavu) -
company.created— Vyvolaná pri pridaní novej firmy do databázy
Štruktúra payloadu
Každá webhook požiadavka obsahuje JSON payload s typom udalosti, časovou značkou a dátami dotknutej firmy.
{
"event": "company.updated",
"timestamp": "2026-02-05T12:00:00Z",
"data": {
"ico": "51636549",
"name": "Version Two s. r. o.",
"changes": ["address", "shareholders"]
}
}
Hlavičky
-
X-Webhook-Signature— HMAC-SHA256 podpis tela požiadavky pomocou vášho webhook tajného kľúča -
X-Webhook-Event— Typ udalosti (napr.company.updated) -
X-Webhook-Delivery-Id— Unikátny identifikátor doručenia pre idempotentnosť
Overenie podpisu
Každá webhook požiadavka je podpísaná pomocou HMAC-SHA256. Overte podpis, aby ste sa uistili, že požiadavka je autentická a nebola pozmenená.
// PHP verification example
$signature = $request->header('X-Webhook-Signature');
$payload = $request->getContent();
$expected = hash_hmac('sha256', $payload, $webhookSecret);
if (hash_equals($expected, $signature)) {
// Signature is valid
}
Správanie pri opakovaní
Ak váš endpoint vráti iný ako 2xx stavový kód, FirmAPI zopakuje doručenie s exponenciálnym odstupom: po 5 minútach, 30 minútach, 2 hodinách a 12 hodinách. Po 10 po sebe idúcich zlyhaniach sa webhook registrácia automaticky deaktivuje.
Limity požiadaviek
Limity požiadaviek závisia od vášho predplatného. Nasledujúce hlavičky sú súčasťou každej odpovede:
-
X-RateLimit-Limit-Minute— Povolené požiadavky za minútu -
X-RateLimit-Remaining-Minute— Zostávajúce požiadavky v tejto minúte -
X-RateLimit-Limit-Daily— Povolené požiadavky za deň -
X-RateLimit-Remaining-Daily— Zostávajúce požiadavky dnes
Chyby
Všetky chyby vracajú JSON objekt s poľami error a message.
| Stavový kód | Chyba | Popis |
|---|---|---|
| 401 | unauthorized | Neplatný alebo chýbajúci API kľúč |
| 403 | forbidden | Funkcia nie je dostupná vo vašom pláne |
| 404 | not_found | Firma nebola nájdená |
| 422 | validation_error | Neplatné parametre požiadavky |
| 429 | rate_limit_exceeded | Príliš veľa požiadaviek |
| 503 | service_unavailable | Služba je dočasne nedostupná |