rizamodocs
Webhooks

Replay an endpoint's deliveries

POST
/webhooks/{id}/replay

Sends again, once each and now, the endpoint's deliveries made between since and until (within the last 30 days): the failed ones, or every one with status all. Each keeps its webhook-id and goes to the endpoint's url as it is now. Deliveries the endpoint no longer takes are skipped, and those still waiting for a retry are not replayed. Up to 1,000 a call, in the order they were made, and within the team's 5,000 replays an hour (429 once none are left); more says the range holds more, and nextCursor continues after the last one this call looked at. One range at a time: a call while the endpoint's last replay is still being sent answers 409. The endpoint must be enabled.

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from the web app, under Developers. It starts with rz_live_.

Path Parameters

id*string

The webhook endpoint's id (wh_).

Lengthlength <= 100

Header Parameters

Idempotency-Key?string

1 to 255 printable characters, new for each request (a UUID); the body up to 1 MB. For 24 hours a repeat with the same key, path and body gets the first answer, with Idempotent-Replayed: true, instead of running again; 5xx, 409 and 429 answers are not kept. Errors, Retries, has the rest.

Length1 <= length <= 255

Request Body

application/json
  1. body
since*string

From this moment, included.

Formatdate-time
until?string

To this moment, excluded. Now when left out.

Formatdate-time
status?string

failed (the default): only deliveries that did not arrive. all: delivered ones too.

Default"failed"
Value in"failed""all"
cursor?string

nextCursor from the call before, with the same range: continues after the last delivery it looked at.

Lengthlength <= 1000

Response Body

OK

application/json
  1. response
queued*integer

Deliveries sent again now, one attempt each.

Range-9007199254740991 <= value <= 9007199254740991
skipped*integer

Deliveries this call looked at that the endpoint no longer takes (its types or profiles changed since): not sent again. Deliveries still waiting for a retry are never in a replay.

Range-9007199254740991 <= value <= 9007199254740991
more*boolean

True when the range holds more than this call sent: past its 1,000, or past the team's replays left this hour.

nextCursor*|

With more: pass it as cursor, with the same range, to continue after the last delivery this call looked at, once this replay is done. Null otherwise.

Example Request
curl -X POST 'https://api.rizamo.com/v1/webhooks/wh_01m4m44q00ea9a11gpjs99ddcy/replay' \  -H 'Idempotency-Key: 4b9e7c1a-2f3d-4e8a-9c6b-1d2e3f4a5b6c' \  -H 'Content-Type: application/json' \  -d '{  "since": "2026-11-06T00:00:00Z"}'
Example Response
{  "queued": 12,  "skipped": 1,  "more": false,  "nextCursor": null}