Tickets
Tickets erstellen, aktualisieren, zuweisen und überführen -- die zentralen Arbeitsobjekte in Spedy.
Tickets sind die grundlegenden Arbeitsobjekte in Spedy. Jede Aufgabe, jeder Bug, jede Feature-Anfrage oder jedes Arbeitspaket lebt als Ticket auf einem Board. Tickets unterstützen Status, Prioritäten, Zuweisungen, Labels, Fälligkeitsdaten, Zeitschätzungen und mehr.
Tickets auflisten
GET /api/v1/boards/{boardId}/ticketsGibt eine paginierte Liste der Tickets auf dem Board zurück.
Query-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| page | number | Nein | Seitennummer (Standard: 1) |
| limit | number | Nein | Einträge pro Seite (Standard: 20, max: 100) |
| statusId | string | Nein | Nach Status-ID filtern |
| assigneeId | string | Nein | Nach Verantwortlichem filtern |
| customerId | string | Nein | Nach Kunden-ID filtern |
| typeId | string | Nein | Nach Tickettyp-ID filtern (kommagetrennt für mehrere) |
| labelId | string | Nein | Nach Label-ID filtern (kommagetrennt für mehrere) |
| search | string | Nein | Suche in Titel und Beschreibung |
| includePlanning | boolean | Nein | Tickets in PLANNING-Status einschließen (Standard: false) |
| includeArchived | boolean | Nein | Archivierte/erledigte Tickets einschließen |
| overdue | boolean | Nein | Nur überfällige Tickets |
| noDueDate | boolean | Nein | Nur Tickets ohne Fälligkeitsdatum |
| dueBefore | string | Nein | Tickets fällig bis zu diesem Datum (ISO 8601) |
| dueAfter | string | Nein | Tickets fällig ab diesem Datum (ISO 8601) |
| impactLevel | string | Nein | Nach Auswirkungsstufe filtern (kommagetrennt) |
| externalReference | string | Nein | Nach externer Referenz filtern (Teilübereinstimmung) |
Beispiel-Response
{
"data": [
{
"id": "tkt_abc123",
"displayId": "WEB-42",
"title": "Login-Seite Styling fixen",
"status": {
"id": "sts_def456",
"name": "In Bearbeitung",
"category": "ACTIVE"
},
"priority": "HIGH",
"assignee": {
"id": "usr_abc123",
"name": "Alex Smith"
},
"type": {
"id": "typ_abc123",
"name": "Bug"
},
"labels": [],
"dueDate": "2025-04-01T00:00:00Z",
"createdAt": "2025-03-15T10:00:00Z"
}
],
"total": 42,
"page": 1,
"pageSize": 20,
"totalPages": 3
}Ticket erstellen
POST /api/v1/boards/{boardId}/ticketsRequest Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| title | string | Ja | Ticket-Titel (max. 200 Zeichen) |
| description | string | Nein | Detaillierte Beschreibung (max. 50.000 Zeichen) |
| statusId | string | Nein | Initialer Status-ID (Standard: Backlog) |
| assigneeId | string | Nein | Verantwortlicher Nutzer-ID |
| customerId | string | Nein | Kunden-ID |
| priority | string | Nein | LOW, MEDIUM, HIGH oder CRITICAL |
| typeId | string | Nein | Tickettyp-ID |
| labelIds | string[] | Nein | Label-IDs zum Anhängen |
| dueDate | string | Nein | Fälligkeitsdatum (ISO 8601) |
| startDate | string | Nein | Geplantes Startdatum (ISO 8601) |
| estimatedHours | number | Nein | Geschätzte Stunden (min. 0,1) |
| storyPoints | number | Nein | Story Points |
| externalReference | string | Nein | Externe Referenz-ID (max. 200 Zeichen) |
| impactLevel | string | Nein | LOW, MEDIUM, HIGH oder CRITICAL |
| milestoneId | string | Nein | Meilenstein-ID zur Zuweisung |
Beispiel-Request
{
"title": "Login-Seite Styling fixen",
"description": "Der Login-Button ist auf mobilen Geräten falsch ausgerichtet.",
"priority": "HIGH",
"typeId": "typ_bug123",
"assigneeId": "usr_abc123",
"labelIds": ["lbl_frontend"],
"dueDate": "2025-04-01T00:00:00Z"
}Ticket abrufen
GET /api/v1/boards/{boardId}/tickets/{ticketId}Gibt vollständige Ticket-Details einschließlich Beschreibung, Kommentaranzahl, Anhanganzahl und verknüpfter Daten zurück.
Ticket aktualisieren
PATCH /api/v1/boards/{boardId}/tickets/{ticketId}Alle Felder sind optional. Sende nur die Felder, die du ändern möchtest. Setze ein Feld auf null, um es zu leeren.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| title | string | Nein | Ticket-Titel |
| description | string | Nein | Detaillierte Beschreibung |
| assigneeId | string | null | Nein | Verantwortlicher (null zum Entfernen) |
| customerId | string | null | Nein | Kunde (null zum Entfernen) |
| priority | string | null | Nein | Prioritätsstufe (null zum Entfernen) |
| typeId | string | Nein | Tickettyp-ID |
| statusId | string | Nein | Status-ID |
| labelIds | string[] | Nein | Label-IDs (ersetzt bestehende Labels) |
| dueDate | string | null | Nein | Fälligkeitsdatum (null zum Entfernen) |
| startDate | string | null | Nein | Startdatum (null zum Entfernen) |
| estimatedHours | number | null | Nein | Geschätzte Stunden (null zum Entfernen) |
| storyPoints | number | null | Nein | Story Points (null zum Entfernen) |
| externalReference | string | null | Nein | Externe Referenz (null zum Entfernen) |
| impactLevel | string | null | Nein | Auswirkungsstufe (null zum Entfernen) |
| milestoneId | string | null | Nein | Meilenstein-ID (null zum Entfernen) |
| resolution | string | null | Nein | Lösungsbeschreibung |
| resolutionType | string | null | Nein | fixed, wont_fix, duplicate, cannot_reproduce oder by_design |
Ticket löschen
DELETE /api/v1/boards/{boardId}/tickets/{ticketId}Löscht das Ticket dauerhaft. Gibt 204 No Content zurück.
Ticket-Status aktualisieren
PATCH /api/v1/boards/{boardId}/tickets/{ticketId}/statusÄndert den Workflow-Status des Tickets.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| statusId | string | Ja | Ziel-Status-ID |
Ticket zuweisen
PATCH /api/v1/boards/{boardId}/tickets/{ticketId}/assignEinen Nutzer dem Ticket zuweisen oder die Zuweisung entfernen.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| assigneeId | string | null | Ja | Nutzer-ID zur Zuweisung, oder null zum Entfernen |
Ticket verschieben
POST /api/v1/boards/{boardId}/tickets/{ticketId}/moveVerschiebt ein Ticket auf ein anderes Board.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| targetBoardId | string | Ja | Ziel-Board-ID |
Beispiel-Response
{
"data": {
"id": "tkt_abc123",
"displayId": "NEW-1",
"title": "Login-Seite Styling fixen",
"boardId": "brd_newboard"
}
}Ticket überführen
POST /api/v1/boards/{boardId}/tickets/{ticketId}/transitionÜberführt ein Ticket in einen neuen Status mit optionaler Validierung der Übergangsregeln.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| statusId | string | Ja | Ziel-Status-ID |
| statusChangeReason | string | Nein | Grund für den Übergang |
Ticket genehmigen
POST /api/v1/boards/{boardId}/tickets/{ticketId}/approveGenehmigt ein Ticket im Planungs-/Backlog-Status und verschiebt es in den aktiven Workflow.