List events
Lists every event this platform raised for the caller's organization, newest first,
with the payload a receiver reads under data. An event appears here whether or not a
webhook subscribed to it, so the feed is readable before the first webhook exists.
Requires the org:connect:read permission. Narrow it with type and a
created_from/created_until window. The list deliveries operation says what was
sent; this one says what happened.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Query Parameters
Number of events per page. Defaults to 20; the maximum is 100.
0 < value20Cursor for the page after this one, from the response's next link.
Cursor for the page before this one, from the response's prev link.
Only events of this event_type.
Only events raised at or after this ISO 8601 timestamp.
date-timeOnly events raised at or before this ISO 8601 timestamp.
date-timeResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/webhooks/events?size=20&after=eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9&before=eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9&type=approval.outcome&created_from=2026-03-01T00%3A00%3A00Z&created_until=2026-03-31T23%3A59%3A59Z"{ "data": [ { "id": "0198c1c2-4f1e-7a3b-9c2d-6f0a1b2c3d4e", "event_type": "approval.outcome", "category": "APPROVAL", "event_key": "approval.outcome:0198c1c2-4f1e-7a3b-9c2d-6f0a1b2c3d4e", "payload_version": 1, "data": {}, "created_at": "2026-09-01T10:15:30Z" } ], "links": { "next": "/v1/payees?after=eyJpZCI6MX0", "prev": "/v1/payees?before=eyJpZCI6MX0" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Retry a delivery POST
Sends the recorded delivery again, with the bytes it was created with, so the receiver sees the same idempotency key as before and can tell that this is the same action. The signature is new: it covers a new timestamp, which is what stops an old request from being replayed. Answers with the delivery as it now stands; the attempt itself runs in the background and the retry policy applies to it as it does to a first attempt. A delivery that was accepted can also be sent again, for a receiver that lost it; the delivery id does not change, so the receiver can tell the copy from a new action. One retry at a time — asking again while a retry is still running does not send a second copy. One manual retry per delivery per minute. Requires the `org:connect:write` permission.
Get an event GET
Reads one event raised for the caller's organization, with its payload. Requires the `org:connect:read` permission. Returns 404 when the caller's organization has no event with this id.