Parcelník API

Napojte preverenie pozemkov priamo na svoj realitný softvér, CRM alebo web. Cez REST API nájdete parcelu v katastri, overíte, čo report pokryje, objednáte ho a stiahnete hotové PDF so semaforom rizík.

Vytvoriť API kľúčStiahnuť OpenAPI 3.1

Prehľad

Parcelník API je REST rozhranie nad JSON s prenosom výhradne cez HTTPS. Robí to isté ako objednávka v portáli: rovnaké balíky, ceny, kontroly pokrytia a pravidlá fakturácie. Je určené realitným kanceláriám, developerom, bankám a ďalším firmám, ktoré preverujú pozemky opakovane.

Základná adresa
https://api.parcelnik.sk/api/v1/integration
Formát
JSON v UTF-8, časy v ISO 8601 (UTC), ceny v eurocentoch
Verzia
v1 (v ceste /api/v1), aktualizované 10. 10. 2026
Prostredie
Produkčné. Samostatný sandbox zatiaľ nemáme; na test odporúčame Rýchly prehľad (9 €) alebo nám napíšte o testovací účet s fakturáciou.

Hodnoty v príkladoch (kódy obcí, identifikátory parciel a objednávok) sú ilustračné. Skutočné identifikátory vždy získajte z predchádzajúceho volania.

Začíname

  1. Účet. Zaregistrujte sa alebo nás požiadajte o firemný účet s fakturáciou na objednavky@parcelnik.sk.
  2. API kľúč. V portáli otvorte Integrácie, zadajte názov kľúča (napr. „CRM produkcia“) a platnosť 30, 90 alebo 365 dní. Kľúč začína pk_ a zobrazí sa iba raz.
  3. Prvé volanie. Overte kľúč na ponuke balíkov:
Overenie kľúča
export PARCELNIK_API_KEY="pk_…"
curl -s "https://api.parcelnik.sk/api/v1/integration/offer" -H "Authorization: Bearer $PARCELNIK_API_KEY"

Autentifikácia

Každá požiadavka posiela kľúč v hlavičke Authorization: Bearer pk_…. Kľúč koná za váš účet: vidí len vaše objednávky a objednáva na váš účet.

  • Na účet môžete mať najviac 10 aktívnych kľúčov; každý môžete kedykoľvek odvolať.
  • Ukladáme len odtlačok kľúča (SHA-256), nie kľúč samotný. Stratený kľúč neobnovíme, vytvorte nový.
  • API kľúč nefunguje v portáli a prihlásenie do portálu nefunguje v API. Účty administrátorov API používať nesmú (403).
  • Deaktiváciou účtu sa odvolajú všetky jeho kľúče aj pripojení AI asistenti.
Odpoveď 401 Unauthorized
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="parcelnik", error="invalid_token"

{ "statusCode": 401, "message": "Neplatný alebo chýbajúci API kľúč.", "error": "Unauthorized" }

Postup objednávky

Parcelu vyberáte rovnako ako v katastri: obec → katastrálne územie → číslo parcely.

  1. GET /municipalities?q=nájdite obec a jej kód
  2. GET /municipalities/{code}/cadastral-areasvyberte katastrálne územie
  3. GET /cadastral-areas/{id}/parcels?number=nájdite parcelu (parcelId)
  4. GET /parcels/{id}/coveragezistite medzery v pokrytí
  5. POST /ordersobjednajte a potvrďte medzery
  6. GET /orders/{id}sledujte stav, kým nie je COMPLETE
  7. GET /orders/{id}/reportstiahnite PDF

Rýchly prehľad je zvyčajne hotový do niekoľkých minút. Základné preverenie do 2 pracovných dní (dopĺňame list vlastníctva a overenie územného plánu), Kompletný audit do 30 pracovných dní.

Fakturácia a platby

Typ účtuČo sa stane po POST /orders
S fakturáciou (firemná zmluva)Objednávka sa spracuje hneď (PROCESSING) a vyúčtujeme ju faktúrou.
S platbou vopredObjednávka čaká v stave AWAITING_PAYMENT s paymentRequired: true. Zákazník v portáli (paymentUrl) potvrdí obchodné podmienky a zaplatí cez Tatra banku. Nezaplatená objednávka sa po 48 h zruší.

API nikdy neplatí ani neudeľuje súhlasy za zákazníka. Cenu vždy určuje server podľa cenníka v /offer; v požiadavke sa cena neposiela. Promo kódy sa uplatňujú len v portáli.

Referencia endpointov

Všetky cesty sú relatívne k https://api.parcelnik.sk/api/v1/integration a vyžadujú hlavičku Authorization. Neznáme polia v tele požiadavky server odmietne (400).

GET/offer

Ponuka balíkov

Vráti objednateľné balíky s cenou a dodacou lehotou a zoznam účelov, ktoré môžete poslať pri objednávke. Ceny sú konečné (nie sme platiteľom DPH) a vždy ich určuje server.

Limit: 60 požiadaviek za minútu

Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/offer" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
{
  "bundles": [
    {
      "id": "instant-overview",
      "name": "Rýchly prehľad",
      "price": "9 €",
      "priceCents": 900,
      "delivery": "okamžite"
    },
    {
      "id": "basic-check",
      "name": "Základné preverenie",
      "price": "49 €",
      "priceCents": 4900,
      "delivery": "do 2 pracovných dní"
    },
    {
      "id": "full-audit",
      "name": "Kompletný audit",
      "price": "299 €",
      "priceCents": 29900,
      "delivery": "1. časť (Základné preverenie) do 2 pracovných dní, celý audit do 30 pracovných dní"
    }
  ],
  "purposes": ["family-house", "recreation", "garden", "investment", "commercial", "other"]
}
  • 401 Chýbajúci, neplatný, odvolaný alebo expirovaný API kľúč.

GET/municipalities

Vyhľadanie obce

Vyhľadá obce podľa názvu (bez ohľadu na diakritiku) a vráti najviac 10 zhôd. Kód obce použijete v ďalšom kroku.

Limit: 60 požiadaviek za minútu

ParameterKdeTypPopis
qpovinnýquerystring, 2–80 znakovNázov obce alebo jeho začiatok, napr. „Bernolak“.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/municipalities" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
[
  {
    "code": "SK0102508241",
    "name": "Bernolákovo",
    "districtCode": "SK0102",
    "districtName": "Senec",
    "regionName": "Bratislavský kraj"
  }
]
  • 400 Parameter q chýba alebo je kratší ako 2 znaky.

GET/municipalities/{code}/cadastral-areas

Katastrálne územia obce

Vráti katastrálne územia obce. Obec môže mať viac katastrálnych území; parcelné číslo je jedinečné len v rámci jedného z nich.

Limit: 60 požiadaviek za minútu

ParameterKdeTypPopis
codepovinnýpathstringKód obce z odpovede /municipalities.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/municipalities/{code}/cadastral-areas" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
[
  { "id": "CU.3149", "name": "Bernolákovo", "municipalityCode": "SK0102508241" }
]
  • 404 Obec s týmto kódom neexistuje.

GET/cadastral-areas/{id}/parcels

Vyhľadanie parcely

Vyhľadá parcely registra C (a E, kde to kataster umožňuje) podľa parcelného čísla v katastrálnom území. Vráti najviac 20 zhôd.

Limit: 60 požiadaviek za minútu

ParameterKdeTypPopis
idpovinnýpathstringIdentifikátor katastrálneho územia z predchádzajúceho kroku.
numberpovinnýquerystring, 1–30 znakovParcelné číslo, napr. „1234/5“.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/cadastral-areas/{id}/parcels" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
[
  {
    "parcelId": "CP.205486",
    "parcelNumber": "1234/5",
    "register": "C",
    "areaSquareMetres": 812
  }
]
  • 400 Parameter number chýba.

GET/parcels/{id}/coverage

Pokrytie parcely

Pred objednávkou povie, ktoré časti reportu sa pre parcelu nedajú pripraviť (trvalé medzery, status „gap“). Nikdy neprezradí zistenia, len či časť v reporte bude. Každú medzeru musíte pri objednávke potvrdiť v acknowledgedCoverageGaps.

Limit: 30 požiadaviek za minútu

ParameterKdeTypPopis
idpovinnýpathstringparcelId z vyhľadania parcely.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/parcels/{id}/coverage" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
[
  { "id": "geometry", "label": "Hranica parcely v katastri", "status": "available" },
  { "id": "map-layers", "label": "Mapové vrstvy (riziká, chránené územia, pamiatky, CHVO)", "status": "available" },
  { "id": "terrain", "label": "Výškový model terénu", "status": "available" },
  {
    "id": "zoning",
    "label": "Register územných plánov obce",
    "status": "gap",
    "note": "Obec nemá v štátnom registri zaevidovaný územný plán."
  }
]
  • 404 Parcela sa nenašla.

POST/orders

Vytvorenie objednávky

Objedná report pre jednu parcelu. Účty s fakturáciou sa spracujú hneď. Účty s platbou vopred dostanú objednávku v stave AWAITING_PAYMENT: zákazník ju potvrdí a zaplatí v portáli (paymentUrl), API nikdy neplatí ani nesúhlasí s podmienkami za zákazníka.

Limit: 20 požiadaviek za minútu

ParameterKdeTypPopis
bundleIdpovinnýbodyinstant-overview | basic-check | full-auditBalík z /offer.
parcelIdpovinnýbodystring, ≤ 64Parcela z vyhľadania parcely.
cadastralAreaIdpovinnýbodystring, ≤ 64Katastrálne územie, do ktorého parcela patrí. Server to overí.
labelpovinnýbodystring, 5–300Ako sa objednávka zobrazí v portáli a v reporte, napr. adresa alebo „parc. č. 1234/5, k. ú. Bernolákovo“. Nevkladajte osobné údaje.
purposebodystringZamýšľaný účel z /offer.purposes; report podľa neho zhrnie odporúčania.
acknowledgedCoverageGapsbodystring[]Identifikátory všetkých položiek so statusom „gap“ z /coverage. Bez nich server objednávku odmietne.
Požiadavka
curl -s -X POST "https://api.parcelnik.sk/api/v1/integration/orders" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d @objednavka.json
Telo požiadavky (JSON)
{
  "bundleId": "basic-check",
  "parcelId": "CP.205486",
  "cadastralAreaId": "CU.3149",
  "label": "parc. č. 1234/5, k. ú. Bernolákovo",
  "purpose": "family-house",
  "acknowledgedCoverageGaps": ["zoning"]
}
Odpoveď 201 Created
{
  "id": "6f1c2a9e-4d1b-4b8e-9a0c-2f3e5d7a8b10",
  "bundle": "Základné preverenie",
  "parcel": "parc. č. 1234/5, k. ú. Bernolákovo",
  "status": "PROCESSING",
  "statusText": "pripravuje sa",
  "createdAt": "2026-10-10T08:15:02.114Z",
  "portalUrl": "https://parcelnik.sk/app/orders",
  "paymentRequired": false,
  "confirmationRequired": false
}
  • 400 Neplatné telo, neznámy balík, parcela mimo katastrálneho územia alebo nepotvrdená medzera v pokrytí.
  • 429 Viac ako 30 objednávok za hodinu na účet alebo prekročený limit požiadaviek.
  • 503 Online platby sú dočasne nedostupné (len účty s platbou vopred).

GET/orders

Zoznam objednávok

Posledných 100 objednávok vášho účtu, od najnovšej. Semafor rizík tu nie je; získate ho v detaile objednávky.

Limit: 60 požiadaviek za minútu

Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/orders" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
[
  {
    "id": "6f1c2a9e-4d1b-4b8e-9a0c-2f3e5d7a8b10",
    "bundle": "Základné preverenie",
    "parcel": "parc. č. 1234/5, k. ú. Bernolákovo",
    "status": "AWAITING_ATTACHMENT",
    "statusText": "pripravuje sa (dopĺňame list vlastníctva)",
    "createdAt": "2026-10-10T08:15:02.114Z",
    "portalUrl": "https://parcelnik.sk/app/orders"
  }
]

GET/orders/{id}

Detail objednávky

Stav jednej objednávky vášho účtu. Keď je hotová (COMPLETE), obsahuje aj semafor rizík (signals). Objednávka iného účtu vráti 404, rovnako ako neexistujúca.

Limit: 60 požiadaviek za minútu

ParameterKdeTypPopis
idpovinnýpathUUIDIdentifikátor objednávky.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/orders/{id}" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
{
  "id": "6f1c2a9e-4d1b-4b8e-9a0c-2f3e5d7a8b10",
  "bundle": "Rýchly prehľad",
  "parcel": "parc. č. 1234/5, k. ú. Bernolákovo",
  "status": "COMPLETE",
  "statusText": "hotová",
  "createdAt": "2026-10-10T08:15:02.114Z",
  "portalUrl": "https://parcelnik.sk/app/orders",
  "signals": [
    {
      "area": "Záplavy",
      "level": "ok",
      "levelText": "v poriadku",
      "text": "Parcela nezasahuje do mapovaných záplavových území."
    },
    {
      "area": "Ochranné pásma",
      "level": "warn",
      "levelText": "pozor",
      "text": "Parcela môže zasahovať do ochranného pásma cesty, železnice alebo vedenia."
    }
  ]
}
  • 400 Identifikátor nie je UUID.
  • 404 Objednávka neexistuje alebo nepatrí vášmu účtu.

GET/orders/{id}/report

Stiahnutie reportu (PDF)

Stiahne doručený report vo formáte PDF. Pri Základnom preverení a Kompletnom audite je to spojený dokument s listom vlastníctva. Súbor ide vždy cez API, nikdy cez verejný odkaz.

Limit: 60 požiadaviek za minútu

ParameterKdeTypPopis
idpovinnýpathUUIDIdentifikátor hotovej objednávky.
Požiadavka
curl -s "https://api.parcelnik.sk/api/v1/integration/orders/{id}/report" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"
Odpoveď 200 OK
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="….pdf"
Cache-Control: private, no-store

%PDF-1.7 …
  • 404 Objednávka neexistuje, nepatrí vám alebo report ešte nie je pripravený.

Stavy objednávky

Pole status je stabilný kód pre váš program, statusText je text pre ľudí a môže sa meniť. Nové stavy môžeme v rámci v1 pridať; neznámy stav považujte za „pripravuje sa“.

statusstatusTextVýznam
AWAITING_PAYMENTčaká na platbu v portáliZákazník potvrdí podmienky a zaplatí v portáli. Nezaplatená objednávka sa po 48 h zruší.
AWAITING_CONFIRMATIONčaká na potvrdenie zákazníkomLen pri objednávkach od AI asistenta (MCP) na účte s fakturáciou.
PROCESSINGpripravuje saZbierame údaje zo zdrojov a skladáme report.
AUTO_RETRYpripravuje saNiektorý zdroj neodpovedal; automaticky ho skúšame znova po 5, 10 a 15 minútach.
NEEDS_REVIEWpripravuje saKontroluje ju operátor (napr. zdroj, ktorý dlhodobo neodpovedá).
AWAITING_ATTACHMENTpripravuje saDopĺňame list vlastníctva a overenie územného plánu (Základné preverenie, audit).
COMPLETEhotováReport je možné stiahnuť. Pri audite je to najprv 1. časť; celý audit nahradí PDF neskôr.
FAILEDnepodarilo sa ju pripraviťReport sa nepodarilo pripraviť; ozveme sa vám.
CANCELLEDzrušenáNezaplatená alebo zákazníkom odmietnutá objednávka.

Semafor rizík v hotovej objednávke má úrovne ok, warn, risk a unknown. Úroveň unknown znamená, že zdroj neodpovedal; nie je to dobrý výsledok.

Chyby

Chyby majú HTTP kód a telo s poľom message. Obchodné chyby sú v slovenčine; pri chybách validácie vstupu je to zoznam technických hlásení v angličtine.

Odpoveď 400 Bad Request
{
  "statusCode": 400,
  "message": [
    "label must be longer than or equal to 5 characters"
  ],
  "error": "Bad Request"
}
KódNázovKedy
400Bad RequestNeplatné vstupy. Pole message obsahuje dôvod (pri validácii zoznam).
401UnauthorizedChýba hlavička Authorization alebo je kľúč neplatný, odvolaný či expirovaný.
403ForbiddenKľúč patrí účtu, ktorý API používať nesmie (napr. administrátor).
404Not FoundZdroj neexistuje alebo nepatrí vášmu účtu (tieto prípady nerozlišujeme).
409ConflictOperácia nie je v aktuálnom stave objednávky možná.
429Too Many RequestsPrekročený limit. Počkajte a opakujte s exponenciálnym odstupom.
500Internal Server ErrorChyba na našej strane. Opakujte neskôr; ak trvá, napíšte nám.
503Service UnavailableDočasne nedostupná služba (napr. platobná brána).

Limity

  • 60 požiadaviek za minútu na integračné API, z jednej adresy.
  • 30 za minútu na kontrolu pokrytia, 20 za minútu na vytváranie objednávok.
  • Najviac 30 objednávok za hodinu na jeden účet (spolu cez API aj AI asistentov).

Po prekročení dostanete 429 Too Many Requests. Opakujte s exponenciálnym odstupom (napr. 2, 4, 8 s). Stav objednávky sa pýtajte najviac raz za minútu; webhooky zatiaľ neposkytujeme. Potrebujete vyšší limit? Napíšte nám.

Bezpečnosť

  • Kľúč používajte len na serveri. Nikdy ho nedávajte do JavaScriptu v prehliadači, mobilnej aplikácie ani do repozitára; ukladajte ho v správcovi tajomstiev.
  • Pre každý systém vytvorte vlastný kľúč s obmedzenou platnosťou a pravidelne ich meňte.
  • Pri podozrení na únik kľúč ihneď odvolajte v Integráciách.
  • Do label nevkladajte mená ani iné osobné údaje klientov; stačí parcela alebo adresa.
  • Reporty s listom vlastníctva obsahujú osobné údaje vlastníkov. Ukladajte ich zabezpečene a len po nevyhnutnú dobu.

Príklady

Celý postup od vyhľadania obce po stiahnutie PDF:

cURL
# 1. Obec
curl -s "https://api.parcelnik.sk/api/v1/integration/municipalities?q=Bernolakovo" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"

# 2. Katastrálne územia obce
curl -s "https://api.parcelnik.sk/api/v1/integration/municipalities/SK0102508241/cadastral-areas" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"

# 3. Parcela podľa čísla
curl -s "https://api.parcelnik.sk/api/v1/integration/cadastral-areas/CU.3149/parcels?number=1234/5" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"

# 4. Pokrytie a objednávka
curl -s "https://api.parcelnik.sk/api/v1/integration/parcels/CP.205486/coverage" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"

curl -s -X POST "https://api.parcelnik.sk/api/v1/integration/orders" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bundleId":"instant-overview","parcelId":"CP.205486","cadastralAreaId":"CU.3149","label":"parc. č. 1234/5, k. ú. Bernolákovo","acknowledgedCoverageGaps":["zoning"]}'

# 5. Stav a PDF
curl -s "https://api.parcelnik.sk/api/v1/integration/orders/<ID>" -H "Authorization: Bearer $PARCELNIK_API_KEY"
curl -s -o report.pdf "https://api.parcelnik.sk/api/v1/integration/orders/<ID>/report" \
  -H "Authorization: Bearer $PARCELNIK_API_KEY"

AI asistenti (MCP)

Tie isté operácie sú dostupné aj ako nástroje pre ChatGPT a Claude cez MCP server https://api.parcelnik.sk/mcp s prihlásením OAuth 2.1. Objednávku od asistenta musí zákazník vždy potvrdiť v portáli. Návod na pripojenie je v portáli v časti Integrácie.

Zmeny API

V rámci v1 pridávame len spätne kompatibilné zmeny (nové polia, endpointy, stavy). Ignorujte polia, ktoré nepoznáte. Nekompatibilnú zmenu vydáme ako novú verziu a vopred ju oznámime e-mailom držiteľom kľúčov.

  • 10. 10. 2026 – verejná dokumentácia a špecifikácia OpenAPI.
  • 3. 10. 2026 – kľúče s obmedzenou platnosťou, administrátorské účty odmietnuté.
  • 28. 9. 2026 – prvé vydanie integračného API v1.

Otázky k integrácii: objednavky@parcelnik.sk.