
# Ereignisse an einen Webhook-Endpunkt erneut senden

`POST /v1/webhook-endpoints/{endpoint_id}:replay` · Berechtigung `webhook-endpoints:write` · alle Tarife

Stellt die Ereignisse aus `[from, to)` der letzten 30 Tage erneut in die Warteschlange, zum Beispiel die Ereignisse eines Zeitraums, in dem der Endpunkt deaktiviert war. Es werden nur die Ereignistypen des Endpunkts gesendet, sofern `types` sie nicht einschränkt. Jede erneut gesendete Zustellung behält die `webhook-id` des Ereignisses, sodass ein Empfänger, der Duplikate anhand der `webhook-id` entfernt, jedes Ereignis genau einmal verarbeitet; `replay_no` der Zustellung wird um eins erhöht.

## Anfrage

| Feld | Typ | Pflichtangabe | Beschreibung |
|---|---|---|---|
| `endpoint_id` | path | ja | Webhook-Endpunkt-ID (`whe_…`). |
| `from` | date-time | ja | Beginn des Zeitraums (einschließlich), innerhalb der letzten 30 Tage. |
| `to` | date-time | ja | Ende des Zeitraums (ausschließlich), nach `from`. |
| `types` | string[] | nein | Erneut zu sendende Ereignistypen; leer oder fehlend bedeutet die Typen des Endpunkts. |
| `Idempotency-Key` | header | nein | Gibt die Antwort für eine wiederholte Anfrage mit demselben Schlüssel zurück, ohne erneut in die Warteschlange zu stellen. |

```json
{
  "from": "2026-10-20T00:00:00Z",
  "to": "2026-10-21T00:00:00Z",
  "types": ["user.created"]
}
```

## Antwort

`200 OK` mit der Anzahl der in die Warteschlange gestellten Zustellungen.

```json
{
  "enqueued": 42
}
```

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Anfragetext enthält ein Feld, das oben nicht aufgeführt ist. |
| 404 | `not_found` | Dieser Endpunkt existiert in dieser Umgebung nicht. |
| 415 | `unsupported_media_type` | Der Anfragetext fehlt oder ist nicht `application/json`. |
| 422 | `validation_failed` | `/from required`, `/to required` oder eine Bereichsregel: `to` liegt nicht nach `from`, oder der Zeitraum liegt mehr als 30 Tage zurück. |
| 401 | `unauthenticated` | Die Anmeldedaten fehlen, sind ungültig oder wurden widerrufen. |
| 403 | `insufficient_permissions` | Die Anmeldedaten haben nicht die Berechtigung `webhook-endpoints:write`. |
| 503 | `service_unavailable` | Erneutes Senden ist in dieser Region noch nicht verfügbar oder die Webhook-Verwaltung ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach `Retry-After`. |

## Beispiel

```bash
curl -X POST https://api.eu.keenauth.com/v1/webhook-endpoints/whe_01k8a3m5q7t9v1w3x5y7z9b2c4:replay \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7a1c3e5f-9b2d-4f6a-8c0e-2b4d6f8a0c2e" \
  -d '{"from":"2026-10-20T00:00:00Z","to":"2026-10-21T00:00:00Z"}'
```

CLI (der Anfragetext wird von der Standardeingabe oder aus einer Datei gelesen (`--data @replay.json`)):

```bash
echo '{"from":"2026-10-20T00:00:00Z","to":"2026-10-21T00:00:00Z"}' | keenauth webhook-endpoints replay whe_01k8a3m5q7t9v1w3x5y7z9b2c4 --data -
```
