⚠ Testovací data — API klíče a ID jsou fiktivní, neslouží k reálnému přístupu
Dokumentace

DigitalniJmenovky.cz REST API

DigitalniJmenovky.cz API umožňuje programaticky spravovat zaměstnance, jmenovky, gateway a statusy. API je RESTful, vrací JSON a používá standardní HTTP metody.

Veškeré požadavky musí být odesílány přes HTTPS. HTTP požadavky jsou automaticky přesměrovány.

Base URL: https://api.digitalnijmenovky.cz/v2

Autentizace

API používá Bearer token autentizaci. API klíč získáte v nastavení konzole pod Settings → API Keys.

Klíč posílejte v hlavičce každého požadavku:

HTTP Header
Authorization: Bearer djcz_live_sk_xxxxxxxxxxxxxxxxxxxx

API klíče mají dva typy: live (produkce) a test (sandbox). Testovací klíče začínají djcz_test_sk_.

Testovací klíč (sandbox)

Testovací API klíč
djcz_test_sk_demo_4f8a2b9c1e7d3f6a

Tento klíč je určen výhradně pro testování dokumentace. Vrací fiktivní data a nelze jej použít v produkci.

Chybové kódy

API vrací standardní HTTP stavové kódy. Chybové odpovědi mají konzistentní formát:

JSON — chybová odpověď
{
  "error": {
    "code":    "EMPLOYEE_NOT_FOUND",
    "message": "Employee with id 'emp_xxx' not found",
    "status":  404,
    "request_id": "req_7f3a2c1d9e4b"
  }
}
KódPopis
200 OKPožadavek proběhl úspěšně
201 CreatedZáznam byl vytvořen
400 Bad RequestChybějící nebo neplatné parametry
401 UnauthorizedNeplatný nebo chybějící API klíč
403 ForbiddenNedostatečná oprávnění
404 Not FoundZáznam nenalezen
429 Too Many RequestsPřekročen rate limit
500 Server ErrorInterní chyba serveru

Rate limiting

API omezuje počet požadavků pomocí sliding window algoritmu. Limity jsou uvedeny v hlavičkách každé odpovědi:

Response Headers
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1741694400
Retry-After: 12  (pouze při 429)
PlánLimitOkno
Free / Test100 req15 minut
Standard1 000 req15 minut
EnterpriseNeomezeno
Zaměstnanci

Zaměstnanci

Správa zaměstnanců přiřazených do systému jmenovek. Zaměstnanec je základní entita propojená s jednou nebo více jmenovkami.

GET /employees Vrátí stránkovaný seznam zaměstnanců

Vrací seznam všech zaměstnanců v organizaci. Výsledky jsou stránkované (výchozí: 20 záznamů).

Query parametry
ParametrTypPovinnýPopis
limitintegervolitelnýPočet výsledků (1–100, výchozí: 20)
offsetintegervolitelnýPřeskočit N záznamů (stránkování)
departmentstringvolitelnýFiltrovat podle oddělení (slug)
statusstringvolitelnýFiltrovat: in_office, home_office, vacation, meeting
cURL — příklad
curl https://api.digitalnijmenovky.cz/v2/employees \
  -H "Authorization: Bearer djcz_test_sk_demo_4f8a2b9c1e7d3f6a" \
  -G \
  --data-urlencode "limit=3" \
  --data-urlencode "department=it"
POST /employees Vytvoří nového zaměstnance

Vytvoří nového zaměstnance a volitelně ho přiřadí k jmenovce a oddělení.

Request body (JSON)
PoleTypPovinnýPopis
first_namestringpovinnýJméno zaměstnance
last_namestringpovinnýPříjmení zaměstnance
rolestringpovinnýPracovní pozice
department_idstringpovinnýID oddělení
emailstringvolitelnýE-mail pro sync s kalendářem
plate_idstringvolitelnýID jmenovky k přiřazení
initial_statusstringvolitelnýVýchozí status (default: in_office)
cURL
curl -X POST https://api.digitalnijmenovky.cz/v2/employees \
  -H "Authorization: Bearer djcz_test_sk_demo_4f8a2b9c1e7d3f6a" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Tomáš",
    "last_name": "Novák",
    "role": "Senior Developer",
    "department_id": "dept_it_001",
    "email": "[email protected]",
    "plate_id": "plate_042",
    "initial_status": "in_office"
  }'
PATCH /employees/{id}/status Aktualizuje status zaměstnance

Změní status zaměstnance. Změna se projeví na přiřazené jmenovce do 3 sekund.

Path parametry
ParametrTypPopis
idstringID zaměstnance (formát: emp_XXXXXXXX)
Request body
PoleTypPovinnýHodnoty
statusstringpovinnýin_office · home_office · meeting · vacation · sick · offline
untildatetimevolitelnýISO 8601 — automatický reset po uplynutí
notestringvolitelnýKrátká poznámka (max 60 znaků)
cURL
curl -X PATCH \
  https://api.digitalnijmenovky.cz/v2/employees/emp_tn8f2a1c/status \
  -H "Authorization: Bearer djcz_test_sk_demo_4f8a2b9c1e7d3f6a" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "meeting",
    "until": "2026-03-11T15:30:00Z",
    "note": "Týdenní standup"
  }'
Webhooks

Webhooks

Webhooks umožňují váš systém notifikovat o změnách v reálném čase — bez nutnosti pollovat API. DigitalniJmenovky.cz odešle HTTP POST na váš endpoint při každé definované události.

Dostupné události

UdálostPopis
employee.status_changedStatus zaměstnance byl změněn
plate.refreshedJmenovka byla překreslena
plate.offlineJmenovka přestala reagovat (baterie?)
gateway.connectedGateway se připojila k síti
gateway.disconnectedGateway ztratila připojení
employee.createdNový zaměstnanec byl přidán

Příklad payload — employee.status_changed

JSON Webhook Payload
{
  "event":      "employee.status_changed",
  "created_at": "2026-03-11T12:34:56Z",
  "request_id": "req_7f3a2c1d9e4b",
  "data": {
    "employee_id": "emp_tn8f2a1c",
    "name":        "Tomáš Novák",
    "status_prev": "in_office",
    "status_new":  "meeting",
    "until":       "2026-03-11T15:30:00Z",
    "plate_id":    "plate_042",
    "source":      "calendar_sync"
  }
}

Ověření podpisu: Každý webhook požadavek obsahuje hlavičku X-Inkplate-Signature — HMAC-SHA256 podpis těla požadavku. Vždy ověřte podpis před zpracováním!

Base URL
https://api.digitalnijmenovky.cz/v2
Příklad odpovědi — GET /employees
● 200 OK
JSON Response
{
  "data": [
    {
      "id":         "emp_tn8f2a1c",
      "first_name": "Tomáš",
      "last_name":  "Novák",
      "role":        "Senior Developer",
      "department": {
        "id":   "dept_it_001",
        "name": "IT Oddělení"
      },
      "status":     "in_office",
      "plate_id":   "plate_042",
      "updated_at": "2026-03-11T08:02:00Z"
    },
    {
      "id":         "emp_jh3k9b2d",
      "first_name": "Jana",
      "last_name":  "Horáková",
      "role":        "HR Manažerka",
      "department": {
        "id":   "dept_hr_002",
        "name": "HR & Lidé"
      },
      "status":     "home_office",
      "plate_id":   "plate_017",
      "updated_at": "2026-03-11T07:45:00Z"
    }
  ],
  "meta": {
    "total":  247,
    "limit":  20,
    "offset": 0
  }
}
● 401 Unauthorized
JSON Response
{
  "error": {
    "code":    "INVALID_API_KEY",
    "message": "The API key provided is invalid or has been revoked.",
    "status":  401,
    "request_id": "req_err_9a2b"
  }
}
● 429 Too Many Requests
JSON Response
{
  "error": {
    "code":    "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Retry after 12 seconds.",
    "status":  429,
    "retry_after": 12
  }
}
Verze API
Aktuální: v2
Deprecated: v1 (EOL 1.7.2026)
Changelog: zobrazit →