Replay

Fixed the bug? Send the webhook that broke it again. Any request your endpoints still keep can be replayed, as captured or after editing it.

Where to replay#

TargetFromHow it travels
A destinationDashboard, API, hookline replay --destinationQueued like any delivery, with retries, and listed in Deliveries as a replay
The CLIDashboard, API, hookline replay --cliSent to every hookline listen session on the endpoint, marked as a replay
Any URLhookline replay --to, or copy as cURLSent from your own machine

In the inbox, open a request and press r, or use the Replay menu. Replays need the member role.

Edit and replay#

Choose Edit & replay to change the method, path, query, headers or body first. Masked header values stay masked in the editor. If you leave them as they are, the original values are filled in on the server, so secrets never pass through your browser. The original request is never changed.

With the CLI, --edit opens the request as YAML in your editor:

hookline replay <requestId> --cli --edit

Replays and signatures#

A replay carries the original signature headers. Many senders sign a timestamp too, so a strict receiver may reject a replay after its tolerance window (five minutes for Stripe). Test with signature checks relaxed, or use hookline trigger to send a freshly signed event.

Through the API#

curl -X POST https://<your instance>/api/v1/requests/<requestId>/replay \
  -H "Authorization: Bearer $HOOKLINE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"target": {"destination_id": "<destinationId>"}}'

Use "target": "cli" to send it to the CLI. Add an override object to edit it first; the API reference has the details. The key needs the requests:replay scope.