REST API

Verejné API pre českú legislatívu

Pristupujte k zákonom, judikatúre, právu EÚ a parlamentným dátam programovo. Zadarmo. Bez obmedzení registráciou.

22 808
zákonov
310 142
rozhodnutí
1 271
predpisov EÚ
1 209
tisků

Rýchly štart za 60 sekúnd

1

Zaregistrujte sa

Vytvorte si účet zadarmo — stačí e-mail.

2

Vygenerujte si API token v profile

Pomenujte si token a skopírujte ho.

3

Vykonajte prvú požiadavku

Bearer token do hlavičky — a máte dáta.

Príklad požiadavky
curl -H "Authorization: Bearer YOUR_TOKEN" \
     https://ceskezakony.cz/api/v1/laws/89/2012
Príklad odpovede
{
    "data": {
        "id": 12345,
        "number": 89,
        "year": 2012,
        "title": "Občanský zákoník",
        "collection_code": "sb",
        "effective_from": "2014-01-01",
        "status": "effective",
        "stale_url": "/sb/2012/89"
    }
}

Prečo používať naše API

Zadarmo navždy

Bez platených plánov, bez obmedzení registráciou

Kompletné pokrytie

Zbierka zákonov, judikatúra NS a ÚS, právo EÚ, parlamentné tlače

Aktualizácia denne

Automatický sync z oficiálnych zdrojov

Všetky dáta v JSON

Štandardný REST, cursor stránkovanie

Špecifikácia OpenAPI 3.1

Swagger UI a generátory klientov

Vysoké limity

5 000 požiadaviek denne pre registrovaných

Čo je v API

Zákony

Zbierka zákonov ČR — zákony, vyhlášky, nariadenia vlády. Aktuálne znenie, história verzií, textové fragmenty a vzájomné vzťahy.

  • GET /api/v1/laws
  • GET /api/v1/laws/{číslo}/{rok}
  • GET /api/v1/laws/{číslo}/{rok}/fragments
  • GET /api/v1/laws/{číslo}/{rok}/amendments
Zobraziť všetky endpointy

Judikatúra

Súdne rozhodnutia NS, NSS, ÚS a ďalších súdov z databázy Justice.cz. Fulltextové vyhľadávanie, filtrovanie podľa súdu a kľúčových slov.

  • GET /api/v1/decisions
  • GET /api/v1/decisions/{id}
  • GET /api/v1/courts
  • GET /api/v1/decision-keywords
Zobraziť všetky endpointy

Právo EÚ

Nariadenia a smernice EÚ z EUR-Lex. Prehľad transpozícií do českého práva, stav implementácie.

  • GET /api/v1/eu-laws
  • GET /api/v1/eu-laws/{celex}
  • GET /api/v1/eu-laws/{celex}/transpositions
Zobraziť všetky endpointy

Parlament

Snemovné tlače, poslanci, hlasovania a schôdze z PSP.cz. Sledovanie legislatívneho procesu v reálnom čase.

  • GET /api/v1/parliament/bills
  • GET /api/v1/parliament/deputies
  • GET /api/v1/parliament/votes
  • GET /api/v1/parliament/sessions
Zobraziť všetky endpointy

Váš účet a API management

Info o uživateli a limitech, statistiky využití, správa API tokenů a webhook subscriptions.

  • GET /api/v1/me — Info o uživateli a limitech
  • GET /api/v1/me/usage — Štatistiky využitia
  • GET /api/v1/me/tokens — Správa API tokenů
  • GET /api/v1/me/webhooks — Správa webhook subscriptions
Zobraziť všetky endpointy

Bulk export

Stáhněte si celé datasety najednou — zákony, judikatura, EU právo, parlamentní tisky. Denně generované JSON.gz archivy.

  • GET /api/v1/bulk/laws — Všechny zákony (JSON.gz)
  • GET /api/v1/bulk/decisions — Všetky rozhodnutia
  • GET /api/v1/bulk/eu-laws — EU legislativa
  • GET /api/v1/bulk/parliament-bills — Parlamentní tisky
Zobraziť všetky endpointy

Ukážky kódu

Načítanie zákona podľa čísla a roku
curl -s \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  https://ceskezakony.cz/api/v1/laws/89/2012
$response = Http::withToken('YOUR_TOKEN')
    ->acceptJson()
    ->get('https://ceskezakony.cz/api/v1/laws/89/2012');

$law = $response->json('data');
import requests

response = requests.get(
    'https://ceskezakony.cz/api/v1/laws/89/2012',
    headers={
        'Authorization': 'Bearer YOUR_TOKEN',
        'Accept': 'application/json',
    }
)
law = response.json()['data']
const response = await fetch(
  'https://ceskezakony.cz/api/v1/laws/89/2012',
  {
    headers: {
      'Authorization': 'Bearer YOUR_TOKEN',
      'Accept': 'application/json',
    }
  }
);
const { data: law } = await response.json();
Vyhľadávanie v judikatúre
curl -s \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  "https://ceskezakony.cz/api/v1/decisions?q=bezdůvodné+obohacení&court=NS"
$response = Http::withToken('YOUR_TOKEN')
    ->acceptJson()
    ->get('https://ceskezakony.cz/api/v1/decisions', [
        'q'      => 'bezdůvodné obohacení',
        'court'  => 'NS',
    ]);

$decisions = $response->json('data');
response = requests.get(
    'https://ceskezakony.cz/api/v1/decisions',
    params={'q': 'bezdůvodné obohacení', 'court': 'NS'},
    headers={'Authorization': 'Bearer YOUR_TOKEN', 'Accept': 'application/json'},
)
decisions = response.json()['data']
const params = new URLSearchParams({ q: 'bezdůvodné obohacení', court: 'NS' });
const response = await fetch(
  `https://ceskezakony.cz/api/v1/decisions?${params}`,
  { headers: { 'Authorization': 'Bearer YOUR_TOKEN', 'Accept': 'application/json' } }
);
const { data: decisions } = await response.json();
Sledovanie legislatívneho procesu
curl -s \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  "https://ceskezakony.cz/api/v1/parliament/bills?period=10&status=active"
$response = Http::withToken('YOUR_TOKEN')
    ->acceptJson()
    ->get('https://ceskezakony.cz/api/v1/parliament/bills', [
        'period' => 10,
        'status' => 'active',
    ]);

$bills = $response->json('data');
response = requests.get(
    'https://ceskezakony.cz/api/v1/parliament/bills',
    params={'period': 10, 'status': 'active'},
    headers={'Authorization': 'Bearer YOUR_TOKEN', 'Accept': 'application/json'},
)
bills = response.json()['data']
const params = new URLSearchParams({ period: 10, status: 'active' });
const response = await fetch(
  `https://ceskezakony.cz/api/v1/parliament/bills?${params}`,
  { headers: { 'Authorization': 'Bearer YOUR_TOKEN', 'Accept': 'application/json' } }
);
const { data: bills } = await response.json();

Autentizácia

API používa autentizáciu Bearer token:

Authorization: Bearer YOUR_API_TOKEN
  • Token si vygenerujete vo svojom profile po prihlásení: Profil → API
  • Nikdy nezdieľajte svoj API token — zaobchádzajte s ním ako s heslom.
  • Všetky požiadavky musia ísť cez HTTPS.
Token je možné kedykoľvek zneplatniť alebo obnoviť v nastaveniach profilu. Odporúčame používať oddelené tokeny pre rôzne projekty.

Limity a férové využitie

Typ prístupu Denný limit Burst limit
Registrovaní používatelia 5 000 / den 5 req/s

Formát odpovedí

  • Všetky odpovede sú vo formáte JSON
  • Názvy polí používajú snake_case
  • Dátumy sú vo formáte ISO 8601 (např. 2024-01-01T00:00:00Z)
  • Pre veľké kolekcie sa používa cursor stránkovanie
  • Posielajte hlavičku Accept-Language pre preložený obsah.

Štruktúra chybovej odpovede

{
    "error": {
        "code": "RATE_LIMIT_EXCEEDED",
        "message": "Too many requests. Retry after 60s.",
        "retry_after": 60
    }
}

Cursor stránkovanie

{
    "data": [ ... ],
    "meta": {
        "cursor": "eyJpZCI6MTIzNH0",
        "per_page": 25,
        "has_more": true
    }
}

Pokročilé funkce

Webhook notifikace

Odebírejte události v reálném čase: změny zákonů, nová rozhodnutí, posun tisků legislativním procesem. HMAC-SHA256 podepsané payloady.

Bulk export

Stáhněte si celé datasety najednou — zákony, judikatura, EU právo, parlamentní tisky. Denně generované JSON.gz archivy.

HTTP caching (ETag)

Efektivní caching pomocí ETag a Cache-Control hlaviček. Immutable data (konkrétní verze zákonů, rozhodnutí) jsou cachovatelná na 24 hodin.

Per-user limity

Potřebujete vyšší limity pro akademický výzkum nebo veřejnou službu? Kontaktujte nás a nastavíme vám vlastní kvótu zdarma.

Plná referencia API

Kompletná referenčná dokumentácia všetkých endpointov v Swagger UI — interaktívne testovanie priamo v prehliadači, generovanie klientov v desiatkach jazykov.

Začnite stavať — je to zadarmo

Registrácia zaberie 30 sekúnd. Žiadna platobná karta.

Obľúbené
História prehliadania