Přeskočit na hlavní obsah

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í:

ParametrVýchozíPopis
page1Číslo stránky
per_page25Záznamů na stránku (max 100)

Metadata stránkování jsou v poli meta odpovědi.