Pre AI agentov

Inkluso pre AI agentov

Väčšina webu je písaná pre ľudí. Táto stránka je pre softvér, ktorý nakupuje, porovnáva alebo preveruje dodávateľov za niekoho iného. Opisuje päť endpointov, ktoré Inkluso otvára automatickým klientom, čo presne vracajú a ako často sa smú volať.

Čo je otvorené a čo nie

Súbor robots.txt zakazuje celé /api/ a potom piatimi pravidlami typu Allow znovu otvára presne päť ciest: bezplatný sken, generátor vyhlásenia o prístupnosti, strojovo čitateľnú ponuku, nákup a dopyt na stav objednávky. Nič ďalšie pod /api/ nie je určené na automatické volanie: sken a report v plnom rozsahu vyžadujú prihlásenie prevádzkovateľa, ostatné cesty obsluhujú web, platby a zákaznícky účet.

Žiadny z tých piatich endpointov nepotrebuje kľúč, registráciu ani cookie. Požiadavky aj odpovede sú JSON. Strojovo čitateľná verzia tejto stránky je v openapi.json (OpenAPI 3.1), v llms.txt a ponuka s cenami je na /api/offers.json.

Výsledky nepíše jazykový model

Zistenia pochádzajú z axe-core, deterministického pravidlového enginu, a právne odkazy z pevnej mapovacej tabuľky. Text reportu ani vyhlásenia negeneruje jazykový model. Tá istá stránka preto pri dvoch skenoch vráti rovnaké zistenia a každé porušenie nesie "ai_generated": false.

Päť endpointov

Bezplatný sken jednej stránky

POST https://inkluso.eu/api/scan/free

Zadarmo · limit 5 volaní za hodinu na IP · len domovská stránka

Skontroluje zadanú adresu podľa WCAG 2.1 AA a namapuje zistenia na zákon, ktorý určuje pole lang. Najzávažnejšie porušenie dostanete celé aj s právnym odkazom; ostatné sa vrátia len ako závažnosť a počet výskytov v poli locked_violations.

  • Volanie trvá zhruba 30 sekúnd: server spustí skutočný prehliadač a stránku vykreslí. Nastavte si klientský timeout aspoň 60 sekúnd.
  • Adresa musí smerovať na verejný host. Chýbajúca schéma sa doplní na https://, interné a lokálne adresy sa odmietnu s kódom 422.
  • Pole scan_status je vlastná diagnostika skenu. Hodnota "bot_challenge" znamená, že sken zablokoval WAF cieľového webu, taký výsledok nie je dobré hodnotenie, ale žiadne hodnotenie.
  • Chyby: 422 (neplatná adresa alebo nebolo čo skenovať), 429 (limit), 503 (skener je zaneprázdnený), 504 (sken prekročil časový strop 300 sekúnd).
curl -sS -X POST https://inkluso.eu/api/scan/free \
     -H 'Content-Type: application/json' \
     --max-time 90 \
     -d '{"url": "https://example.sk", "lang": "sk"}'

Návrh vyhlásenia o prístupnosti

POST https://inkluso.eu/api/statement/draft

Zadarmo · limit 20 volaní za minútu na IP · nič sa neukladá

Zostaví návrh vyhlásenia o prístupnosti z údajov, ktoré pošlete. Nebeží pri tom žiadny sken, nič sa neukladá, neodosiela sa e-mail a nevzniká účet. Odpoveď má dve polia: statement (štruktúrovaný objekt) a text (ten istý dokument ako čistý text na vloženie do CMS).

  • conformance_status smie byť len "partial", "none" alebo "not_assessed". Hodnota "full" je zámerne neprípustná: úplnú zhodu nemožno vyhlásiť o sebe, len zmerať.
  • known_issues berie najviac 20 položiek, každú najviac 300 znakov; dlhší vstup sa skráti, nie odmietne.
  • Vyhlásenie je vlastné vyhlásenie objednávateľa. Inkluso žiadny z uvedených údajov neoveruje a text to výslovne hovorí.
  • Chyby: 422 (neplatná adresa, prázdny názov subjektu, nepovolený conformance_status, chybný 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.sk",
          "lang": "sk",
          "conformance_status": "partial",
          "known_issues": ["Two PDFs published before 2024 are not tagged."]}'

Stav objednávky

GET https://inkluso.eu/api/orders/{ref}

Zadarmo · limit 30 volaní za hodinu na IP · každá odpoveď nesie X-Robots-Tag: noindex

Prevedie referenciu objednávky na stav plnenia a po dokončení na adresu reportu. Referencia vzniká pri vytvorení objednávky a nie je totožná s tokenom reportu, ten do dokončenia plnenia neexistuje.

  • 404 {"detail": "Order not found"}: taká referencia neexistuje; prestaňte sa pýtať.
  • 202 {"status": "pending"}: objednávka existuje, plnenie ešte neskončilo.
  • 200 {"status": "fulfilled", "report_url": "/api/reports/{token}"}: hotovo.
  • Plnenie zahŕňa sken celého webu a vygenerovanie PDF, počítajte s minútami. Pri limite 30 volaní za hodinu je praktický strop jeden dopyt za dve minúty; jeden dopyt za päť minút je bezpečný vzorec.
curl -sS -i https://inkluso.eu/api/orders/9f2c1d7a8b6e4f0c

HTTP/2 202
x-robots-tag: noindex

{"status": "pending"}

Kúpiť audit alebo spustiť monitoring

POST https://inkluso.eu/api/billing/checkout

Platené · limit 10 volaní za minútu na IP

Vytvorí platobnú reláciu Stripe Checkout a vráti jej adresu. Samotná platba prebehne na Stripe, nie tu: údaje o karte sa na tento endpoint nikdy neposielajú. Pole tier vyberá produkt: scan_report je jednorazový audit (od 149 EUR alebo ekvivalentu v inej mene); monitor / monitor_annual je opakované monitorovacie predplatné, mesačne alebo ročne; agency sa rieši obchodne (cena za touto hodnotou je len záchytný bod, nie ponúkaná cena, agentúry by mali použiť obchodný kanál); shoptet_audit je jednorazový audit e-shopu na Shoptete (99 EUR / 2 490 Kč / 449 zł; mena sa riadi poľom lang).

  • consent musí byť true. Ide o právnu požiadavku, nie formalitu: zakúpený tarif je digitálny obsah/služba dodaná okamžite, takže kupujúci musí výslovne súhlasiť s okamžitým plnením a tým sa vzdať 14-dňovej lehoty na odstúpenie. Hodnota false alebo chýbajúce pole vráti 422 a objednávka nevznikne. Neposielajte true v mene človeka bez jeho skutočného súhlasu.
  • Mena sa riadi poľom lang: cs sa účtuje v CZK, pl v PLN, ostatné jazyky (de, en, sk) v EUR. Nejde o prepočet jednej sumy, každá mena má vlastný cenník. Jediným zdrojom pravdy je funkcia price_for_tier() v backend.billing.stripe.
  • Voliteľná hlavička Idempotency-Key: vygenerujte si sami čerstvú jedinečnú hodnotu pre KAŽDÝ nákupný zámer (napr. UUID v4). Kľúč je zviazaný s vaším presným požiadavkom (e-mail, url, tarif, jazyk): opakovanie s ROVNAKÝM požiadavkom do 24 hodín vráti ROVNAKÉ order_ref, checkout_url, amount a currency; rovnaký kľúč s INÝMI údajmi vráti 422. Kľúč použitý počas spracovania vráti 503, skúste to o chvíľu znova. Kľúč nikdy nekopírujte z dokumentácie ani z iného požiadavku.
  • Chyby: 422 (consent nie je true, neplatná adresa alebo chýbajúce/chybné pole), 429 (limit), 503 (Idempotency-Key sa práve spracúva, alebo je platobný poskytovateľ dočasne zle nakonfigurovaný), 500 (platobný 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.sk", "tier": "scan_report",
          "url": "https://example.sk", "lang": "sk", "consent": true}'

Potom opakovane volajte GET /api/orders/{order_ref} vyššie, kým sa stav nezmení na "fulfilled".

MCP server

Rovnaké štyri schopnosti existujú aj ako natívny MCP server pre klientov s podporou Model Context Protocolu (Claude, Cursor a ďalšie agentné runtime prostredia), bez vlastného HTTP kódu:

Endpoint:  https://inkluso.eu/mcp        (Streamable HTTP, len POST, bezstavový)
Nástroje:  scan_accessibility, draft_accessibility_statement,
           start_audit_checkout, check_order_status
Auth:      žiadna

Karta servera: /.well-known/mcp.json. Sémantika nástrojov presne zrkadlí HTTP endpointy: rovnaká validácia, rovnaké limity na IP, rovnaké správanie Idempotency-Key (odovzdáva sa ako argument idempotency_key nástroja start_audit_checkout) a argument consent nesie ten istý výslovný súhlas opísaný vyššie. start_audit_checkout vracia platobnú URL hostovanú Stripom, ktorú platí človek, nástroj sám nikdy platbu nevykonáva.

Agent skill (inštalácia): npx skills add maticijus/hexenkraft-agent-skills --skill inkluso-eaa-scan - https://skills.sh/maticijus/hexenkraft-agent-skills/inkluso-eaa-scan

Kontakt

Prevádzkovateľ: HEXENKRAFT s.r.o., matic@hexenkraft.cz. Nefunkčný endpoint, chybné právne mapovanie alebo limit, ktorý blokuje legitímnu integráciu, nahláste na túto adresu.