POST to your endpoint’s URL with a JSON body (the “envelope”) and a set of headers.
Envelope
A delivery carries an array of events. Most deliveries carry exactly one; when many events of the same type happen at once (a bulk action in the app), Kit batches them into deliveries of up to 100 events each, so your handler should always iterateevents.
Each event in
events:
A delivery never mixes event types and never carries more than 100 events. Kit also splits a batch once it would pass roughly 512 KB of event payload, so most deliveries stay well under that; a single event larger than 512 KB is still delivered on its own rather than dropped.
Headers
HTTP behavior
- Deliveries are always
POSTrequests. - Respond with any
2xxstatus to acknowledge. Kit reads only the status code, not the response body. - Any non-
2xxresponse, a connection failure, or a timeout marks the delivery failed and schedules a retry. A retry re-POSTs the entireeventsarray, so process each event idempotently by itsid. - Sign or validate against the raw request body exactly as received — don’t re-serialize the JSON first, or the signature won’t match.