SpedySpedy Docs

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}/tickets

Gibt eine paginierte Liste der Tickets auf dem Board zurück.

Query-Parameter

ParameterTypPflichtBeschreibung
pagenumberNeinSeitennummer (Standard: 1)
limitnumberNeinEinträge pro Seite (Standard: 20, max: 100)
statusIdstringNeinNach Status-ID filtern
assigneeIdstringNeinNach Verantwortlichem filtern
customerIdstringNeinNach Kunden-ID filtern
typeIdstringNeinNach Tickettyp-ID filtern (kommagetrennt für mehrere)
labelIdstringNeinNach Label-ID filtern (kommagetrennt für mehrere)
searchstringNeinSuche in Titel und Beschreibung
includePlanningbooleanNeinTickets in PLANNING-Status einschließen (Standard: false)
includeArchivedbooleanNeinArchivierte/erledigte Tickets einschließen
overduebooleanNeinNur überfällige Tickets
noDueDatebooleanNeinNur Tickets ohne Fälligkeitsdatum
dueBeforestringNeinTickets fällig bis zu diesem Datum (ISO 8601)
dueAfterstringNeinTickets fällig ab diesem Datum (ISO 8601)
impactLevelstringNeinNach Auswirkungsstufe filtern (kommagetrennt)
externalReferencestringNeinNach 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}/tickets

Request Body

FeldTypPflichtBeschreibung
titlestringJaTicket-Titel (max. 200 Zeichen)
descriptionstringNeinDetaillierte Beschreibung (max. 50.000 Zeichen)
statusIdstringNeinInitialer Status-ID (Standard: Backlog)
assigneeIdstringNeinVerantwortlicher Nutzer-ID
customerIdstringNeinKunden-ID
prioritystringNeinLOW, MEDIUM, HIGH oder CRITICAL
typeIdstringNeinTickettyp-ID
labelIdsstring[]NeinLabel-IDs zum Anhängen
dueDatestringNeinFälligkeitsdatum (ISO 8601)
startDatestringNeinGeplantes Startdatum (ISO 8601)
estimatedHoursnumberNeinGeschätzte Stunden (min. 0,1)
storyPointsnumberNeinStory Points
externalReferencestringNeinExterne Referenz-ID (max. 200 Zeichen)
impactLevelstringNeinLOW, MEDIUM, HIGH oder CRITICAL
milestoneIdstringNeinMeilenstein-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

FeldTypPflichtBeschreibung
titlestringNeinTicket-Titel
descriptionstringNeinDetaillierte Beschreibung
assigneeIdstring | nullNeinVerantwortlicher (null zum Entfernen)
customerIdstring | nullNeinKunde (null zum Entfernen)
prioritystring | nullNeinPrioritätsstufe (null zum Entfernen)
typeIdstringNeinTickettyp-ID
statusIdstringNeinStatus-ID
labelIdsstring[]NeinLabel-IDs (ersetzt bestehende Labels)
dueDatestring | nullNeinFälligkeitsdatum (null zum Entfernen)
startDatestring | nullNeinStartdatum (null zum Entfernen)
estimatedHoursnumber | nullNeinGeschätzte Stunden (null zum Entfernen)
storyPointsnumber | nullNeinStory Points (null zum Entfernen)
externalReferencestring | nullNeinExterne Referenz (null zum Entfernen)
impactLevelstring | nullNeinAuswirkungsstufe (null zum Entfernen)
milestoneIdstring | nullNeinMeilenstein-ID (null zum Entfernen)
resolutionstring | nullNeinLösungsbeschreibung
resolutionTypestring | nullNeinfixed, 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

FeldTypPflichtBeschreibung
statusIdstringJaZiel-Status-ID

Ticket zuweisen

PATCH /api/v1/boards/{boardId}/tickets/{ticketId}/assign

Einen Nutzer dem Ticket zuweisen oder die Zuweisung entfernen.

Request Body

FeldTypPflichtBeschreibung
assigneeIdstring | nullJaNutzer-ID zur Zuweisung, oder null zum Entfernen

Ticket verschieben

POST /api/v1/boards/{boardId}/tickets/{ticketId}/move

Verschiebt ein Ticket auf ein anderes Board.

Request Body

FeldTypPflichtBeschreibung
targetBoardIdstringJaZiel-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

FeldTypPflichtBeschreibung
statusIdstringJaZiel-Status-ID
statusChangeReasonstringNeinGrund für den Übergang

Ticket genehmigen

POST /api/v1/boards/{boardId}/tickets/{ticketId}/approve

Genehmigt ein Ticket im Planungs-/Backlog-Status und verschiebt es in den aktiven Workflow.