Dokumentace API
REST + JSON. Jeden dotaz prohledá PEP registr ČR, zahraniční PEP z EU a Ukrajiny a sankční seznamy EU, OSN, OFAC a ČR — s pravděpodobností totožnosti a volitelným PDF certifikátem o ověření.
Autentizace
API má dva režimy přístupu:
| Režim | Autentizace | Limit | Určení |
|---|---|---|---|
| Bezplatný | přihlášení Google účtem na amlmonitor.cz (session cookie prohlížeče) | 100 dotazů / hodinu / IP | ruční jednorázová ověření |
| Partnerský | API klíč v hlavičce X-Api-Key | denní limit dle smlouvy | programová integrace |
Partnerský klíč má tvar amk_… (48 hex znaků), je vázaný na zaplacené období
a denní limit požadavků. Klíč vydáváme po domluvě na
info@amlmonitor.cz — ukládáme pouze jeho otisk (SHA-256),
proto jej při ztrátě nelze zobrazit znovu, jen vystavit nový.
GET/api/verify
Prověří osobu podle jména (a volitelně data narození) proti všem datasetům najednou.
Parametry dotazu
| Parametr | Povinný | Popis |
|---|---|---|
jmeno | ano | celé jméno a příjmení (min. 2 slova, min. 5 znaků); diakritika ani pořadí slov nerozhodují |
narozeni | ne | datum narození YYYY-MM-DD; výrazně zpřesňuje výsledek a pravděpodobnost totožnosti |
stat | ne | ISO kód země pro demografický odhad jedinečnosti jména (výchozí cz; podporováno EU27 + EFTA) |
Bezplatný režim autentizuje session cookie z přihlášení na webu — hodí se jen pro ruční ověření v prohlížeči. Pro programový přístup použijte partnerský API klíč.
Struktura odpovědi
{
"dotaz": { "jmeno": "Andrej Babiš", "narozeni": "1954-09-02" },
"vysledek": "pep",
"pep": [{
"celeJmeno": "Ing. Andrej Babiš",
"datumNarozeni": "1954-09-02",
"funkce": "poslanec",
"kategorie": "člen Parlamentu ČR",
"organizace": "Poslanecká sněmovna PČR",
"stat": "cz",
"stav": "aktivni",
"shodaDatumNarozeni": true,
"pravdepodobnostShody": 99.9,
"zdroj": "https://www.psp.cz/…"
}],
"sankce": [],
"odhadJedinecnosti": { // viz níže },
"certifikat": { "token": "…" } // pro GET /api/certifikat, platnost 20 min
}
Pole odpovědi
| Pole | Popis |
|---|---|
vysledek | souhrnný verdikt: pep · sankce · pep+sankce · jen-historicke (všechny nálezy starší 12 měsíců — osoba už není PEP) · bez-shody |
pep[].stav | aktivni = funkci vykonává · ukonceno-do-12m = funkce skončila před méně než 12 měsíci, osoba je stále PEP dle § 54 odst. 12 AML zákona · historicky = jen historický záznam |
pep[].stat | ISO kód země výkonu funkce (cz, de, ua, …) |
…shodaDatumNarozeni | true = datum narození souhlasí · false = nesouhlasí (záznam se pak vůbec nevrací) · null = zdroj datum neuvádí nebo nebylo zadáno |
…pravdepodobnostShody | % pravděpodobnost, že nalezený záznam je tatáž osoba — vychází z četnosti jména v populaci (viz odhadJedinecnosti) |
odhadJedinecnosti | odhad počtu nositelů jména (jmenovcuOdhad) z oficiální demografie (Eurostat/ČSÚ) a četností jmen MV ČR 2016 + metodika výpočtu; pravdepodobnostTotoznosti pro shodu se jménem i datem narození a pro shodu jen jménem |
certifikat.token | podepsaný jednorázový token pro stažení PDF certifikátu, platnost 20 minut |
GET/api/certifikat
Vrátí PDF certifikát o ověření osoby (Content-Type application/pdf).
Parametr token = hodnota certifikat.token z čerstvé odpovědi /api/verify.
Certifikát nese unikátní číslo AML-RRRR-MMDD-NNNNNN a verifikační kód; každý vydaný certifikát
archivujeme a jeho pravost si kdokoli ověří na amlmonitor.cz/certifikat.
Chybové stavy
| HTTP | Význam |
|---|---|
400 | neplatný vstup (chybí jméno, špatný formát data) |
401 | neplatný API klíč |
402 | zaplacené období vypršelo |
403 | klíč deaktivován · neplatná CAPTCHA · neplatný/expirovaný certifikátový token |
429 | vyčerpán denní limit klíče, resp. hodinový limit IP v bezplatném režimu |
Chybová odpověď je vždy JSON: { "error": "…" }.
Limity a hlavičky
Partnerské odpovědi nesou hlavičky X-RateLimit-Limit (denní limit)
a X-RateLimit-Remaining (zbývající dotazy dnes). Limit se obnovuje o půlnoci Europe/Prague.
Typická latence odpovědi je do 1 s.
Datové zdroje a aktualizace
| Dataset | Zdroj | Aktualizace |
|---|---|---|
| PEP registr ČR | všechny funkce z přílohy 1 pokynu FAÚ č. 7: vláda, PSP, Senát, soudy, ČNB, NKÚ, samospráva, státní firmy (ARES + výčet KJS MF), velvyslanci, silové složky… | denně až týdně dle zdroje |
| Zahraniční PEP | oficiální dánský PEP registr, národní open data parlamentů (DE, FR, PL, NL, SK, LU, SE, UA) a Wikidata pro zbytek EU27 + Ukrajinu | týdně |
| Sankční seznamy | EU konsolidovaný (FSF), OSN, OFAC SDN, vnitrostátní seznam ČR | denně |
| Obchodní rejstřík | kompletní zrcadlo dataor.justice.cz (vazby osob na státní firmy) | měsíčně |
| Demografie | Eurostat (populace + naděje dožití, EU27+EFTA), četnosti jmen MV ČR 2016 | ročně |
Každý záznam nese odkaz na oficiální zdroj; denní snapshoty podkladů archivujeme pro auditní stopu.
Příklady
curl
# screening s API klíčem curl -H "X-Api-Key: amk_váš_klíč" \ "https://amlmonitor.cz/api/verify?jmeno=Andrej+Babi%C5%A1&narozeni=1954-09-02" # stažení certifikátu (token z předchozí odpovědi) curl -o certifikat.pdf "https://amlmonitor.cz/api/certifikat?token=…"
Node.js
const r = await fetch( "https://amlmonitor.cz/api/verify?" + new URLSearchParams({ jmeno, narozeni }), { headers: { "X-Api-Key": process.env.AMLMONITOR_KEY } }); const { vysledek, pep, sankce } = await r.json(); if (vysledek !== "bez-shody") { /* zesílená kontrola klienta */ }
Python
import requests r = requests.get("https://amlmonitor.cz/api/verify", params={"jmeno": "Andrej Babiš", "narozeni": "1954-09-02"}, headers={"X-Api-Key": klic}) r.raise_for_status() verdikt = r.json()["vysledek"]