{ "type": "...", "data": {...} }.
How it works
Courier may add event types. Ignore any
type your handler does not recognize. Do not treat it as an error.
Payload shape
Formessage:updated, data is the same object the returns. It includes any metadata you sent (trace_id, tags, event, utm):
id is Courier’s message id, the same value the Messages API uses.
Limits & behavior
- No timestamp in the body. The send time is on the
courier-signatureheader, not insidedata. message:updatedfires on every status change. One message produces several events, so make your handler idempotent.- Every destination gets every type. Filter on
typeyourself. See .
FAQ
How many events will one send produce?
How many events will one send produce?
One per status change. A delivered and opened email produces several
message:updated events, so key your handler on the message id and the status.Can I get the metadata I sent with the message?
Can I get the metadata I sent with the message?
data carries the metadata from your send, including trace_id, tags, event, and utm.