Veřejné API pro českou legislativu
Přistupujte k zákonům, judikatuře, EU právu a parlamentním datům programaticky. Zdarma. Bez omezení registrací.
Rychlý start za 60 sekund
Vygenerujte si API token v profilu
Pojmenujte si token a zkopírujte ho.
Udělejte první požadavek
Bearer token do hlavičky — a máte data.
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://ceskezakony.cz/api/v1/laws/89/2012
{
"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"
}
}
Proč používat naše API
Zdarma navždy
Bez placených plánů, bez omezení registrací
Kompletní pokrytí
Sbírka zákonů, judikatura NS a ÚS, EU právo, parlamentní tisky
Aktualizace denně
Automatický sync z oficiálních zdrojů
Všechna data v JSON
Standardní REST, cursor paginace
OpenAPI 3.1 specifikace
Swagger UI a generátory klientů
Vysoké limity
5 000 požadavků denně pro registrované
Co je v API
Zákony
Sbírka zákonů ČR — zákony, vyhlášky, nařízení vlády. Aktuální znění, historie verzí, textové fragmenty a vzájemné vztahy.
- GET /api/v1/laws
- GET /api/v1/laws/{číslo}/{rok}
- GET /api/v1/laws/{číslo}/{rok}/fragments
- GET /api/v1/laws/{číslo}/{rok}/amendments
Judikatura
Soudní rozhodnutí NS, NSS, ÚS a dalších soudů z databáze Justice.cz. Fulltextové vyhledávání, filtrování dle soudu a klíčových slov.
- GET /api/v1/decisions
- GET /api/v1/decisions/{id}
- GET /api/v1/courts
- GET /api/v1/decision-keywords
EU právo
Nařízení a směrnice EU z EUR-Lex. Přehled transpozic do českého práva, stav implementace.
- GET /api/v1/eu-laws
- GET /api/v1/eu-laws/{celex}
- GET /api/v1/eu-laws/{celex}/transpositions
Parlament
Sněmovní tisky, poslanci, hlasování a schůze z PSP.cz. Sledování legislativního procesu v reálném čase.
- GET /api/v1/parliament/bills
- GET /api/v1/parliament/deputies
- GET /api/v1/parliament/votes
- GET /api/v1/parliament/sessions
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 — Statistiky využití
- GET /api/v1/me/tokens — Správa API tokenů
- GET /api/v1/me/webhooks — Správa webhook subscriptions
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šechna rozhodnutí
- GET /api/v1/bulk/eu-laws — EU legislativa
- GET /api/v1/bulk/parliament-bills — Parlamentní tisky
Ukázky kódu
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();
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();
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();
Autentizace
API používá Bearer token autentizaci:
Authorization: Bearer YOUR_API_TOKEN
- Token si vygenerujete ve svém profilu po přihlášení: Profil → API
- Nikdy nesdílejte svůj API token — zacházejte s ním jako s heslem.
- Všechny požadavky musí jít přes HTTPS.
Limity a férové využití
| Typ přístupu | Denní limit | Burst limit |
|---|---|---|
| Registrovaní uživatelé | 5 000 / den | 5 req/s |
Formát odpovědí
- Všechny odpovědi jsou ve formátu JSON
- Názvy polí používají snake_case
-
Data jsou ve formátu ISO 8601 (např.
2024-01-01T00:00:00Z) - Pro velké kolekce je použita cursor paginace
-
Zasílejte hlavičku
Accept-Languagepro překládaný obsah.
Struktura chybové odpovědi
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Retry after 60s.",
"retry_after": 60
}
}
Cursor paginace
{
"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á reference API
Kompletní referenční dokumentace všech endpointů v Swagger UI — interaktivní testování přímo v prohlížeči, generování klientů v desítkách jazyků.
Začněte stavět — je to zdarma
Registrace zabere 30 sekund. Žádná platební karta.