Webhook-Endpunkte
Events abonnieren und Echtzeit-HTTP-Benachrichtigungen empfangen, wenn in deiner Organisation etwas passiert.
Webhook-Endpunkte ermoglichen es dir, HTTP-Callbacks zu empfangen, wenn Events in deiner Organisation auftreten -- zum Beispiel wenn ein Ticket erstellt oder ein Status geandert wird. Du registrierst eine URL, wahlst die Events aus, die du abonnieren mochtest, und Spedy sendet einen signierten POST-Request an deine URL, wenn ein passendes Event ausgelost wird.
Webhook-Endpunkte erfordern ein Pro-Plan-Abonnement.
Unterstuetzte Events
GET /api/v1/webhook-endpoints/eventsGibt die Liste der Event-Typen zurueck, die du abonnieren kannst.
Verfuegbare Events
| Event | Beschreibung |
|---|---|
ticket.created | Ein Ticket wurde erstellt |
ticket.updated | Ein Ticket wurde aktualisiert |
ticket.deleted | Ein Ticket wurde geloescht |
ticket.status_changed | Der Status eines Tickets wurde geaendert |
ticket.assigned | Ein Ticket wurde zugewiesen oder neu zugewiesen |
ticket.comment_added | Ein Kommentar wurde zu einem Ticket hinzugefuegt |
board.created | Ein Board wurde erstellt |
board.updated | Ein Board wurde aktualisiert |
Webhook-Endpunkte auflisten
GET /api/v1/webhook-endpointsBerechtigung erforderlich: webhooks:view
Gibt alle Webhook-Endpunkte zurueck, die fuer deine Organisation konfiguriert sind.
Beispiel-Response
[
{
"id": "wh_abc123",
"name": "CI/CD Pipeline",
"url": "https://ci.example.com/hooks/spedy",
"events": ["ticket.status_changed", "ticket.created"],
"isActive": true,
"createdAt": "2025-06-01T10:00:00Z",
"updatedAt": "2025-06-01T10:00:00Z"
}
]Webhook-Endpunkt erstellen
POST /api/v1/webhook-endpointsBerechtigung erforderlich: webhooks:manage
Erstellt einen neuen Webhook-Endpunkt. Die Antwort enthaelt ein secret-Feld -- speichere es sicher, da es nur einmal zurueckgegeben wird. Verwende das Secret, um die Signatur eingehender Payloads zu verifizieren.
Request Body
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| name | string | Ja | Anzeigename (max. 100 Zeichen) |
| url | string | Ja | Die HTTPS-URL zum Empfang von Webhook-Payloads |
| events | string[] | Ja | Array von Event-Typen zum Abonnieren |
Beispiel-Request
{
"name": "CI/CD Pipeline",
"url": "https://ci.example.com/hooks/spedy",
"events": ["ticket.created", "ticket.status_changed"]
}Beispiel-Response
{
"id": "wh_abc123",
"name": "CI/CD Pipeline",
"url": "https://ci.example.com/hooks/spedy",
"events": ["ticket.created", "ticket.status_changed"],
"isActive": true,
"secret": "whsec_a1b2c3d4e5...",
"createdAt": "2025-06-01T10:00:00Z",
"updatedAt": "2025-06-01T10:00:00Z"
}Webhook-Endpunkt abrufen
GET /api/v1/webhook-endpoints/{id}Berechtigung erforderlich: webhooks:view
Gibt Details zu einem bestimmten Webhook-Endpunkt zurueck.
Webhook-Endpunkt aktualisieren
PATCH /api/v1/webhook-endpoints/{id}Berechtigung erforderlich: webhooks:manage
Aktualisiert den Namen, die URL oder die abonnierten Events eines Webhook-Endpunkts.
Webhook-Endpunkt loeschen
DELETE /api/v1/webhook-endpoints/{id}Berechtigung erforderlich: webhooks:manage
Gibt 204 No Content zurueck.
Webhook-Endpunkt pingen
POST /api/v1/webhook-endpoints/{id}/pingBerechtigung erforderlich: webhooks:manage
Sendet einen Test-Ping an die Webhook-URL, um die Erreichbarkeit zu pruefen. Gibt 204 No Content zurueck.
Zustellungen auflisten
GET /api/v1/webhook-endpoints/{id}/deliveriesBerechtigung erforderlich: webhooks:view
Gibt die letzten Zustellversuche fuer einen Webhook-Endpunkt zurueck.
Query-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| limit | number | Nein | Anzahl der zurueckzugebenden Zustellungen (Standard: 50, max. 200) |
Beispiel-Response
[
{
"id": "dlv_xyz789",
"endpointId": "wh_abc123",
"eventType": "ticket.created",
"statusCode": 200,
"success": true,
"attempt": 1,
"error": null,
"createdAt": "2025-06-15T14:30:00Z"
}
]Erneut zustellen
POST /api/v1/webhook-endpoints/{id}/deliveries/{deliveryId}/redeliverBerechtigung erforderlich: webhooks:manage
Sendet eine vorherige Webhook-Zustellung erneut. Gibt 204 No Content zurueck.