Zeiterfassung
Zeit mit Timern und manuellen Einträgen auf Tickets erfassen.
Die Zeiterfassung ermöglicht es deinem Team, die Arbeitszeit auf Tickets zu dokumentieren. Du kannst Live-Timer verwenden, die in Echtzeit laufen, oder manuelle Einträge für vergangene Arbeit erstellen. Die Zeiterfassung muss für deine Organisation aktiviert sein.
Timer
Aktive Timer auflisten
GET /api/v1/time-tracking/timersBerechtigung erforderlich: time-tracking:view
Gibt alle aktuell laufenden Timer des authentifizierten Nutzers zurück.
Beispiel-Response
[
{
"id": "tmr_abc123",
"ticketId": "tkt_def456",
"startedAt": "2025-03-20T09:00:00Z",
"ticket": {
"displayId": "WEB-42",
"title": "Login-Seite Styling fixen"
}
}
]Timer starten
POST /api/v1/time-tracking/timersBerechtigung erforderlich: time-tracking:manage
Startet einen neuen Timer. Pro Ticket kann nur ein Timer gleichzeitig laufen.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| ticketId | string | Ja* | Ticket-ID für die Zeiterfassung |
*Entweder ticketId oder bookingItemId ist erforderlich.
Beispiel-Request
{
"ticketId": "tkt_def456"
}Timer stoppen
POST /api/v1/time-tracking/timers/{timerId}/stopBerechtigung erforderlich: time-tracking:manage
Stoppt einen laufenden Timer und erstellt einen Zeiteintrag.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| description | string | Nein | Beschreibung der geleisteten Arbeit |
Beispiel-Response
{
"id": "te_abc123",
"ticketId": "tkt_def456",
"durationMinutes": 45,
"description": "CSS-Ausrichtungsproblem behoben",
"date": "2025-03-20",
"createdAt": "2025-03-20T09:45:00Z"
}Alle Timer stoppen
POST /api/v1/time-tracking/timers/stop-allBerechtigung erforderlich: time-tracking:manage
Stoppt alle laufenden Timer des authentifizierten Nutzers.
Zeiteinträge
Meine Einträge auflisten
GET /api/v1/time-tracking/entriesBerechtigung erforderlich: time-tracking:view
Query-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| page | number | Nein | Seitennummer (Standard: 1) |
| limit | number | Nein | Einträge pro Seite (Standard: 20) |
| year | number | Nein | Nach Jahr filtern |
| month | number | Nein | Nach Monat filtern (1-12) |
| boardId | string | Nein | Nach Board filtern |
| search | string | Nein | In Beschreibungen suchen |
Manuellen Eintrag erstellen
POST /api/v1/time-tracking/entriesBerechtigung erforderlich: time-tracking:manage
Erstellt einen Zeiteintrag ohne Timer.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| ticketId | string | Ja* | Ticket-ID |
| durationMinutes | number | Ja | Dauer in Minuten (min. 1) |
| description | string | Nein | Beschreibung der Arbeit (max. 500 Zeichen) |
| date | string | Nein | Datum der Arbeit im ISO 8601-Format (Standard: heute) |
*Entweder ticketId oder bookingItemId ist erforderlich.
Beispiel-Request
{
"ticketId": "tkt_def456",
"durationMinutes": 120,
"description": "Code-Review und Tests",
"date": "2025-03-19"
}Eintrag aktualisieren
PATCH /api/v1/time-tracking/entries/{entryId}Berechtigung erforderlich: time-tracking:manage
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| durationMinutes | number | Nein | Dauer in Minuten |
| description | string | Nein | Beschreibung |
| date | string | Nein | Datum der Arbeit |
Eintrag löschen
DELETE /api/v1/time-tracking/entries/{entryId}Berechtigung erforderlich: time-tracking:manage
Gibt 204 No Content zurück.
Board- und Ticket-Zeiteinträge
Board-Zeiteinträge auflisten
GET /api/v1/boards/{boardId}/time-entriesBerechtigung erforderlich: time-tracking:view
Gibt alle Zeiteinträge für ein bestimmtes Board zurück.
Ticket-Zeitübersicht abrufen
GET /api/v1/boards/{boardId}/tickets/{ticketId}/time-entries/summaryGibt die gesamt erfasste Zeit eines Tickets zurück.
Ticket-Zeiteinträge auflisten
GET /api/v1/boards/{boardId}/tickets/{ticketId}/time-entriesBerechtigung erforderlich: time-tracking:view
Gibt alle Zeiteinträge für ein bestimmtes Ticket zurück.