Endpointy
Přehled hlavních API endpointů s příklady použití.
Time Entries (záznamy práce)
Získání seznamu
curl -H "X-API-Key: vas_klic" \
"https://app.mujvykaz.cz/api/v1/time-entries?from=2026-03-01&to=2026-03-31"
Query parametry: from, to, project_id, status, page, per_page.
Vytvoření záznamu
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"project_id": 1, "date": "2026-03-27", "hours": 2.5, "description": "API integrace"}' \
https://app.mujvykaz.cz/api/v1/time-entries
Povinná pole: project_id, date, hours.
Hromadná změna stavu (bulk-status)
# Odeslání ke schválení
curl -X PUT -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"ids": [1, 2, 3], "status": "submitted"}' \
https://app.mujvykaz.cz/api/v1/time-entries/bulk-status
# Schválení (manager+)
curl -X PUT -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"ids": [1, 2, 3], "status": "approved"}' \
https://app.mujvykaz.cz/api/v1/time-entries/bulk-status
# Vrácení k přepracování (manager+)
curl -X PUT -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"ids": [1, 2, 3], "status": "draft"}' \
https://app.mujvykaz.cz/api/v1/time-entries/bulk-status
Podporované hodnoty status: submitted, approved, draft (vrácení).
Projects (projekty)
Získání seznamu
curl -H "X-API-Key: vas_klic" \
https://app.mujvykaz.cz/api/v1/projects
Vytvoření projektu
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"name": "Nový web", "client_id": 1, "hourly_rate": 1500, "billable": true}' \
https://app.mujvykaz.cz/api/v1/projects
Povinná pole: name, client_id.
Clients (klienti)
Získání seznamu
curl -H "X-API-Key: vas_klic" \
https://app.mujvykaz.cz/api/v1/clients
Vytvoření klienta
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"name": "Firma s.r.o.", "ico": "12345678", "currency": "CZK"}' \
https://app.mujvykaz.cz/api/v1/clients
Povinná pole: name.
Invoices (faktury)
Získání seznamu
curl -H "X-API-Key: vas_klic" \
"https://app.mujvykaz.cz/api/v1/invoices?from=2026-01-01&to=2026-03-31"
Vytvoření faktury
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"client_id": 1, "time_entry_ids": [10, 11, 12]}' \
https://app.mujvykaz.cz/api/v1/invoices
Povinná pole: client_id, time_entry_ids.
Users (uživatelé)
Můj profil
curl -H "X-API-Key: vas_klic" \
https://app.mujvykaz.cz/api/v1/users/me
Moje statistiky
curl -H "X-API-Key: vas_klic" \
https://app.mujvykaz.cz/api/v1/users/stats
Allocations (plánování kapacit)
Naplánovaná práce z modulu Plánování kapacit. Vyžaduje plán Business a zapnutý modul Absencí.
Získání plánu a kapacity
curl -H "X-API-Key: vas_klic" \
"https://app.mujvykaz.cz/api/v1/allocations?date_from=2026-08-01&date_to=2026-08-31"
Povinné parametry: date_from, date_to (YYYY-MM-DD, rozsah max ~6 měsíců). Volitelně user_id, project_id. Vrací naplánovanou práci, kapacitu lidí (kolik mají volno) a souhrn na projekt. Ke čtení stačí klíč jen pro čtení — plán vidí všechny role.
Můj plán
curl -H "X-API-Key: vas_klic" \
"https://app.mujvykaz.cz/api/v1/allocations/my-plan?date_from=2026-08-01&date_to=2026-08-31"
Vlastní potvrzený plán se zbývajícími minutami (naplánováno − už vykázáno).
Naplánování práce
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"userId": "...", "projectId": "...", "minutesPerDay": 240, "startDate": "2026-08-03", "endDate": "2026-08-07", "status": "confirmed"}' \
https://app.mujvykaz.cz/api/v1/allocations
Povinná pole: userId, projectId, minutesPerDay, startDate, endDate. Zápis vyžaduje klíč s plným přístupem a roli manager nebo vyšší (manager jen na projekty svých klientů). Kolize s absencí zápis neblokuje — vrátí se jako varování v poli conflicts.
Opakující se plán založíte přidáním pole recurrence:
-d '{"userId": "...", "projectId": "...", "minutesPerDay": 240, "startDate": "2026-08-03", "endDate": "2026-08-07", "recurrence": {"intervalWeeks": 1, "until": "2026-12-31"}}'
intervalWeeks je 1 (každý týden) nebo 2 (každé 2 týdny), until je nepovinné (bez něj se opakuje napořád).
Úprava a smazání
# Úprava (body: seriesScope = this | following | all u výskytu série)
curl -X PUT -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"status": "confirmed"}' \
https://app.mujvykaz.cz/api/v1/allocations/{id}
# Smazání (query: series_scope = this | following | all u výskytu série)
curl -X DELETE -H "X-API-Key: vas_klic" \
"https://app.mujvykaz.cz/api/v1/allocations/{id}?series_scope=following"
U výskytu opakující se série volí seriesScope / series_scope rozsah: this (jen tento výskyt), following (tento a další), all (celá série). Výkazy zapsané podle plánu zůstávají.
Clients — Hromadný upsert (bulk)
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"clients": [{"name": "Firma A", "ico": "12345678"}, {"name": "Firma B"}]}' \
https://app.mujvykaz.cz/api/v1/clients/bulk-upsert
Párování podle názvu — existující klienti se aktualizují, noví se vytvoří. Prázdné hodnoty se ignorují (merge logika). Max 500 záznamů. Manager scope se vynucuje.
Projects — Hromadný upsert (bulk)
curl -X POST -H "X-API-Key: vas_klic" \
-H "Content-Type: application/json" \
-d '{"projects": [{"name": "Web redesign", "client_id": 1}, {"name": "Mobile app", "client_id": 2}]}' \
https://app.mujvykaz.cz/api/v1/projects/bulk-upsert
Párování podle názvu — existující projekty se aktualizují, nové se vytvoří. Max 500 záznamů. Manager scope se vynucuje.
Stránkování
Seznamové endpointy podporují stránkování:
| Parametr | Výchozí | Popis |
|---|---|---|
page | 1 | Číslo stránky |
per_page | 25 | Záznamů na stránku (max 100) |
Metadata stránkování jsou v poli meta odpovědi.