List send refusals
List the sends a quota or review ceiling refused at accept time, newest first. Every 429 on a send route leaves a row here — the reason, how many messages and how many recipients the refused request carried — so you can reconcile a gap in your own send log without replaying the request. Refusals carry counts and a reason only; there is no message content to return, because a refused send is never persisted.
Scoped to the calling key's test/live environment. Not paginated: the response is the most recent limit rows. Requires the send or read:emails scope.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Rows to return, 1–200.
x >= 1, x <= 20050Response
The most recent refusals.
dataarray<object>requireddata.object"send_refusal"required"send_refusal"data.idstringrequiredThe refusal id (a bare ULID, no prefix).
data.reason"daily_quota_exceeded" | "account_under_review" | "monthly_quota_exceeded" | "spend_cap_exceeded" | "marketing_quota_exceeded"requiredThe error.type the request was refused with. rate_limit_exceeded never appears here: the per-second limiter refuses before the accept gates run, so it leaves no row.
"daily_quota_exceeded" | "account_under_review" | "monthly_quota_exceeded" | "spend_cap_exceeded" | "marketing_quota_exceeded"data.messagesintegerrequiredEmail objects in the refused request — 1 for a single send, N for a batch.
data.recipientsintegerrequiredRecipients across to/cc/bcc of every object in the refused request. This is the figure the quota was measured against.
data.created_atstring<date-time>required