API Dokumentace

Kompletní REST API reference pro TimeHunter — 111 endpointů

Základní URLhttps://api.timehunter.pl

Začínáme

Autentizace

API podporuje dvě metody autentizace: JWT tokeny a API klíče.

JWT Token (HttpOnly Cookie)

Přihlaste se přes POST /api/auth/login pro získání JWT. Token je nastaven automaticky jako HttpOnly cookie nebo ho můžete poslat v hlavičce Authorization.

Authorization: Bearer eyJhbG...

API klíč

Vygenerujte API klíč v Nastavení → API klíče. Pošlete ho v hlavičce X-Api-Key. Klíče mají oprávnění pro čtení/zápis.

X-Api-Key: th_live_abc123...

Limity požadavků

Endpointy mají limity požadavků pro ochranu před zneužitím. Při překročení limitu API vrátí HTTP 429.

LimiterOknoMax. požadavků
auth15 min20
register1 h5
qr1 min30
api1 min100
ai1 min10
schema5 min10
adminOp1 h5
locationTrail30 s1

Autentizace(5)

POST/api/auth/register-companyVeřejný5/1 h

Registrace nové firmy s administrátorským účtem a výběrem plánu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/auth/register-company" \
  -H "Content-Type: application/json" \
  -d '{"companyName":"Moja Firma Sp. z o.o.","nip":"1234567890","email":"admin@mojafirma.pl","password":"SecurePass123!","adminName":"Jan Kowalski","plan":"start","countryCode":"PL"}'
Požadavek
{
  "companyName": "Moja Firma Sp. z o.o.",
  "nip": "1234567890",
  "email": "admin@mojafirma.pl",
  "password": "SecurePass123!",
  "adminName": "Jan Kowalski",
  "plan": "start",
  "countryCode": "PL"
}
Odpověď
{
  "success": true,
  "message": "Firma zarejestrowana pomyślnie",
  "user": {
    "id": "uuid",
    "email": "admin@mojafirma.pl",
    "role": "admin"
  }
}
POST/api/auth/loginVeřejný20/15 min

Přihlášení pomocí e-mailu a hesla, získání JWT tokenu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@mojafirma.pl","password":"SecurePass123!"}'
Požadavek
{
  "email": "admin@mojafirma.pl",
  "password": "SecurePass123!"
}
Odpověď
{
  "success": true,
  "user": {
    "userId": "uuid",
    "email": "admin@mojafirma.pl",
    "role": "admin",
    "companyId": "uuid"
  }
}
GET/api/auth/meJWT

Získání profilu aktuálního uživatele a informací o předplatném

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/auth/me" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "user": {
    "id": "uuid",
    "email": "admin@mojafirma.pl",
    "full_name": "Jan Kowalski",
    "role": "admin"
  },
  "subscription": {
    "status": "trial",
    "trialEnd": "2026-03-01"
  }
}
POST/api/auth/logoutVeřejný

Odhlášení (vymazání HttpOnly cookie)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/auth/logout"
Odpověď
{
  "success": true
}
POST/api/auth/change-passwordJWT

Změna hesla přihlášeného uživatele

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/auth/change-password" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"currentPassword":"OldPass123!","newPassword":"NewPass456!"}'
Požadavek
{
  "currentPassword": "OldPass123!",
  "newPassword": "NewPass456!"
}
Odpověď
{
  "success": true,
  "message": "Hasło zmienione"
}

Pracovní relace(8)

GET/api/work/sessionJWT

Získání aktivní pracovní relace uživatele

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/work/session" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "session": {
    "id": "uuid",
    "start_time": "2026-02-15T08:00:00+01:00",
    "break_start": null,
    "end_time": null
  },
  "breakLimit": 30
}
POST/api/work/startJWT

Zahájení nové pracovní relace s volitelnou GPS lokací

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/start" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"latitude":50.2649,"longitude":19.0238,"workMode":"office"}'
Požadavek
{
  "latitude": 50.2649,
  "longitude": 19.0238,
  "workMode": "office"
}
Odpověď
{
  "success": true,
  "session": {
    "id": "uuid",
    "start_time": "2026-02-15T08:00:00+01:00"
  }
}
POST/api/work/stopJWT

Ukončení aktuální pracovní relace

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/stop" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"latitude":50.2649,"longitude":19.0238}'
Požadavek
{
  "latitude": 50.2649,
  "longitude": 19.0238
}
Odpověď
{
  "success": true,
  "session": {
    "id": "uuid",
    "end_time": "2026-02-15T16:00:00+01:00",
    "total_hours": 8
  }
}
POST/api/work/break-startVolitelný

Zahájení přestávky (podporuje autorizaci QR tokenem)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/break-start" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"qrToken":"optional-qr-token"}'
Požadavek
{
  "qrToken": "optional-qr-token"
}
Odpověď
{
  "success": true,
  "breakStart": "2026-02-15T12:00:00+01:00"
}
POST/api/work/break-endVolitelný

Ukončení aktuální přestávky (podporuje autorizaci QR tokenem)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/break-end" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"qrToken":"optional-qr-token"}'
Požadavek
{
  "qrToken": "optional-qr-token"
}
Odpověď
{
  "success": true,
  "breakEnd": "2026-02-15T12:30:00+01:00"
}
GET/api/work/break-todayJWT

Získání celkového času přestávek za dnešek

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/work/break-today" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "totalBreakSeconds": 1800
}
GET/api/work/todayAPI Key / JWT

Získání souhrnu pracovní doby za dnešek

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/work/today" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "totalSeconds": 28800,
  "totalHours": "8.00"
}
POST/api/work/location-updateJWT

Odeslání aktualizace GPS lokace během aktivní relace

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/location-update" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"latitude":50.2649,"longitude":19.0238}'
Požadavek
{
  "latitude": 50.2649,
  "longitude": 19.0238
}
Odpověď
{
  "success": true
}

QR kód a skenování(4)

GET/api/qr/:userIdJWT

Získání QR kódu uživatele (vlastního nebo jako admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/qr/:userId" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "qrToken": "uuid-token",
  "qrCodeUrl": "data:image/png;base64,..."
}
POST/api/work/qr-scanQR Token30/1 min

Skenování QR kódu pro přepnutí relace (start/stop/přestávka)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/qr-scan" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"qrToken":"uuid-token","latitude":50.2649,"longitude":19.0238}'
Požadavek
{
  "qrToken": "uuid-token",
  "latitude": 50.2649,
  "longitude": 19.0238
}
Odpověď
{
  "success": true,
  "action": "start",
  "session": {
    "id": "uuid"
  }
}
POST/api/work/qr-scan-statusQR Token30/1 min

Získání pracovního stavu pomocí QR tokenu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/qr-scan-status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"qrToken":"uuid-token"}'
Požadavek
{
  "qrToken": "uuid-token"
}
Odpověď
{
  "isWorking": true,
  "onBreak": false,
  "sessionStart": "2026-02-15T08:00:00+01:00"
}
POST/api/work/photo-uploadQR Token30/1 min

Nahrání ověřovací fotografie při QR registraci

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work/photo-upload" \
  -H "Authorization: Bearer <token>"
Požadavek
(multipart/form-data: qrToken, eventId, photo)
Odpověď
{
  "success": true,
  "photoUrl": "https://..."
}

Docházka(3)

GET/api/attendanceJWT + Admin

Získání dat docházky všech zaměstnanců (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/attendance" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/attendance?date=2026-02-15&employeeId=uuid
Odpověď
{
  "attendance": [
    {
      "userId": "uuid",
      "fullName": "Jan Kowalski",
      "startTime": "08:00",
      "endTime": "16:00",
      "totalHours": "7.50",
      "breaks": 1800
    }
  ]
}
GET/api/employees/statusAPI Key / JWT

Získání aktuálního pracovního stavu všech zaměstnanců

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/employees/status" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "employees": [
    {
      "id": "uuid",
      "fullName": "Jan Kowalski",
      "isWorking": true,
      "onBreak": false,
      "startTime": "08:00"
    }
  ]
}
GET/api/late/todayJWT

Kontrola zda uživatel dnes přišel pozdě

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/late/today" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "isLate": false,
  "minutesLate": 0
}

Reporty(6)

GET/api/report/dailyAPI Key / JWT

Získání denního pracovního reportu

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/report/daily" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/report/daily?date=2026-02-15
Odpověď
{
  "date": "2026-02-15",
  "totalHours": "8.00",
  "sessions": []
}
GET/api/report/weeklyAPI Key / JWT

Získání týdenního pracovního reportu

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/report/weekly" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "weekStart": "2026-02-10",
  "weekEnd": "2026-02-16",
  "totalHours": "40.00"
}
GET/api/report/monthlyAPI Key / JWT

Získání měsíčního pracovního reportu

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/report/monthly" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/report/monthly?month=2026-02
Odpověď
{
  "month": "2026-02",
  "totalHours": "160.00",
  "workDays": 20
}
GET/api/reports/periodJWT + Admin

Získání reportu za vlastní časové období (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/reports/period" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/reports/period?from=2026-02-01&to=2026-02-28
Odpověď
{
  "employees": [],
  "summary": {
    "totalHours": "320.00"
  }
}
GET/api/report/pdf-dataJWT

Získání dat reportu pro generování PDF

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/report/pdf-data" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "reportData": {}
}
POST/api/reports/monthly-pdfJWT + Admin

Generování měsíčního PDF reportu (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/reports/monthly-pdf" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"month":"2026-02","employeeIds":["uuid1","uuid2"]}'
Požadavek
{
  "month": "2026-02",
  "employeeIds": [
    "uuid1",
    "uuid2"
  ]
}
Odpověď
(PDF binary)

Žádosti o dovolenou(5)

POST/api/leave/requestJWT

Podání nové žádosti o dovolenou (dovolená, nemocenská atd.)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/leave/request" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"leave_type":"vacation","start_date":"2026-03-01","end_date":"2026-03-05","comment":"Urlop wypoczynkowy","request_unit":"days"}'
Požadavek
{
  "leave_type": "vacation",
  "start_date": "2026-03-01",
  "end_date": "2026-03-05",
  "comment": "Urlop wypoczynkowy",
  "request_unit": "days"
}
Odpověď
{
  "success": true,
  "request": {
    "id": "uuid",
    "status": "pending"
  }
}
GET/api/leave/balance/:userIdJWT

Získání zůstatku dovolené uživatele

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/leave/balance/:userId" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "balance": {
    "total_days": 26,
    "used_days": 5,
    "pending_days": 3,
    "remaining_days": 18
  }
}
PUT/api/leave/balance/:userIdJWT + Admin

Aktualizace zůstatku dovolené (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/leave/balance/:userId" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"total_days":30}'
Požadavek
{
  "total_days": 30
}
Odpověď
{
  "success": true
}
GET/api/admin/leave-requestsJWT + Admin

Seznam všech žádostí o dovolenou (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/leave-requests" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "requests": [
    {
      "id": "uuid",
      "employee": "Jan Kowalski",
      "leave_type": "vacation",
      "status": "pending"
    }
  ]
}
POST/api/admin/leave/:actionJWT + Admin

Schválení nebo zamítnutí žádosti o dovolenou (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/admin/leave/:action" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"requestId":"uuid","comment":"Zatwierdzono"}'
Požadavek
{
  "requestId": "uuid",
  "comment": "Zatwierdzono"
}
Odpověď
{
  "success": true,
  "status": "approved"
}

Svátky(4)

GET/api/holidaysJWT

Získání seznamu firemních svátků

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/holidays" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "holidays": [
    {
      "id": 1,
      "name": "Nowy Rok",
      "date": "2026-01-01",
      "country_code": "PL"
    }
  ]
}
POST/api/admin/holidaysJWT + Admin

Vytvoření vlastního svátku (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/admin/holidays" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Dzień Firmy","date":"2026-06-15"}'
Požadavek
{
  "name": "Dzień Firmy",
  "date": "2026-06-15"
}
Odpověď
{
  "success": true,
  "holiday": {
    "id": 2,
    "name": "Dzień Firmy"
  }
}
PUT/api/admin/holidays/:idJWT + Admin

Aktualizace svátku (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/admin/holidays/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Dzień Firmy (zaktualizowany)","date":"2026-06-16"}'
Požadavek
{
  "name": "Dzień Firmy (zaktualizowany)",
  "date": "2026-06-16"
}
Odpověď
{
  "success": true
}
DELETE/api/admin/holidays/:idJWT + Admin

Smazání svátku (admin)

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/admin/holidays/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}

Události(6)

GET/api/eventsJWT

Získání událostí/úkolů na daný den

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/events" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/events?date=2026-02-15
Odpověď
{
  "events": [
    {
      "id": 1,
      "title": "Spotkanie",
      "start": "09:00",
      "end": "10:00"
    }
  ]
}
POST/api/events/createJWT

Vytvoření nové události nebo úkolu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/events/create" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Spotkanie","date":"2026-02-20","start_time":"09:00","end_time":"10:00"}'
Požadavek
{
  "title": "Spotkanie",
  "date": "2026-02-20",
  "start_time": "09:00",
  "end_time": "10:00"
}
Odpověď
{
  "success": true,
  "event": {
    "id": 2
  }
}
PUT/api/events/:idJWT + Admin

Aktualizace události (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/events/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Spotkanie (zmienione)","end_time":"11:00"}'
Požadavek
{
  "title": "Spotkanie (zmienione)",
  "end_time": "11:00"
}
Odpověď
{
  "success": true
}
DELETE/api/events/:idJWT + Admin

Smazání události (admin)

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/events/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}
POST/api/events/bulk-activateJWT + Admin

Hromadná aktivace událostí (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/events/bulk-activate" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"ids":[1,2,3]}'
Požadavek
{
  "ids": [
    1,
    2,
    3
  ]
}
Odpověď
{
  "success": true,
  "count": 3
}
POST/api/events/bulk-deleteJWT + Admin

Hromadné smazání událostí (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/events/bulk-delete" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"ids":[1,2,3]}'
Požadavek
{
  "ids": [
    1,
    2,
    3
  ]
}
Odpověď
{
  "success": true,
  "count": 3
}

Žádosti a schválení(7)

GET/api/requestsJWT

Získání žádostí uživatele nebo všech žádostí (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/requests" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "requests": [
    {
      "id": "uuid",
      "leave_type": "vacation",
      "status": "pending"
    }
  ]
}
POST/api/requestsJWT

Vytvoření nové žádosti

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/requests" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"employee_id":"uuid","start_date":"2026-03-01","end_date":"2026-03-05","leave_type":"vacation","comment":"Urlop"}'
Požadavek
{
  "employee_id": "uuid",
  "start_date": "2026-03-01",
  "end_date": "2026-03-05",
  "leave_type": "vacation",
  "comment": "Urlop"
}
Odpověď
{
  "success": true,
  "request": {
    "id": "uuid"
  }
}
PUT/api/requests/:idJWT

Aktualizace detailů žádosti

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/requests/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"start_date":"2026-03-02","end_date":"2026-03-06"}'
Požadavek
{
  "start_date": "2026-03-02",
  "end_date": "2026-03-06"
}
Odpověď
{
  "success": true
}
PUT/api/requests/:id/statusJWT

Aktualizace stavu žádosti (schválení/zamítnutí)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/requests/:id/status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status":"approved","comment":"Zatwierdzono"}'
Požadavek
{
  "status": "approved",
  "comment": "Zatwierdzono"
}
Odpověď
{
  "success": true
}
DELETE/api/requests/:idJWT

Smazání žádosti

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/requests/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}
POST/api/requests/bulk-approveJWT

Hromadné schválení žádostí

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/requests/bulk-approve" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"ids":["uuid1","uuid2"]}'
Požadavek
{
  "ids": [
    "uuid1",
    "uuid2"
  ]
}
Odpověď
{
  "success": true,
  "count": 2
}
POST/api/requests/bulk-rejectJWT

Hromadné zamítnutí žádostí

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/requests/bulk-reject" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"ids":["uuid1","uuid2"],"comment":"Odrzucono"}'
Požadavek
{
  "ids": [
    "uuid1",
    "uuid2"
  ],
  "comment": "Odrzucono"
}
Odpověď
{
  "success": true,
  "count": 2
}

Harmonogramy(5)

GET/api/schedulesAPI Key / JWT

Získání pracovních harmonogramů

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/schedules" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/schedules?month=2026-02&userId=uuid
Odpověď
{
  "schedules": [
    {
      "id": "uuid",
      "date": "2026-02-15",
      "start": "08:00",
      "end": "16:00"
    }
  ]
}
POST/api/schedulesJWT

Vytvoření záznamu harmonogramu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/schedules" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"userId":"uuid","date":"2026-02-20","start_time":"08:00","end_time":"16:00"}'
Požadavek
{
  "userId": "uuid",
  "date": "2026-02-20",
  "start_time": "08:00",
  "end_time": "16:00"
}
Odpověď
{
  "success": true,
  "schedule": {
    "id": "uuid"
  }
}
POST/api/schedules/bulkJWT

Hromadné vytvoření záznamů harmonogramu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/schedules/bulk" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"schedules":[{"userId":"uuid","date":"2026-02-20","start_time":"08:00","end_time":"16:00"}]}'
Požadavek
{
  "schedules": [
    {
      "userId": "uuid",
      "date": "2026-02-20",
      "start_time": "08:00",
      "end_time": "16:00"
    }
  ]
}
Odpověď
{
  "success": true,
  "count": 5
}
PUT/api/schedules/:idJWT

Aktualizace záznamu harmonogramu

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/schedules/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"start_time":"09:00","end_time":"17:00"}'
Požadavek
{
  "start_time": "09:00",
  "end_time": "17:00"
}
Odpověď
{
  "success": true
}
DELETE/api/schedules/:idJWT

Smazání záznamu harmonogramu

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/schedules/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}

Správa zaměstnanců(6)

GET/api/admin/usersJWT + Admin

Seznam všech zaměstnanců ve firmě (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/users" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "users": [
    {
      "id": "uuid",
      "full_name": "Jan Kowalski",
      "email": "jan@firma.pl",
      "role": "employee"
    }
  ]
}
POST/api/admin/add-employeeJWT + Admin

Přidání nového zaměstnance (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/admin/add-employee" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"fullName":"Anna Nowak","email":"anna@firma.pl","password":"TempPass123!","role":"employee","initialLeaveDays":26}'
Požadavek
{
  "fullName": "Anna Nowak",
  "email": "anna@firma.pl",
  "password": "TempPass123!",
  "role": "employee",
  "initialLeaveDays": 26
}
Odpověď
{
  "success": true,
  "employee": {
    "id": "uuid",
    "email": "anna@firma.pl"
  }
}
PUT/api/admin/edit-employee/:idJWT + Admin

Úprava údajů zaměstnance (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/admin/edit-employee/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"fullName":"Anna Nowak-Kowalska","role":"manager"}'
Požadavek
{
  "fullName": "Anna Nowak-Kowalska",
  "role": "manager"
}
Odpověď
{
  "success": true
}
PUT/api/admin/update-permissions/:idJWT + Admin

Aktualizace oprávnění zaměstnance (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/admin/update-permissions/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"permissions":{"dashboard":true,"reports":true,"events":false}}'
Požadavek
{
  "permissions": {
    "dashboard": true,
    "reports": true,
    "events": false
  }
}
Odpověď
{
  "success": true
}
PUT/api/admin/archive-employee/:idJWT + Admin

Archivace/deaktivace zaměstnance (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/admin/archive-employee/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"archived":true}'
Požadavek
{
  "archived": true
}
Odpověď
{
  "success": true
}
GET/api/admin/user-timeJWT + Admin

Získání souhrnu pracovní doby uživatele (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/user-time" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/admin/user-time?date=2026-02-15
Odpověď
{
  "users": [
    {
      "userId": "uuid",
      "fullName": "Jan Kowalski",
      "totalHours": "8.00",
      "isWorking": true
    }
  ]
}

Přesčasy(5)

GET/api/overtime/settingsJWT

Získání nastavení přesčasů

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/overtime/settings" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "dailyThreshold": 8,
  "weeklyThreshold": 40,
  "multiplier": 1.5
}
PUT/api/overtime/settingsJWT + Admin

Aktualizace nastavení přesčasů (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/overtime/settings" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"dailyThreshold":8,"weeklyThreshold":40,"multiplier":1.5}'
Požadavek
{
  "dailyThreshold": 8,
  "weeklyThreshold": 40,
  "multiplier": 1.5
}
Odpověď
{
  "success": true
}
GET/api/overtime/recordsJWT

Získání záznamů přesčasů

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/overtime/records" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/overtime/records?month=2026-02
Odpověď
{
  "records": [
    {
      "id": "uuid",
      "date": "2026-02-10",
      "hours": 2.5,
      "status": "pending"
    }
  ]
}
GET/api/overtime/summaryJWT

Získání souhrnu přesčasů

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/overtime/summary" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "totalOvertimeHours": 15.5,
  "pendingHours": 5,
  "approvedHours": 10.5
}
POST/api/overtime/bulk-approveJWT + Admin

Hromadné schválení záznamů přesčasů (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/overtime/bulk-approve" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"ids":["uuid1","uuid2"]}'
Požadavek
{
  "ids": [
    "uuid1",
    "uuid2"
  ]
}
Odpověď
{
  "success": true,
  "count": 2
}

Pracovní skupiny(4)

GET/api/admin/work-groupsJWT + Admin

Seznam všech pracovních skupin (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/work-groups" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "groups": [
    {
      "id": "uuid",
      "name": "Produkcja",
      "membersCount": 12
    }
  ]
}
POST/api/admin/work-groupsJWT + Admin

Vytvoření pracovní skupiny (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/admin/work-groups" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Logistyka"}'
Požadavek
{
  "name": "Logistyka"
}
Odpověď
{
  "success": true,
  "group": {
    "id": "uuid",
    "name": "Logistyka"
  }
}
PUT/api/admin/work-groups/:idJWT + Admin

Aktualizace pracovní skupiny (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/admin/work-groups/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Logistyka & Transport"}'
Požadavek
{
  "name": "Logistyka & Transport"
}
Odpověď
{
  "success": true
}
DELETE/api/admin/work-groups/:idJWT + Admin

Smazání pracovní skupiny (admin)

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/admin/work-groups/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}

Oznámení(4)

GET/api/announcementsJWT

Získání oznámení

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/announcements" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "announcements": [
    {
      "id": "uuid",
      "title": "Nowy regulamin",
      "content": "...",
      "createdAt": "2026-02-15"
    }
  ]
}
POST/api/announcementsJWT + Admin

Vytvoření oznámení (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/announcements" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Zmiana godzin pracy","content":"Od marca biuro czynne 7-15"}'
Požadavek
{
  "title": "Zmiana godzin pracy",
  "content": "Od marca biuro czynne 7-15"
}
Odpověď
{
  "success": true,
  "announcement": {
    "id": "uuid"
  }
}
POST/api/announcements/:id/readJWT

Označení oznámení jako přečtené

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/announcements/:id/read" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}
GET/api/announcements/unread-countJWT

Získání počtu nepřečtených oznámení

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/announcements/unread-count" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "count": 3
}

Správa firmy(7)

POST/api/company/updateJWT + Admin

Aktualizace nastavení firmy (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/company/update" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Nowa Nazwa Sp. z o.o."}'
Požadavek
{
  "name": "Nowa Nazwa Sp. z o.o."
}
Odpověď
{
  "success": true
}
GET/api/company/detailsJWT + Admin

Získání detailů firmy (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/company/details" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "company": {
    "id": "uuid",
    "name": "Moja Firma",
    "plan": "start"
  }
}
GET/api/company/brandingJWT

Získání nastavení brandingu firmy

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/company/branding" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "logoUrl": "https://...",
  "primaryColor": "#2563eb"
}
PUT/api/company/brandingJWT + Admin

Aktualizace brandingu firmy (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/company/branding" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"primaryColor":"#059669"}'
Požadavek
{
  "primaryColor": "#059669"
}
Odpověď
{
  "success": true
}
POST/api/company/logoJWT + Admin

Nahrání loga firmy (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/company/logo" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"logo_url":"https://example.com/logo.png"}'
Požadavek
{
  "logo_url": "https://example.com/logo.png"
}
Odpověď
{
  "success": true
}
GET/api/company/locationJWT + Admin

Získání hlavní lokace firmy (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/company/location" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "location": {
    "latitude": 50.2649,
    "longitude": 19.0238,
    "radius": 200
  }
}
POST/api/company/locationJWT + Admin

Nastavení hlavní lokace firmy (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/company/location" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"latitude":50.2649,"longitude":19.0238,"radius":200}'
Požadavek
{
  "latitude": 50.2649,
  "longitude": 19.0238,
  "radius": 200
}
Odpověď
{
  "success": true
}

Předplatné a plány(3)

GET/api/subscription/statusJWT

Získání stavu aktuálního předplatného

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/subscription/status" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "status": "trial",
  "planId": "uuid",
  "trialEnd": "2026-03-01",
  "paymentReference": "TH-12345"
}
GET/api/subscription/payment-infoJWT

Získání platebních informací pro předplatné

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/subscription/payment-info" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "bankName": "mBank",
  "iban": "PL...",
  "reference": "TH-12345",
  "amount": "32.50 PLN"
}
GET/api/plans/publicVeřejný

Získání veřejných cenových plánů

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/plans/public"
Odpověď
{
  "plans": [
    {
      "slug": "micro",
      "name": "Micro",
      "price_per_user": 3.99,
      "max_employees": 5
    },
    {
      "slug": "start",
      "name": "Start",
      "price_per_user": 6.5,
      "max_employees": 15
    },
    {
      "slug": "pro",
      "name": "Pro",
      "price_per_user": 9.5,
      "max_employees": null
    }
  ]
}

Doplňky(4)

GET/api/addonsJWT

Získání dostupných doplňků

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/addons" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "addons": [
    {
      "id": "uuid",
      "slug": "photo_registration",
      "name": "Rejestracja zdjęciem",
      "price": 1
    }
  ]
}
POST/api/addons/:id/activateJWT + Admin

Aktivace doplňku (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/addons/:id/activate" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}
POST/api/addons/:id/deactivateJWT + Admin

Deaktivace doplňku (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/addons/:id/deactivate" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}
GET/api/company/addonsJWT

Získání aktivních doplňků firmy

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/company/addons" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "activeAddons": [
    "photo_registration",
    "location_basic"
  ]
}

API klíče(3)

GET/api/api-keysJWT + Admin

Seznam API klíčů (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/api-keys" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "keys": [
    {
      "id": "uuid",
      "name": "Integration Key",
      "prefix": "th_live_ab12",
      "created_at": "2026-02-01"
    }
  ]
}
POST/api/api-keysJWT + Admin

Vytvoření nového API klíče (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/api-keys" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"ERP Integration","permissions":{"read":true,"write":false}}'
Požadavek
{
  "name": "ERP Integration",
  "permissions": {
    "read": true,
    "write": false
  }
}
Odpověď
{
  "success": true,
  "key": "th_live_abc123...",
  "prefix": "th_live_ab12"
}
DELETE/api/api-keys/:idJWT + Admin

Smazání API klíče (admin)

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/api-keys/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}

E-mailové reporty(4)

GET/api/email-reportsJWT + Admin

Seznam naplánovaných e-mailových reportů (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/email-reports" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "reports": [
    {
      "id": "uuid",
      "title": "Raport tygodniowy",
      "schedule": "weekly",
      "recipients": [
        "admin@firma.pl"
      ]
    }
  ]
}
POST/api/email-reportsJWT + Admin

Vytvoření naplánovaného e-mailového reportu (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/email-reports" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Raport dzienny","schedule":"daily","recipients":["admin@firma.pl"]}'
Požadavek
{
  "title": "Raport dzienny",
  "schedule": "daily",
  "recipients": [
    "admin@firma.pl"
  ]
}
Odpověď
{
  "success": true,
  "report": {
    "id": "uuid"
  }
}
PUT/api/email-reports/:idJWT + Admin

Aktualizace e-mailového reportu (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/email-reports/:id" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Raport dzienny (v2)","schedule":"daily"}'
Požadavek
{
  "title": "Raport dzienny (v2)",
  "schedule": "daily"
}
Odpověď
{
  "success": true
}
DELETE/api/email-reports/:idJWT + Admin

Smazání e-mailového reportu (admin)

Zobrazit příklad
cURL
curl -X DELETE "https://api.timehunter.pl/api/email-reports/:id" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true
}

AI asistent(2)

POST/api/ai/chat-claudeJWT10/1 min

Chat s AI asistentem o pracovních datech

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/ai/chat-claude" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"message":"Ile godzin przepracowałem w tym tygodniu?","context":"work_time"}'
Požadavek
{
  "message": "Ile godzin przepracowałem w tym tygodniu?",
  "context": "work_time"
}
Odpověď
{
  "reply": "W tym tygodniu przepracowałeś 32.5 godziny..."
}
POST/api/ai/analyze-dbJWT + Admin10/1 min

Analýza databáze pomocí AI (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/ai/analyze-db" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"query":"Pokaż pracowników z nadgodzinami w lutym"}'
Požadavek
{
  "query": "Pokaż pracowników z nadgodzinami w lutym"
}
Odpověď
{
  "analysis": "...",
  "data": []
}

Webhooky(3)

GET/api/integrations/webhookJWT + Admin

Získání nastavení webhooku (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/integrations/webhook" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "webhookUrl": "https://...",
  "events": [
    "work.start",
    "work.stop"
  ]
}
PUT/api/integrations/webhookJWT + Admin

Aktualizace nastavení webhooku (admin)

Zobrazit příklad
cURL
curl -X PUT "https://api.timehunter.pl/api/integrations/webhook" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"webhookUrl":"https://example.com/hook","events":["work.start","work.stop","leave.request"]}'
Požadavek
{
  "webhookUrl": "https://example.com/hook",
  "events": [
    "work.start",
    "work.stop",
    "leave.request"
  ]
}
Odpověď
{
  "success": true
}
POST/api/integrations/webhook/testJWT + Admin

Odeslání testovacího webhooku (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/integrations/webhook/test" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "success": true,
  "statusCode": 200
}

Rozložení panelu(2)

GET/api/dashboard/layoutJWT

Získání vlastního rozložení panelu uživatele

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/dashboard/layout" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "layout": {
    "widgets": [
      "workStatus",
      "breakTimer",
      "leaveBalance"
    ]
  }
}
POST/api/dashboard/layoutJWT

Uložení rozložení panelu

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/dashboard/layout" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"widgets":["workStatus","breakTimer","quickTile"]}'
Požadavek
{
  "widgets": [
    "workStatus",
    "breakTimer",
    "quickTile"
  ]
}
Odpověď
{
  "success": true
}

Lokace(2)

GET/api/admin/locationsJWT + Admin

Získání všech registrovaných pracovních lokací (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/locations" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "locations": [
    {
      "id": "uuid",
      "name": "Biuro",
      "latitude": 50.2649,
      "longitude": 19.0238,
      "radius": 200
    }
  ]
}
GET/api/admin/location-trailJWT + Admin

Získání GPS trasy zaměstnance (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/admin/location-trail" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/admin/location-trail?userId=uuid&date=2026-02-15
Odpověď
{
  "trail": [
    {
      "lat": 50.2649,
      "lng": 19.0238,
      "timestamp": "08:05"
    }
  ]
}

Předvolby hodin(2)

GET/api/hour-presetsJWT

Získání předvoleb hodin pro rychlý zadání času

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/hour-presets" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "presets": [
    {
      "id": "uuid",
      "name": "8h standard",
      "startTime": "08:00",
      "endTime": "16:00"
    }
  ]
}
POST/api/hour-presetsJWT + Admin

Vytvoření předvolby hodin (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/hour-presets" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Nocna zmiana","startTime":"22:00","endTime":"06:00"}'
Požadavek
{
  "name": "Nocna zmiana",
  "startTime": "22:00",
  "endTime": "06:00"
}
Odpověď
{
  "success": true,
  "preset": {
    "id": "uuid"
  }
}

Schvalovací procesy(2)

GET/api/approval-workflowsJWT + Admin

Seznam schvalovacích procesů (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/approval-workflows" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "workflows": [
    {
      "id": "uuid",
      "name": "Urlopy",
      "steps": [
        "manager",
        "admin"
      ]
    }
  ]
}
POST/api/approval-workflowsJWT + Admin

Vytvoření schvalovacího procesu (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/approval-workflows" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Nadgodziny","steps":[{"role":"manager","action":"approve"}]}'
Požadavek
{
  "name": "Nadgodziny",
  "steps": [
    {
      "role": "manager",
      "action": "approve"
    }
  ]
}
Odpověď
{
  "success": true,
  "workflow": {
    "id": "uuid"
  }
}

Auditní záznamy(1)

GET/api/audit-logsJWT + Admin

Zobrazení auditních záznamů (admin)

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/audit-logs" \
  -H "Authorization: Bearer <token>"
Požadavek
GET /api/audit-logs?page=1&limit=50
Odpověď
{
  "logs": [
    {
      "id": "uuid",
      "action": "employee.created",
      "userId": "uuid",
      "timestamp": "2026-02-15T10:30:00"
    }
  ],
  "total": 150
}

Oznámení(1)

GET/api/notificationsJWT

Získání oznámení uživatele

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/notifications" \
  -H "Authorization: Bearer <token>"
Odpověď
{
  "notifications": [
    {
      "id": "uuid",
      "type": "leave_approved",
      "message": "Twój urlop został zatwierdzony",
      "read": false
    }
  ]
}

Automatické vyplnění(1)

POST/api/work-sessions/auto-fillJWT + Admin

Automatické vyplnění chybějících pracovních relací za měsíc (admin)

Zobrazit příklad
cURL
curl -X POST "https://api.timehunter.pl/api/work-sessions/auto-fill" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"userId":"uuid","month":"2026-02","startTime":"08:00","endTime":"16:00"}'
Požadavek
{
  "userId": "uuid",
  "month": "2026-02",
  "startTime": "08:00",
  "endTime": "16:00"
}
Odpověď
{
  "success": true,
  "sessionsCreated": 20
}

Veřejné endpointy(2)

GET/Veřejný

Kontrola stavu — potvrzení běhu API

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/"
Odpověď
{
  "status": "ok",
  "version": "1.0.0"
}
GET/api/app/latest-versionVeřejný

Získání informací o nejnovější verzi mobilní aplikace

Zobrazit příklad
cURL
curl -X GET "https://api.timehunter.pl/api/app/latest-version"
Odpověď
{
  "version": "1.0.0",
  "downloadUrl": "https://...",
  "releaseDate": "2026-02-12"
}

TimeHunter API v1.0 © 2026

Tento web používá cookies

Používáme soubory cookies k zajištění správného fungování služby, analýze provozu a personalizaci obsahu. Více informací najdete v naší Zásadách ochrany osobních údajů