The webhook endpoints registered in this workspace, newest first. The signing secret is never included here: it is returned once, in the response that created the endpoint.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Query Parameters
Page size, 1 to 100.
1 <= value <= 10050Number of records to skip.
0 <= value0Response Body
application/json
application/json
curl -X GET "https://example.com/webhooks"{ "data": [ { "id": "wh8Kd2mR5tQ9vN3xz", "url": "https://hooks.example.com/shortfast", "events": [ "video.render_completed", "video.published" ], "enabled": true, "createdAt": "2026-07-30T14:02:00.000Z", "updatedAt": "2026-08-04T09:11:00.000Z", "lastDeliveryAt": "2026-08-06T09:40:33.000Z", "failureCount": 0, "disabledReason": null } ], "paging": { "limit": 50, "offset": 0, "total": 1 }}List webhook deliveries GET
The delivery log across every endpoint in the workspace, newest first, each with the payload that was sent, the response status and the retry state. Rows are kept for 7 days. An unknown `event`, `status` or `webhookId` filter is ignored rather than rejected, so the log stays forgiving.
Replay a past delivery POST
Queues the same payload again as a **new** delivery with a new id, sent to the endpoint's current URL in case it was corrected since. A consumer that dedupes on the delivery id will therefore re-process it, which is the point. The reply is the queued row, so `status` is `pending` and `deliveredAt` is null; poll `GET /webhooks/deliveries` for the outcome.