Firemné údaje SK/CZ pre e-shopy
Dokumentácia k API
API-DATA poskytuje REST endpointy pre firemné údaje zo Slovenska (RPO) a Česka (ARES), autocomplete adries, overenie IČ DPH cez VIES a referenčné dáta ako banky a IBAN, krajiny, sviatky a menové kurzy ECB. Kľúčové datasety držíme a pravidelne synchronizujeme na vlastnom serveri, takže API nie je len jednoduchá proxy nad externými službami. Zachovávame v1 endpointy kvôli kompatibilite, no pre nové integrácie odporúčame v2.
Rýchly štart (JS snippet)
Najrýchlejšia integrácia do checkoutu alebo formulára: nastavíš selektory inputov a načítaš loader skript. V produkcii používaj kľúč viazaný na doménu.
<!-- FREE kľúč: meta tag netreba. Platené plány: vlož meta do <head>. -->
<meta name="autofirmy-verification" content="META_KOD">
<script>
window.RPO_AUTOCOMPLETE_CONFIG = {
apiKey: 'VAS_API_KEY',
// UI
theme: 'auto', // 'auto' | 'light' | 'dark' | 'custom'
dropdown: { width: 'min' }, // 'min' | 'match' | číslo (px)
// krajina (ak máš select SK/CZ)
countrySelect: '#CountryId',
// firmy + VAT
vies: 'on',
// adresy
addressMode: 'combined', // 'combined' | 'split'
address: { minChars: 3, limit: 8, debounce: 240 },
// mapovanie inputov (CSS selektory)
fields: {
company: '#FirmId',
ico: '#INId',
dic: '#TINId',
vat: '#INVATId',
// adresa (combined) - stále mapuj na "street"
street: '#AddressId',
city: '#CityId',
postal: '#PostalId'
},
// rohy dropdownu
radius: { top: 0, bottom: 8 }
};
</script>
<script src="https://api-data.eu/api/js/rpo_ares_autocomplete_inc.js" defer></script>
- apiKey - API kľúč (frontend, viazaný na doménu)
- countrySelect - CSS selektor selectu krajiny (SK/CZ). Ak je default -1, nastav ho na SK.
- fields - mapovanie inputov (CSS selektory)
- vies - on | off (overenie IČ DPH cez VIES)
- addressMode - combined (ulica+cislo v 1 poli) alebo split (ulica a cislo zvlášť)
- address.minChars, address.debounce, address.limit - UX vs. spotreba dopytov
- theme, dropdown.width, radius - vzhľad dropdownu
- Zlá krajina v selecte (napr. -1) - autocomplete firiem sa nespustí.
- Zlé selektory v fields - over v konzole document.querySelector(...).
- Adresy: aj pri addressMode: 'combined' mapuj ulicu do fields.street (nie fullAddress).
Ako sa rátajú dopyty (API calls)
- 1 dopyt = 1 HTTP request na API endpoint (v1 aj v2).
- Dopyty sa rátajú rovnako pre API, JS snippet aj moduly (všetko ide cez API).
- Limity sú hodinové. „Špička / hod.” je krátkodobý burst limit pre peak.
- Firma (v2, SK/CZ): každý návrh = 1 dopyt (
/api/v2/search_company.php). Pridetail=1sa po výbere polia zvyčajne vyplnia bez ďalšieho dopytu; iba ak chýbajú údaje, dotiahne sa detail = +1 dopyt (/api/v2/company.phpalebo/api/v2/cz_company.php). - Firma (CZ - iba IČO): priamy detail cez
/api/v2/cz_company.php= 1 dopyt. - Adresy (v2, SK/CZ): každý návrh = 1 dopyt (
/api/v2/search_address.php). Po kliknutí sa už len vyplnia polia (bez ďalšieho dopytu). - VIES: každé overenie = 1 dopyt (
/api/check_vat.php).
Autentifikácia
v1: len kvôli kompatibilite - kľúč je v URL parametri k.
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=12345678&country=SK"
GET https://api-data.eu/api/company.php?ico=12345678&country=SK&k=YOUR_KEY
Rate limit a doménové viazanie
- Licencie majú plán s limitom (napr. requests/hour).
- Niektoré licencie môžu byť viazané na doménu alebo IP (S2S).
- Pri prekročení limitu API vráti chybu (typicky 429).
Základné URL
- https://api-data.eu/api/v2/ (v2 - recommended)
- https://api-data.eu/api/ (v1 - legacy)
Test (konzola v dokumentácii)
InteraktívnaTestovanie endpointov priamo v prehliadači. Poznámka: API kľúč v browseri nie je možné „skryť” - vždy je čitateľný v DevTools (Network / Headers). Pre JavaScript integrácie preto používaj kľúč určený do frontendu: viazaný na doménu.
v2 - Company detail (SK/CZ index)
GET
Endpoint: /api/v2/company.php
Vyhľadá detail firmy podľa ico.
Podpora country=SK|CZ (default SK).
- ico - IČO (číslice)
- country - SK|CZ (default SK)
- detail - prázdne/off = rýchly detail, 1 = normalizovaný RPO/ARES detail, full = aj raw záznam
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=12345678&country=SK"
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=36562939&country=SK&detail=1"
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=27082440&country=CZ&detail=1"
Odpoveď
v2 odpoveď používa data + meta.
{
"ok": true,
"data": {
"organization_id": 1234567,
"ico": "12345678",
"name": "Príkladná firma, s.r.o.",
"dic": "1234567890",
"ic_dph": "SK1234567890",
"street": "Hlavná",
"reg_number": 123,
"building_number": "123",
"address1": "Hlavná 123",
"postal_code": "811 01",
"city": "Bratislava",
"country": "Slovenská republika",
"country_iso": "SK",
"legal_form": null,
"main_activity": null,
"registry_detail": {
"available": true,
"cache_hit": true,
"source": "rpo",
"source_updated_at": "2025-07-07",
"normalized": {
"country_iso": "SK",
"ico": "36562939",
"name": "Alza.sk s. r. o.",
"legal_form": {
"value": "Spoločnosť s ručením obmedzeným",
"code": "112"
},
"activities": []
}
}
},
"meta": {
"version": "2",
"request_id": "optional",
"country_iso": "SK",
"time_ms": 12,
"source": "db"
}
}
fetch('https://api-data.eu/api/v2/company.php?ico=36562939&country=SK', {
headers: { 'X-API-Key': 'YOUR_KEY' }
}).then(r => r.json()).then(console.log);
$ch = curl_init('https://api-data.eu/api/v2/company.php?ico=36562939&country=SK');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => ['X-API-Key: YOUR_KEY', 'Accept: application/json'],
]);
$json = curl_exec($ch);
echo $json;
import requests
r = requests.get(
'https://api-data.eu/api/v2/company.php',
params={'ico':'36562939','country':'SK'},
headers={'X-API-Key':'YOUR_KEY'}
)
print(r.json())
{}
v2 - CZ Company detail
GET
Endpoint: /api/v2/cz_company.php
Dočasne napojené na ARES. Polia sú normalizované do rovnakého formátu ako SK company.
- ico - IČO (CZ) (číslice)
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=27082440&country=CZ&detail=1"
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company.php?ico=27082440&country=CZ&detail=full"
{}
v2 - Company search
GET
Endpoint: /api/v2/search_company.php
Vyhľadáva firmy podľa názvu.
- q - dotaz (min. 2 znaky)
- country - SK|CZ|'' (mix) (optional)
- limit - 1..50 (optional)
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/search_company.php?q=alza"
Rovnaký JS helper ako v hero deme na úvodnej stránke. Začni písať názov firmy a vyber návrh z dropdownu.
{
"ok": true,
"results": [
{
"organization_id": 100001,
"ico": "12345678",
"name": "TEST FIRMA 1.",
"city": "Bratislava",
"postal_code": "811 01",
"country_iso": "SK"
}
],
"meta": {
"country": "MIX",
"processingTimeMs": 2,
"estimatedTotalHits": 123
}
}
fetch('https://api-data.eu/api/v2/search_company.php?q=alza', {
headers: { 'X-API-Key': 'YOUR_KEY' }
}).then(r => r.json()).then(console.log);
$ch = curl_init('https://api-data.eu/api/v2/search_company.php?q=alza');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => ['X-API-Key: YOUR_KEY'],
]);
echo curl_exec($ch);
import requests
r = requests.get(
'https://api-data.eu/api/v2/search_company.php',
params={'q':'alza'},
headers={'X-API-Key':'YOUR_KEY'}
)
print(r.json())
{}
v2 - Address search (SK/CZ)
GET
Endpoint: /api/v2/search_address.php
Vyhľadáva adresy pre autocomplete (ulica + číslo + obec + PSČ). Výstup je pripravený na priamy render do dropdownu.
- q - dotaz (min. 3 znaky)
- country - SK|CZ (default SK)
- limit - 1..20 (default 8)
-
numberMode - auto | orientation | registry (default auto)
Rieši prípady, keď používateľ napíše iba jedno číslo (napr. Horská 7): orientation preferuje orientačné číslo, registry preferuje súpisné / č.p.
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/search_address.php?q=Horska%201776/7&country=SK"
CZ: do polí mapujeme cp → supisne a co (+ suffix) → orientacne.
Odpoveď
Vráti pole data.results s pripraveným label (bez duplicít typu „Martin, Martin”). Polia ber ako stabilné API kontrakty; interné ID vráť/ulož iba ako „opaque”.
{
"ok": true,
"data": {
"results": [
{
"id": "SK:123456",
"country_iso": "SK",
"label": "Horská 1776/7, Martin 036 01",
"street": "Horská",
"supisne": "1776",
"orientacne": "7",
"psc": "036 01",
"municipality": "Martin",
"part": null,
"district": "Martin",
"region": "Žilinský kraj",
"lat": 49.066,
"lon": 18.923
}
]
},
"meta": {
"country": "SK",
"q": "Horska 1776/7",
"count": 1,
"limit": 8,
"source": "meili",
"cache": "miss",
"time_ms": 3,
"extra": {
"country": "SK",
"index": "addresses_sk",
"numberMode": "auto",
"pass": "sk_orient+fallback_fulltext"
}
}
}
fetch('https://api-data.eu/api/v2/search_address.php?q=Horska%201776/7&country=SK', {
headers: { 'X-API-Key': 'YOUR_KEY' }
}).then(r => r.json()).then(console.log);
$ch = curl_init('https://api-data.eu/api/v2/search_address.php?q=Horska%201776/7&country=SK');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => ['X-API-Key: YOUR_KEY'],
]);
echo curl_exec($ch);
import requests
r = requests.get(
'https://api-data.eu/api/v2/search_address.php',
params={'q':'Horska 1776/7','country':'SK'},
headers={'X-API-Key':'YOUR_KEY'}
)
print(r.json())
- 400 - query_too_short (q < 3 znaky)
- 502 - meili_unavailable (dočasný problém so search backendom)
{}
v2 - VAT check (VIES)
GET
Endpoint: /api/v2/check_vat.php
Overí platnosť IČ DPH cez VIES (EU). VIES môže občas odpovedať pomalšie alebo dočasne zlyhať.
- country alebo cc - ISO krajina (napr. SK, CZ)
- vat - VAT číslo (bez prefixu)
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/check_vat.php?cc=SK&vat=SK4020121402"
{
"ok": true,
"data": {
"valid": true,
"name": "COMPANY NAME (as returned by VIES)",
"address": "ADDRESS (as returned by VIES)",
"countryCode": "SK",
"vatNumber": "SK4020121402"
},
"meta": {
"version": "2",
"request_id": "optional",
"time_ms": 140,
"source": "vies"
}
}
{}
v2 - Počasie SHMÚ
GETEndpointy pre aktuálne merania zo staníc SHMÚ, rýchle agregácie, výstrahy CAP a ALADIN predpoveď z predpočítaného cache. Bundle endpoint je optimalizovaný pre Home Assistant a ľahké dashboardy. Auth: X-API-Key alebo verejný IP režim pre weather endpointy.
| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/weather/bundle.php | ind, include?, minutes?, hours?, ttl?, alerts_limit? | Jeden kompaktný JSON pre Home Assistant: aktuálne dáta, agregácia, výstrahy a ALADIN stav. | |
| /api/v2/weather/stations.php | q?, refresh? | Zoznam staníc s ID, názvom a GPS súradnicami. | |
| /api/v2/weather/current.php | ind, raw?, detail? | Aktuálne meranie stanice z AWS 1-min dát. Raw SHMÚ polia sú vypnuté, ak si ich nevyžiadaš. | |
| /api/v2/weather/aggregate.php | ind, minutes?, step?, max_files? | Agregácia teploty, vlhkosti, tlaku, vetra a zrážok za interval. | |
| /api/v2/weather/alerts.php | days?, limit?, include_expired? | Aktívne a budúce SHMÚ výstrahy vo formáte odvodenom z CAP XML. | |
| /api/v2/weather/aladin.php | ind?, hours?, detail?, raw? | ALADIN katalóg alebo predpočítaná bodová predpoveď pre stanicu. Kompaktné pole používa forecast_hour a valid_at. | |
| /api/v2/weather/homeassistant.php | ind, name?, minutes?, hours?, alerts_limit? | Generovanie Home Assistant YAML senzora cez rýchly bundle endpoint. |
curl "https://api-data.eu/api/v2/weather/bundle.php?ind=11800&minutes=60&hours=24&ttl=900&alerts_limit=8&include=current,alerts,aladin"
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/weather/current.php?ind=11800"
Pre pohodlné poskladanie URL, YAML konfigurácie a výber stanice použi samostatný konfigurátor počasia.
Otvoriť konfigurátor{
"ok": true,
"data": {
"station": {
"station_id": 11800,
"name": "Banská Bystrica",
"lat": 48.735,
"lon": 19.145
},
"current": {
"temperature_c": 18.7,
"humidity_pct": 62,
"pressure_hpa": 1014.2,
"wind_speed_ms": 2.1,
"observed_at_utc": "2026-05-31T10:15:00Z"
},
"alerts": {
"alerts_count": 0,
"alerts": []
},
"partial_errors": {
"aggregate": {
"code": "SECTION_UNAVAILABLE",
"message": "No recent samples found for station"
}
}
},
"meta": {
"version": "2",
"request_id": "optional",
"source": "shmu_aws1min,shmu_cap_alerts",
"freshness": "partial",
"bundle_cache": "hit",
"ttl": 900,
"time_ms": 2
}
}
v2 - License stats (usage bez loginu)
GET
Endpoint: /api/v2/license_stats.php
Informácie o programe, hourly limite a usage okne.
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/license_stats.php"
{
"ok": true,
"data": {
"license": {
"id": 123,
"program": "Starter",
"program_code": "starter",
"key_type": "standard",
"hourly_limit": 1000,
"valid_until": "2026-03-01 12:00:00"
},
"usage": {
"window_start": "2026-02-08 14:00:00",
"used": 12,
"remaining": 988
}
},
"meta": {
"version": "2",
"request_id": "optional",
"time_ms": 4
}
}
fetch('https://api-data.eu/api/v2/license_stats.php', {
headers: { 'X-API-Key': 'YOUR_KEY' }
}).then(r => r.json()).then(console.log);
$ch = curl_init('https://api-data.eu/api/v2/license_stats.php');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => ['X-API-Key: YOUR_KEY'],
]);
echo curl_exec($ch);
import requests
r = requests.get(
'https://api-data.eu/api/v2/license_stats.php',
headers={'X-API-Key':'YOUR_KEY'}
)
print(r.json())
{}
v2 - IBAN validácia a parsovanie
GETEndpointy pre kontrolu IBAN, rozklad na komponenty a zostavenie IBAN zo základných bankových údajov. Auth: X-API-Key hlavička.
| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/iban_validate.php | iban | Formát, krajina, dĺžka a MOD-97 checksum. | |
| /api/v2/iban_parse.php | iban | Rozklad IBAN + informácia o banke. | |
| /api/v2/iban_build.php | country, bank, account, branch? | Zostavenie IBAN z lokálnych komponentov. | |
| /api/v2/sepa_countries.php | country?, eu_only? | Zoznam SEPA krajín a ich platobné atribúty. |
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/iban_validate.php?iban=SK3112000000198742637541"
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/iban_parse.php?iban=SK3112000000198742637541"
Vyber IBAN endpoint v spoločnej konzole, prepíš IBAN alebo bankové komponenty a spusti request s demo kľúčom.
v2 - Bankový register
GET| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/banks.php | country | Zoznam bánk pre krajinu. | |
| /api/v2/banks_by_code.php | country, code | Banka podľa národného bankového kódu. | |
| /api/v2/banks_by_bic.php | bic | Banka podľa BIC/SWIFT kódu. |
v2 - Sviatky a pracovné dni
GETKalendár podporuje sviatky, detail dátumu a výpočty pracovných dní. Slovenské sviatky reflektujú legislatívne zmeny pre roky 2025-2026.
| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/calendar/holidays.php | country, year, region? | Sviatky krajiny v danom roku. | |
| /api/v2/calendar/holiday.php | country, date | Detail konkrétneho dátumu. | |
| /api/v2/calendar/is_business_day.php | country, date | Či je dátum pracovný deň. | |
| /api/v2/calendar/business_days_add.php | country, date, days | Pridá N pracovných dní. | |
| /api/v2/calendar/business_days_subtract.php | country, date, days | Odoberie N pracovných dní. | |
| /api/v2/calendar/business_days_between.php | country, from, to | Počet pracovných dní v intervale. | |
| /api/v2/calendar/business_days_next.php | country, date | Najbližší pracovný deň po dátume. | |
| /api/v2/calendar/business_days_previous.php | country, date | Predchádzajúci pracovný deň. | |
| /api/v2/calendar/countries.php | - | Podporované krajiny. |
v2 - FX kurzy ECB
GET| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/fx/latest.php | base?, symbols? | Aktuálne kurzy z ECB cache. | |
| /api/v2/fx/historical.php | date, base?, symbols? | Kurzy pre dátum s fallbackom na posledný dostupný deň. | |
| /api/v2/fx/range.php | from, to, base?, symbol | Časový rad kurzov, max 731 dní. | |
| /api/v2/fx/convert.php | amount, from, to, date? | Konverzia sumy cez EUR cross-rate. |
v2 - Krajiny a skupiny
GET| Endpoint | Parametre | Použitie | Konzola |
|---|---|---|---|
| /api/v2/countries.php | q?, region?, currency?, is_eu? | Zoznam krajín s filtrami. | |
| /api/v2/countries/country.php | iso2 alebo country | Detail krajiny podľa ISO2. | |
| /api/v2/countries/neighbours.php | iso2 alebo country | Susedné krajiny. | |
| /api/v2/countries/groups.php | group | Skupiny eu, eea, schengen, sepa, eurozone, nato. | |
| /api/v2/countries/groups/eu.php | - | Skratka pre EU krajiny. | |
| /api/v2/countries/groups/schengen.php | - | Skratka pre Schengen. | |
| /api/v2/countries/groups/sepa.php | - | Skratka pre SEPA. |
v2 - Graf prepojení firiem a osôb
Endpoint: /api/v2/company_graph.php
Pre zadané IČO vráti sieť konateľov, spoločníkov a ich ďalších firiem do zvolenej hĺbky.
Vhodné na due diligence, KYC a mapovanie vlastníckych štruktúr. Zatiaľ len SK (RPO).
- ico - 8-miestne IČO firmy (alebo person)
- person - person_key osoby ako koreň grafu
- depth - hĺbka 1-4 (default 2)
- historical - 0|1, zahrnúť historické väzby
- max_nodes - strop uzlov (default 60)
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company_graph.php?ico=51865467&depth=2"
Odpoveď
{
"ok": true,
"data": {
"root": { "id": "c:51865467", "type": "company", "ico": "51865467", "name": "SLOVNAFT, a.s." },
"depth": 2,
"include_historical": false,
"nodes": [
{ "id": "c:51865467", "type": "company", "label": "SLOVNAFT, a.s.", "ico": "51865467", "is_root": true },
{ "id": "p:jan-novak-bratislava", "type": "person", "label": "Ján Novák", "municipality": "Bratislava" }
],
"edges": [
{ "id": "e:123", "source": "p:jan-novak-bratislava", "target": "c:51865467",
"role": "konatel", "valid_from": "2019-01-01", "valid_to": null, "active": true }
],
"stats": { "nodes": 2, "edges": 1, "companies": 1, "persons": 1, "truncated": false }
},
"meta": { "version": "2", "country_iso": "SK", "source": "rpo", "time_ms": 38 }
}
v2 - Vyhľadávanie osôb v grafe
Endpoint: /api/v2/graph_search.php
Našepkávač osôb podľa mena. Vráti person_key, ktorý použijete ako
person parameter v grafe.
- q - meno osoby (min. 2 znaky)
{ "ok": true, "data": { "persons": [
{ "person_key": "jan-novak-bratislava",
"label": "Ján Novák", "municipality": "Bratislava" }
] } }
v2 - Detailné dáta firmy (report)
GETDoplnkové endpointy k firme. Všetky berú ico (8-miestne) a hlavičku X-API-Key, vracajú { ok, data, meta } a sú zadarmo (0 kreditov, počítajú sa len do hodinového limitu).
| Endpoint | Parametre navyše | Vracia (data) | Zdroj | Konzola |
|---|---|---|---|---|
| /api/v2/company_finance.php | - | years[]: year, revenue, profit, assets, equity | RÚZ | |
| /api/v2/company_risk.php | - | score (0-10), level, factors[], financials | odvodené | |
| /api/v2/company_timeline.php | - | items[]: date, type, title, detail | RPO + RÚZ | |
| /api/v2/company_contracts.php | page, limit, sort(date|price|counterparty), dir, counterparty, q | contracts[], summary | CRZ | |
| /api/v2/company_tenders.php | page, limit, sort(date|amount), dir | tenders[], summary | ITMS | |
| /api/v2/company_subsidies.php | page, limit, sort(date|amount), dir | subsidies[], summary | ITMS | |
| /api/v2/company_irregularities.php | page, limit, sort(date|amount), dir | irregularities[], summary | ITMS | |
| /api/v2/company_debts.php | - | debts[], summary: count, total_value | SP + VšZP | |
| /api/v2/company_ov.php | page, limit, dir | events[], summary | Obch. vestník | |
| /api/v2/company_fs.php | - | vat, tax_periods[] | Fin. správa |
Príklad - rizikové skóre
curl -H "X-API-Key: YOUR_KEY" "https://api-data.eu/api/v2/company_risk.php?ico=51865467"
{ "ok": true, "data": {
"ico": "51865467", "name": "SLOVNAFT, a.s.",
"score": 2, "level": "low",
"factors": [ ... ],
"financials": { "year": 2024, "revenue": 0, "profit": 0, "equity": 0 }
} }
v2 - Novozapísané firmy a živnosti
Endpoint: /api/v2/companies_new.php
Denný feed nových zápisov z registra s filtrami a stránkovaním.
- days - 1-31 (default 7)
- form - all | sro | zivnost | as
- q - názov alebo mesto
- act - predmet podnikania (min. 3 znaky)
- page, limit - stránkovanie (limit max 50)
{ "ok": true, "data": {
"items": [ {
"ico": "12345678", "name": "Nová firma s.r.o.",
"legal_form": "...", "established": "2026-06-10",
"city": "Košice", "activities": ["..."], "activities_count": 5
} ],
"total": 142
}, "meta": { "page": 1, "pages": 8, "time_ms": 6 } }
v2 - Watchlist / monitoring
Endpoint: /api/v2/watchlist.php
Sledované firmy a osoby viazané na licenciu API kľúča. Počet položiek je obmedzený plánom
(FREEMIUM 3 … ENTERPRISE 500).
| Akcia | Metóda | Parametre | Popis |
|---|---|---|---|
| list | GET | - | Zoznam sledovaných položiek. |
| add | POST | ico | person_key, label?, freq | Pridá položku (freq: daily|weekly|off). |
| remove | POST | ico | person_key | Odstráni položku. |
| status | GET | ico | person_key | Či už je subjekt sledovaný. |
curl -X POST -H "X-API-Key: YOUR_KEY" \
-d "action=add&ico=51865467&freq=daily" \
"https://api-data.eu/api/v2/watchlist.php"
- 429 - WATCHLIST_FULL (dosiahnutý limit plánu)
- 400 - MISSING_SUBJECT (chýba ico aj person_key)
PHP config (recommended)
Helper pre v2 (header auth). Pridal som aj fallback na v1 len pre legacy prípady.
<?php
// api_config.php
const API_KEY = 'TU_VLOŽ_SVOJ_API_KĽÚČ';
const API_V2 = 'https://api-data.eu/api/v2/';
const API_V1 = 'https://api-data.eu/api/';
function api_get_v2(string $endpoint, array $params = []): array {
$url = API_V2 . ltrim($endpoint, '/');
if ($params) $url .= '?' . http_build_query($params);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . API_KEY,
'Accept: application/json'
],
]);
$resp = curl_exec($ch);
$http = ($resp === false) ? 0 : (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = ($resp === false) ? curl_error($ch) : null;
curl_close($ch);
if ($resp === false) return ['ok'=>false,'error'=>'http_error','msg'=>$err];
$data = json_decode($resp, true);
if (!is_array($data)) return ['ok'=>false,'error'=>'bad_json','http'=>$http,'raw'=>$resp];
$data['_http'] = $http;
return $data;
}
/**
* v1 legacy helper (kľúč v URL).
* Použi iba ak potrebuješ kompatibilitu so starým kódom.
*/
function api_get_v1(string $file, array $params = []): array {
$params['k'] = API_KEY;
$url = API_V1 . ltrim($file, '/');
$url .= '?' . http_build_query($params);
$json = @file_get_contents($url);
if ($json === false) return ['ok'=>false,'error'=>'http_error'];
$data = json_decode($json, true);
return is_array($data) ? $data : ['ok'=>false,'error'=>'bad_json','raw'=>$json];
}
JavaScript (fetch) - typický flow
1) search → 2) vyber IČO → 3) company detail → 4) vyplň form.
// JS fetch flow (v2)
const API_KEY = 'YOUR_KEY';
const BASE = 'https://api-data.eu/api/v2/';
async function apiGet(path, params = {}) {
const url = new URL(BASE + path);
Object.entries(params).forEach(([k,v]) => url.searchParams.set(k, v));
const r = await fetch(url.toString(), { headers: { 'X-API-Key': API_KEY } });
const data = await r.json();
if (!data || data.ok !== true) throw data;
return data;
}
async function searchAndPick(query) {
const res = await apiGet('search_company.php', { q: query });
const first = (res.results || [])[0];
if (!first) return null;
return first.ico;
}
async function fillCompany(ico) {
const res = await apiGet('company.php', { ico, country: 'SK' });
const c = res.data;
console.log('NAME', c.name);
console.log('ICO', c.ico);
console.log('DIC', c.dic);
console.log('VAT', c.ic_dph);
console.log('ADDR', c.address1, c.city, c.postal_code);
}
(async () => {
const ico = await searchAndPick('alza');
if (ico) await fillCompany(ico);
})();
PHP (cURL) - typický flow
<?php
require __DIR__ . '/api_config.php';
// 1) search
$s = api_get_v2('search_company.php', ['q' => 'alza']);
if (empty($s['ok'])) die('Search error: ' . ($s['error']['code'] ?? $s['error'] ?? 'unknown'));
$first = $s['results'][0] ?? null;
if (!$first) die('No results');
$ico = $first['ico'];
// 2) detail
$d = api_get_v2('company.php', ['ico' => $ico, 'country' => 'SK']);
if (empty($d['ok'])) die('Detail error: ' . ($d['error']['code'] ?? $d['error'] ?? 'unknown'));
$c = $d['data'];
echo "Name: {$c['name']}\n";
echo "ICO: {$c['ico']}\n";
echo "DIC: " . ($c['dic'] ?? '') . "\n";
echo "VAT: " . ($c['ic_dph'] ?? '') . "\n";
echo "Address: {$c['address1']}, {$c['city']}, {$c['postal_code']}\n";
Python (requests) - typický flow
import requests
API_KEY = "YOUR_KEY"
BASE = "https://api-data.eu/api/v2/"
def api_get(path, params=None):
r = requests.get(BASE + path, params=params or {}, headers={"X-API-Key": API_KEY}, timeout=5)
data = r.json()
if not data.get("ok"):
raise Exception(data)
return data
s = api_get("search_company.php", {"q": "alza"})
ico = s["results"][0]["ico"]
d = api_get("company.php", {"ico": ico, "country": "SK"})
c = d["data"]
print(c["name"], c["ico"], c.get("dic"), c.get("ic_dph"))
Chyby
v2 odporúčanie: používať error.code + HTTP status (400/401/403/404/429/5xx).
- MISSING_INPUT - chýba parameter
- INVALID_* - neplatný formát
- NOT_FOUND - firma neexistuje
- UPSTREAM_* - problém upstream (ARES/VIES)
- RATE_LIMITED - rate limit
Poznámky
- Pre nové integrácie používaj v2 endpointy a header X-API-Key.
- Frontend kľúč nikdy nie je úplne skrytý, preto pri browser integráciách používaj doménovo viazaný kľúč.
- Weather endpointy môžu mať verejný IP limit bez kľúča; s API kľúčom sa použijú licenčné limity.
Changelog
- v2: odporúčaný header auth (X-API-Key), v1 zachovaný kvôli kompatibilite.
- license_stats: endpoint pre zistenie plánu a usage bez loginu.
Legacy v1 (kompatibilita)
v1 endpointy sú zachované, ale pre nové integrácie ich nepoužívaj. Dôvod: kľúč v URL k= sa môže logovať a leakovať.
v1 - Company detail
GETEndpoint: /api/company.php
GET https://api-data.eu/api/company.php?ico=12345678&country=SK&k=YOUR_KEY
v1 - CZ Company detail
GETEndpoint: /api/cz_company.php
GET https://api-data.eu/api/cz_company.php?ico=27082440&k=YOUR_KEY
v1 - Company search
GETEndpoint: /api/search_company.php
GET https://api-data.eu/api/search_company.php?q=alza&k=YOUR_KEY
v1 - VAT check (VIES)
GETEndpoint: /api/check_vat.php
GET https://api-data.eu/api/check_vat.php?country=SK&vat=SK4020121402&k=YOUR_KEY
v1 - License stats
GETEndpoint: /api/license_stats.php
GET https://api-data.eu/api/license_stats.php?k=YOUR_KEY