LawGPT API
REST rozhraní a remote MCP server pro vyhledávání českých zákonů, načítání paragrafů z e-Sbírky, výzkum judikatury, veřejné otázky LawGPT a právní fact-check v ChatGPT.
Přehled
LawGPT používá veřejné HTTP rozhraní pro e-Sbírku, judikaturu a aplikační funkce LawGPT. Judikatura kombinuje rozhodnutí obecných soudů z justice.cz a nálezy Ústavního soudu z NALUS.
Načtení zákona podle čísla a roku, struktury, úplného znění, paragrafů a dětských fragmentů.
Lokální hledání v názvech zákonů a v cacheovaných textech fragmentů.
Obsahové hledání, vazby na paragrafy a omezené načítání výroků a odůvodnění.
AI flow pro rozpoznání typu dokumentu, doplňující otázky a návrh šablony.
Base URL
| Služba | Base URL | Použití |
|---|---|---|
| LawGPT eSbírka API | https://lawgpt.cz/api/esbirka |
Zákony, struktura, fragmenty, paragrafy, fulltext, vyhledávání. |
| LawGPT API | https://lawgpt.cz/api |
Otázky, kategorie, chat, modal fragmenty, exporty. |
| LawGPT Judikatura API | https://lawgpt.cz/api/judgments |
Vyhledávání rozhodnutí, vazby na ustanovení a detail judikátu. |
| Generátor dokumentů | https://lawgpt.cz/api/contract-generator.php |
AI generování právních dokumentů a šablon. |
| LawGPT MCP | https://lawgpt.cz/mcp |
Remote MCP konektor pro ChatGPT, Claude a další klienty s podporou Streamable HTTP. |
MCP pro ChatGPT
LawGPT vystavuje read-only remote MCP server nad eSbírka API a Judgments API. Je určený pro výzkum a fact-check českého práva v ChatGPT/Claude: model může hledat zákony i judikaturu, načítat úplná znění, paragrafy a child fragmenty a vracet přesné citační podklady.
| Položka | Hodnota |
|---|---|
| MCP URL | https://lawgpt.cz/mcp |
| Transport | Streamable HTTP |
| Autentizace | Žádná, pouze veřejné read-only právní texty |
| Runtime | Node.js MCP server jako tenká vrstva nad https://lawgpt.cz/api/esbirka, iOS API a https://lawgpt.cz/api/judgments |
Dostupné nástroje
| Nástroj | Použití |
|---|---|
search_laws |
Vyhledá zákony stejným rozhraním jako místní MCP v aplikaci Zákony by lawgpt. |
list_popular_laws |
Vrátí často používané nebo důležité české předpisy. |
search_law |
Vyhledá zákony podle titulku nebo obsahu fragmentů. |
get_law |
Načte metadata zákona podle čísla a roku. |
get_paragraph |
Načte paragraf a volitelně všechny jeho child fragmenty s textem. |
get_law_text |
Načte omezené úplné znění zákona v Markdownu, prostém textu nebo XHTML. |
search_judgments |
Vyhledá rozhodnutí obecných soudů a Ústavního soudu; před citací použijte get_judgment. |
find_judgments_by_provision |
Najde rozhodnutí citující konkrétní zákon nebo paragraf. |
get_judgment |
Načte metadata a volitelně omezený text soudního rozhodnutí. |
get_fragment |
Načte konkrétní fragment podle ID vráceného search/list/paragraph odpovědí. |
list_fragments |
Vypíše fragmenty zákona, typicky type=PARAGRAF pro discovery. |
fact_check_czech_law_claim |
Sestaví evidence packet pro právní tvrzení: search výsledky, známé zákony, paragrafy a citace. |
Remote MCP obsahuje všech osm nástrojů místní Mac verze a navíc search_law, get_fragment, list_fragments a fact_check_czech_law_claim. Vystavuje také resource templates zakony://law/{number}/{year} a zakony://judgment/{source}/{identifier}.
Smoke test
curl -s -X POST "https://lawgpt.cz/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
ChatGPT nastavení
- V ChatGPT otevřete nastavení konektorů nebo MCP nástrojů.
- Přidejte remote MCP server s URL
https://lawgpt.cz/mcp. - Autentizaci nevyplňujte. Server je veřejný a read-only.
- Pro zákonný fact-check požádejte model, aby nejdřív použil
search_law, potomget_paragraphsincludeChildren=truea citovalfullCitationaplainText. U judikatury má posearch_judgmentsvždy následovatget_judgment.
Načtení paragrafu přes MCP
curl -s -X POST "https://lawgpt.cz/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_paragraph","arguments":{"number":542,"year":2020,"paragraph":"113","collection":"sb","includeChildren":true}}}'
eSbírka zákony
Výchozí kolekce je Sb.. Pokud stejné číslo/rok existuje i ve Sbírce mezinárodních smluv, použijte ?collection=sm nebo ?collection=ms.
| Metoda | Endpoint | Popis |
|---|---|---|
| GET | /laws |
Seznam cacheovaných zákonů s filtrováním. |
| GET | /laws/{number}/{year} |
Detail zákona podle čísla a roku. |
| GET | /laws/{number}/{year}/structure |
Hierarchická struktura zákona. |
| GET | /laws/{number}/{year}/fragments |
Seznam fragmentů, volitelně s obsahem. |
| GET | /laws/{number}/{year}/fragments/{id} |
Konkrétní fragment podle lokálního nebo API ID. |
| GET | /laws/{number}/{year}/paragraph/{paragraph} |
Rychlé načtení paragrafu. |
| GET | /laws/{number}/{year}/fulltext |
Celé znění zákona ve formátu XHTML, plaintext nebo markdown. |
| GET | /laws/{number}/{year}/versions |
Historie časových znění, pokud je dostupná. |
Parametry
| Parametr | Endpointy | Hodnoty |
|---|---|---|
collection |
Všechny zákonné endpointy | sb, sm, ms. Výchozí: sb. |
status |
/laws |
active, deprecated, all. |
type |
/fragments |
PARAGRAF, CLANEK, ODSTAVEC, CAST, HLAVA, DIL. |
from, to |
/fragments |
Rozsah paragrafů. |
includeContent |
/fragments |
true nebo false. |
format |
/fulltext |
xhtml, plaintext, markdown. |
§ 2235. Skutečný text bývá v navigation.children. Pro přesnou citaci načtěte dětské fragmenty přes /fragments/{child.id}.
Vyhledávání
| Metoda | Endpoint | Popis |
|---|---|---|
| GET | /search?q={query}&in=all |
Vyhledávání v názvech zákonů a cacheovaných fragmentech. |
| GET | /autocomplete?q={query} |
Autocomplete pro výběr zákona. |
| GET | /popular, /top, /years |
Pomocné discovery endpointy. |
in podporuje titles, content a all. Content search používá cacheované XHTML fragmentů a token fallback přes inline tagy.
Judikatura
Read-only API sjednocuje rozhodnutí obecných soudů a Ústavního soudu. Vyhledávání vrací krátké relevantní výřezy; před citací vždy načtěte detail rozhodnutí.
| Metoda | Endpoint | Popis |
|---|---|---|
| GET | /api/judgments/search?q={query}&source=all |
Obsahové hledání. source: all, court, nalus. |
| GET | /api/judgments/by-provision?number=89&year=2012¶graph=580 |
Rozhodnutí obecných soudů, která citují zákon nebo konkrétní paragraf. |
| GET | /api/judgments/{identifier}?source=court |
Metadata rozhodnutí podle UUID, ECLI, spisové značky nebo NALUS identifikátoru. |
Vyhledání judikatury
curl -sG "https://lawgpt.cz/api/judgments/search" \
--data-urlencode "q=neplatnost spotřebitelské úvěrové smlouvy" \
--data-urlencode "source=all" \
--data-urlencode "limit=5"
Omezený text rozhodnutí
curl -sG "https://lawgpt.cz/api/judgments/UUID" \
--data-urlencode "source=court" \
--data-urlencode "include_text=true" \
--data-urlencode "maximum_characters=60000"
maximum_characters v rozsahu 1 000–200 000. Vyhledávání automaticky přejde na BM25, pokud není dostupné embeddingové hodnocení.
LawGPT API
| Metoda | Endpoint | Popis |
|---|---|---|
| GET | /questions |
Seznam veřejných právních otázek. |
| GET | /questions/{slug} |
Detail veřejné otázky. |
| GET | /categories |
Kategorie otázek s počty. |
| GET | /search?q={term} |
Vyhledávání ve veřejných Q&A stránkách. |
| POST | /submit |
Odeslání nové otázky. |
| POST | /chat |
Chat interakce. |
| GET | /law-fragment?number=89&year=2012¶graph=1721 |
Jednoduchý modal endpoint pro text paragrafu. |
| GET | /law-fragments?law_id=123 |
Seznam fragmentů pro UI zákona. |
Generátor dokumentů
Generátor běží jako session flow. Nejprve pošlete popis dokumentu, poté odpovědi na doplňující otázky a nakonec získáte šablonu.
| Metoda | Endpoint | Popis |
|---|---|---|
| POST | /api/contract-generator.php?action=start |
Založí session a vrátí otázky. |
| POST | /api/contract-generator.php?action=answer |
Odešle odpovědi a vytvoří šablonu. |
| GET | /api/contract-generator.php?action=session&session_id=... |
Načte stav a výsledek session. |
Start request
curl -s -X POST "https://lawgpt.cz/api/contract-generator.php?action=start" \
-H "Content-Type: application/json" \
-d '{"description":"Potřebuji smlouvu o pronájmu bytu. Jsem pronajímatel."}'
Answer request
curl -s -X POST "https://lawgpt.cz/api/contract-generator.php?action=answer" \
-H "Content-Type: application/json" \
-d '{"session_id":"SESSION_ID","answers":{"q1":"1_rok","q2":"15_000"}}'
Odpovědi a chyby
Standardní úspěšná odpověď eSbírka API
{
"success": true,
"data": {},
"meta": {
"timestamp": "2026-04-20T09:00:00+00:00",
"cached": true
}
}
Standardní chyba
{
"success": false,
"error": {
"code": "LAW_NOT_FOUND",
"message": "Law 999/2025 Sb. not found"
},
"meta": {
"timestamp": "2026-04-20T09:00:00+00:00"
}
}
| Status | Význam |
|---|---|
200 | Úspěšná odpověď. |
400 | Neplatný dotaz nebo parametr. |
404 | Zákon, fragment nebo endpoint nenalezen. |
500 | Chyba serveru nebo upstream zdroje. |
Integrace do jiného webu
- Pro veřejný frontend používejte serverový proxy endpoint, pokud očekáváte větší provoz.
- Cacheujte detail zákona, paragrafy a fulltext. Právní text není user-specific.
- Ukládejte citace jako
{number}/{year} Sb.plus paragraf nebo fragment ID. - Po vyhledávání vždy hydratujte přes detail paragrafu nebo fragmentu.
- Nespouštějte hromadné fulltext downloady z browseru.
- Pro
Sb. m. s.explicitně posílejtecollection=sm.
Příklady
Načtení zákona
curl -s "https://lawgpt.cz/api/esbirka/laws/56/2001"
Kolize Sb. vs Sb. m. s.
# 56/2001 Sb. - zákon o podmínkách provozu vozidel
curl -s "https://lawgpt.cz/api/esbirka/laws/56/2001"
# 56/2001 Sb. m. s. - mezinárodní smlouva
curl -s "https://lawgpt.cz/api/esbirka/laws/56/2001?collection=sm"
Paragraf a dětský fragment
# Paragraf často vrátí navigaci na odstavce
curl -s "https://lawgpt.cz/api/esbirka/laws/542/2020/paragraph/113"
# Konkrétní child fragment podle ID z navigation.children
curl -s "https://lawgpt.cz/api/esbirka/laws/542/2020/fragments/198579"
Content search
curl -sG "https://lawgpt.cz/api/esbirka/search" \
--data-urlencode "q=zavazuje-li nájemní" \
--data-urlencode "in=content" \
--data-urlencode "limit=3"
Repealed law
curl -s "https://lawgpt.cz/api/esbirka/laws/168/1999"
LawGPT modal fragment
curl -s "https://lawgpt.cz/api/law-fragment?number=89&year=2012¶graph=1721"