Each event triggers one delivery row per subscribed endpoint. The delivery row tracks attempts, the most recent HTTP status, and the next scheduled retry. You can inspect deliveries from the dashboard or via the API.Documentation Index
Fetch the complete documentation index at: https://docs.kayle.id/llms.txt
Use this file to discover all available pages before exploring further.
Statuses
| Status | Meaning |
|---|---|
pending | Queued. The next scheduled attempt is in next_attempt_at. |
delivering | An attempt is in progress. |
succeeded | An attempt returned 2xx. Terminal. |
failed | All attempts exhausted without a 2xx. Terminal until you replay. |
Retry schedule
A failed delivery is retried up to two times after the initial attempt — three total. Backoff is exponential with a 60-second base:| Attempt | Delay before this attempt |
|---|---|
| 1 | 0 (immediate) |
| 2 | 60 seconds |
| 3 | 120 seconds |
2xx response is marked failed and stops retrying. The whole envelope from first attempt to terminal failed is therefore around three minutes in the worst case.
A delivery is treated as failed if:
- The HTTP request fails to connect or times out.
- The endpoint returns a non-
2xxstatus. - The endpoint returns no response within the request timeout.
2xx first and process asynchronously if your handler is heavy.
Inspecting deliveries
status, endpoint_id, or event_id. The response is the standard cursor-paginated list:
Manual retry
Replay a single failed delivery:pending and runs through up to three fresh attempts. The signature is regenerated, so don’t expect the captured headers from the previous attempts to match.
Replaying an event
If multiple deliveries (one per subscribed endpoint) failed because of a downstream outage, replay the whole event rather than each delivery:Listing events
/v1/events is an alias for the same resource, kept for older integrations. Use the /v1/webhooks/events path in new code.