Run was cancelled.

Sent after POST /runs/{id}/cancel or a cancellation from the web UI. A cancelled run is never charged. Delivery is at-least-once. Each attempt has a 5 second timeout; a 5xx, 408, 425, 429, connection error, or timeout is retried with exponential backoff (up to 6 attempts over roughly 9 hours, honouring a longer Retry-After). Any other 4xx or a redirect is treated as a permanent rejection and is not retried. Because an event can therefore arrive more than once, deduplicate on the edgaze-delivery-id header, which is stable across retries. Endpoints are delivered in parallel and ordering is not guaranteed. An endpoint whose deliveries fail 15 times consecutively is paused until it is re-enabled in the developer console. Return 2xx as soon as you have persisted the payload, and do the real work asynchronously.

postWebhookrun.cancelled

Headers

edgaze-signaturestring required
Example:t=1800000000,v1=5257a869e7…

Signature of this delivery, formatted t=<unix seconds>,v1=<hex hmac>. Signed with HMAC-SHA256 over the exact string {t}.{raw request body}, using your endpoint secret. Compare in constant time against the raw bytes you received, before JSON parsing: re-serializing the body changes the signature. Reject any delivery whose t is more than 300 seconds from your clock, otherwise a captured payload can be replayed indefinitely.

edgaze-webhook-idstring uuid required

UUID of the endpoint that this delivery was sent to. Use it to select the right secret when one receiver serves several endpoints.

edgaze-delivery-idstring uuid

UUID of this delivery, repeated byte-for-byte on every retry of the same event. This is the deduplication key: record it once you have processed a delivery and return 2xx without reprocessing if it arrives again. Absent only on a manual test delivery, which is never retried.

edgaze-attemptinteger required
Example:1

1-indexed attempt number for this delivery. A value above 1 means an earlier attempt did not return 2xx.

edgaze-eventstring required
Example:run.completed

Event type carried by the payload, so a receiver can route the delivery before parsing the body.

Payload

idstring uuid required

Unique event id, safe to dedupe on.

type'run.completed' | 'run.failed' | 'run.cancelled' required
createdAtstring date-time required

Response

Acknowledge receipt. Any 2xx settles the delivery. A 5xx, 408, 425, 429, timeout, or connection error is retried with backoff; any other 4xx or a redirect permanently fails the delivery.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.