List attempts for a logical message

A ‘message’ is identified by the event id and spans all endpoints subscribed at the time the event was emitted. Returns every recorded attempt for this org’s endpoints.

Authentication: Supports API key and bearer token authentication.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

message_idstringRequiredformat: "uuid"

Headers

X-Organization-IDstring or nullOptional

Response

Successful Response
idstringformat: "^atmp_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
message_idstringformat: "^msg_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"

Stable per (event, endpoint) — same across retries.

endpoint_idstringformat: "^ep_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
attemptinteger
max_attemptsinteger
statusenum

Per-attempt delivery state.

SENDING is the transient state that prevents double-sends: the delivery task atomically flips PENDING → SENDING (compare-and-set on the row) before doing the outbound POST, so any other worker that picks up the same row from the sweeper backs off cleanly. Always a terminal status (SUCCEEDED/FAILED/DEAD) by the time the task returns.

next_attempt_atdatetime or null
response_status_codeinteger or null
response_body_excerptstring or null
error_messagestring or null
duration_msinteger or null
delivered_atdatetime or null
created_atdatetime
payloadmap from strings to any or null

The envelope as delivered (id, type, timestamp, data).

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
422
Unprocessable Entity Error
429
Too Many Requests Error