
# Zustellungen eines Webhook-Endpunkts auflisten

`GET /v1/webhook-endpoints/{endpoint_id}/deliveries` · Berechtigung `webhook-endpoints:read` · alle Tarife

Gibt den Zustellungsverlauf des Endpunkts der letzten 30 Tage zurück, neueste zuerst (`order=asc` für älteste zuerst), seitenweise über Cursor. Es werden nur Metadaten zurückgegeben: Weder die Nutzlast noch der Antwortkörper des Empfängers wird in der Liste gespeichert. Ein Cursor ist an den Endpunkt sowie an die Filter `status` und `event_type` gebunden.

## Anfrage

| Feld | Typ | Pflichtangabe | Beschreibung |
|---|---|---|---|
| `endpoint_id` | path | ja | Webhook-Endpunkt-ID (`whe_…`). |
| `status` | query | nein | `pending`, `retrying`, `succeeded`, `abandoned` oder `cancelled`. |
| `event_type` | query | nein | Nur Zustellungen dieses Ereignistyps. |
| `limit` | query | nein | 1–100, Standard 20. |
| `after`, `before` | query | nein | Cursor aus `list_metadata`. |
| `order` | query | nein | `desc` (Standard) oder `asc`. |

## Antwort

`200 OK`

```json
{
  "data": [
    {
      "id": "whd_01k8a3m6r8t0v2w4x6y8z0b3d5",
      "endpoint_id": "whe_01k8a3m5q7t9v1w3x5y7z9b2c4",
      "event_id": "evt_01k8a3m7s9v1w3x5y7z9b2c4d6",
      "event_seq": 1042,
      "event_type": "user.created",
      "replay_no": 0,
      "status": "abandoned",
      "attempt_count": 8,
      "next_attempt_at": null,
      "last_http_status": 500,
      "last_error_class": "http_status",
      "last_latency_ms": 312,
      "created_at": "2026-10-25T08:00:00Z",
      "completed_at": "2026-10-26T08:00:00Z"
    }
  ],
  "list_metadata": { "before": null, "after": "eyJ2IjoxLCJ…" }
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `invalid_cursor` | Der Cursor ist fehlerhaft oder gehört zu einem anderen Endpunkt, Filter oder einer anderen Sortierung. |
| 404 | `not_found` | Dieser Endpunkt existiert in dieser Umgebung nicht. |
| 422 | `validation_failed` | `/status invalid_value`, `/event_type invalid_value`, ein mehrfach angegebener Parameter oder `limit` außerhalb von 1–100. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder wurden widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldedaten haben nicht die Berechtigung `webhook-endpoints:read`. |
| 503 | `service_unavailable` | Die Webhook-Verwaltung ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach Ablauf von `Retry-After`. |

## Beispiel

```bash
curl "https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4/deliveries?status=abandoned&limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth webhook-endpoints deliveries list whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --status abandoned --limit 20`
