SpedySpedy Docs

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/timers

Berechtigung 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/timers

Berechtigung erforderlich: time-tracking:manage

Startet einen neuen Timer. Pro Ticket kann nur ein Timer gleichzeitig laufen.

Request Body

FeldTypPflichtBeschreibung
ticketIdstringJa*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}/stop

Berechtigung erforderlich: time-tracking:manage

Stoppt einen laufenden Timer und erstellt einen Zeiteintrag.

Request Body

FeldTypPflichtBeschreibung
descriptionstringNeinBeschreibung 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-all

Berechtigung erforderlich: time-tracking:manage

Stoppt alle laufenden Timer des authentifizierten Nutzers.


Zeiteinträge

Meine Einträge auflisten

GET /api/v1/time-tracking/entries

Berechtigung erforderlich: time-tracking:view

Query-Parameter

ParameterTypPflichtBeschreibung
pagenumberNeinSeitennummer (Standard: 1)
limitnumberNeinEinträge pro Seite (Standard: 20)
yearnumberNeinNach Jahr filtern
monthnumberNeinNach Monat filtern (1-12)
boardIdstringNeinNach Board filtern
searchstringNeinIn Beschreibungen suchen

Manuellen Eintrag erstellen

POST /api/v1/time-tracking/entries

Berechtigung erforderlich: time-tracking:manage

Erstellt einen Zeiteintrag ohne Timer.

Request Body

FeldTypPflichtBeschreibung
ticketIdstringJa*Ticket-ID
durationMinutesnumberJaDauer in Minuten (min. 1)
descriptionstringNeinBeschreibung der Arbeit (max. 500 Zeichen)
datestringNeinDatum 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

FeldTypPflichtBeschreibung
durationMinutesnumberNeinDauer in Minuten
descriptionstringNeinBeschreibung
datestringNeinDatum 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-entries

Berechtigung 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/summary

Gibt die gesamt erfasste Zeit eines Tickets zurück.

Ticket-Zeiteinträge auflisten

GET /api/v1/boards/{boardId}/tickets/{ticketId}/time-entries

Berechtigung erforderlich: time-tracking:view

Gibt alle Zeiteinträge für ein bestimmtes Ticket zurück.