Pět endpointů
Bezplatný sken jedné stránky
POST https://inkluso.eu/api/scan/free
Zdarma · limit 5 volání za hodinu na IP · jen domovská stránka
Zkontroluje zadanou adresu proti WCAG 2.1 AA a namapuje nálezy na zákon, který určuje pole lang. Nejzávažnější porušení dostanete celé i s právním odkazem; ostatní se vrátí jen jako závažnost a počet výskytů v poli locked_violations.
- Volání trvá zhruba 30 sekund: server spustí skutečný prohlížeč a stránku vykreslí. Nastavte si klientský timeout aspoň 60 sekund.
- Adresa musí směřovat na veřejný host. Chybějící schéma se doplní na https://, interní a lokální adresy se odmítnou s kódem 422.
- Pole scan_status je vlastní diagnostika skenu. Hodnota "bot_challenge" znamená, že sken zablokoval WAF cílového webu, takový výsledek není dobré hodnocení, ale žádné hodnocení.
- Chyby: 422 (neplatná adresa nebo nebylo co skenovat), 429 (limit), 503 (skener je zaneprázdněn), 504 (sken překročil časový strop 300 sekund).
curl -sS -X POST https://inkluso.eu/api/scan/free \
-H 'Content-Type: application/json' \
--max-time 90 \
-d '{"url": "https://example.cz", "lang": "cs"}'
Návrh prohlášení o přístupnosti
POST https://inkluso.eu/api/statement/draft
Zdarma · limit 20 volání za minutu na IP · nic se neukládá
Sestaví návrh prohlášení o přístupnosti z údajů, které pošlete. Neběží při tom žádný sken, nic se neukládá, neodesílá se e-mail a nevzniká účet. Odpověď má dvě pole: statement (strukturovaný objekt) a text (tentýž dokument jako prostý text k vložení do CMS).
- conformance_status smí být jen "partial", "none" nebo "not_assessed". Hodnota "full" je záměrně nepřípustná: úplnou shodu nelze prohlásit o sobě, jen změřit.
- known_issues bere nejvýš 20 položek, každou nejvýš 300 znaků; delší vstup se zkrátí, nikoli odmítne.
- Prohlášení je vlastní prohlášení objednatele. Inkluso žádný z uvedených údajů neověřuje a text to výslovně říká.
- Chyby: 422 (neplatná adresa, prázdný název subjektu, nepovolený conformance_status, vadný e-mail), 429 (limit).
curl -sS -X POST https://inkluso.eu/api/statement/draft \
-H 'Content-Type: application/json' \
-d '{"organisation": "Vzor s.r.o.",
"url": "https://example.cz",
"lang": "cs",
"conformance_status": "partial",
"known_issues": ["Two PDFs published before 2024 are not tagged."]}'
Stav objednávky
GET https://inkluso.eu/api/orders/{ref}
Zdarma · limit 30 volání za hodinu na IP · každá odpověď nese X-Robots-Tag: noindex
Přeloží referenci objednávky na stav plnění a po dokončení na adresu reportu. Reference vzniká při vytvoření objednávky a není totožná s tokenem reportu, ten do dokončení plnění neexistuje.
- 404 {"detail": "Order not found"}: taková reference neexistuje; přestaňte se ptát.
- 202 {"status": "pending"}: objednávka existuje, plnění ještě neskončilo.
- 200 {"status": "fulfilled", "report_url": "/api/reports/{token}"}: hotovo.
- Plnění zahrnuje sken celého webu a vygenerování PDF, počítejte s minutami. Při limitu 30 volání za hodinu je praktický strop jeden dotaz za dvě minuty; jeden dotaz za pět minut je bezpečný vzorec.
curl -sS -i https://inkluso.eu/api/orders/9f2c1d7a8b6e4f0c
HTTP/2 202
x-robots-tag: noindex
{"status": "pending"}
Koupit audit nebo spustit monitoring
POST https://inkluso.eu/api/billing/checkout
Placené · limit 10 volání za minutu na IP
Vytvoří platební relaci Stripe Checkout a vrátí její adresu. Samotná platba proběhne na Stripe, ne zde: údaje o kartě se na tento endpoint nikdy neposílají. Pole tier vybírá produkt: scan_report je jednorázový audit (od 149 EUR nebo ekvivalentu v jiné měně); monitor / monitor_annual je opakovaná monitorovací předplatné, měsíčně nebo ročně; agency je řešeno obchodně (cena za touto hodnotou je jen záchytný bod, ne nabízená cena, agentury by měly použít obchodní kanál); shoptet_audit je jednorázový audit e-shopu na Shoptetu (99 EUR / 2 490 Kč / 449 zł; měna se řídí polem lang).
- consent musí být true. Jde o právní požadavek, ne formalitu: zakoupený tarif je digitální obsah/služba dodaná okamžitě, takže kupující musí výslovně souhlasit s okamžitým plněním a tím se vzdát 14denní lhůty pro odstoupení. Hodnota false nebo chybějící pole vrátí 422 a objednávka nevznikne. Neposílejte true jménem člověka bez jeho skutečného souhlasu.
- Měna se řídí polem lang: cs se účtuje v CZK, pl v PLN, ostatní jazyky (de, en) v EUR. Nejde o přepočet jedné částky, každá měna má vlastní ceník. Jediným zdrojem pravdy je funkce price_for_tier() v backend.billing.stripe.
- Volitelná hlavička Idempotency-Key: vygenerujte si sami čerstvou jedinečnou hodnotu pro KAŽDÝ nákupní záměr (např. UUID v4). Klíč je svázán s vaším přesným požadavkem (e-mail, url, tarif, jazyk): opakování se STEJNÝM požadavkem do 24 hodin vrátí STEJNÉ order_ref, checkout_url, amount a currency; stejný klíč s JINÝMI údaji vrátí 422. Klíč použitý během zpracování vrátí 503, zkuste to za chvíli znovu. Klíč nikdy nekopírujte z dokumentace ani z jiného požadavku.
- Chyby: 422 (consent není true, neplatná adresa nebo chybějící/vadné pole), 429 (limit), 503 (Idempotency-Key se právě zpracovává, nebo je platební poskytovatel dočasně špatně nakonfigurován), 500 (platební systém nedostupný).
curl -sS -X POST https://inkluso.eu/api/billing/checkout \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: ' \
-d '{"email": "buyer@example.cz", "tier": "scan_report",
"url": "https://example.cz", "lang": "cs", "consent": true}'
Poté opakovaně volejte GET /api/orders/{order_ref} výše, dokud se stav nezmění na "fulfilled".