Dokumentácia

REST API

Posledná aktualizácia: 15. januára 2026

REST API platformy je verzionované cez URL prefix /api/v1/. Všetky endpoints odpovedajú v JSON formáte (Content-Type: application/json) a vyžadujú API kľúč v Authorization Bearer header-i.

1. Autentifikácia

API kľúče si vygenerujete v /account/api-keys (vyžaduje aspoň Business plán). Každý kľúč má priradený scope (obligations:read,obligations:write, webhooks:manage).

Authorization: Bearer clg_live_a1b2c3d4e5f6...

Kľúč zobrazujeme iba raz pri vytvorení. Strata kľúča → musíte vytvoriť nový a zrušiť starý. Kľúče môžu mať expiráciu (max 365 dní) a môžu byť kedykoľvek revoked z UI.

2. Rate limity

PlánLimitSliding window
Anonymous (web)100 req/ IP / hodina
Business10 000 req/ kľúč / mesiac
EnterprisecustomSLA-driven

Response headers pri každom volaní:

X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9847
X-RateLimit-Reset: 1719859200

Pri prekročení limitu API odpovie 429 Too Many Requests s Retry-After header-om.

3. Endpoints

GET /api/v1/obligations

Query parameters: q, type, commodities, activities, authorities, regions, page (default 1), pageSize (20–100, default 50).

curl -H "Authorization: Bearer YOUR_KEY" \
  "https://compliance.capitol-legal.com/api/v1/obligations?q=elektrina&pageSize=50"

GET /api/v1/obligations/:origId

Detail jednej povinnosti vrátane M:N relácií (statutes, authorities, commodities).

curl -H "Authorization: Bearer YOUR_KEY" \
  "https://compliance.capitol-legal.com/api/v1/obligations/247"

POST /api/v1/assistant/chat

Streaming SSE chat endpoint. Body: { messages: [{ role, content }] }. Response: text/event-stream s data: {"chunk":"..."} chunks ukončené data: [DONE].

curl -N -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"Aké povinnosti má výrobca elektriny?"}]}' \
  "https://compliance.capitol-legal.com/api/v1/assistant/chat"

GET /api/v1/calendar/feed.ics

Personalizovaný iCalendar feed (RFC 5545) s povinnosťami z watchlistu používateľa.

4. Error model

Štandardná error response (statusy 4xx/5xx):

{
  "error": {
    "code": "VALIDATION",
    "message": "Invalid request shape.",
    "requestId": "req_2sFkP9aQ"
  }
}

Error codes: AUTH, FORBIDDEN, VALIDATION, NOT_FOUND, RATE_LIMITED, AI_UNAVAILABLE, UPSTREAM_ERROR.

5. Versioning policy

API verzia je v URL prefixe (/api/v1/*). Breaking changes vždy bumpujú major (v2) a stará verzia ostáva k dispozícii minimálne 6 mesiacov so Sunset header-om informujúcim o termíne ukončenia.