Delivery rates by day, carrier, number, country, category, customer, or error code
Final outcomes (delivered/failed) aggregated over a UTC date range of up to 90 days.
Query Parameters
- group_byday, carrier, number, country, category, customer, error_code, tag
Default "day".
- start_datestring (date)
Default: 6 days before end_date
- end_datestring (date)
Default: today (UTC)
Details
Test keys report sandbox traffic, live keys live traffic. country is the destination (US or CA), category the message category (none when unset), customer your platform customer id (none when unset), error_code our failure code (failed messages only, most frequent first), and tag the tags you sent with each message (one row per tag, _untagged for messages without; a message with two tags counts in both rows, so rows can add up to more than the totals).
Those five are recorded from 2026-10-24. Scope: messages:read.
Responses
- 200Deliverability
Deliverability report
- 400Error
Invalid range or group_by
- 401Error
Missing, malformed, or revoked API key
- 402Error
Billable live calls only: the prepaid credit balance cannot cover the call (insufficient_credits); nothing was done or charged
- 429Error
Rate limit or quota exceeded
Response Fields
- objectdeliverability
- modetest, live
- start_datestring (date)
- end_datestring (date)
- group_byday, carrier, number, country, category, customer, error_code, tag
- totalsDeliverabilityRow
- dataarray of DeliverabilityRow
Errors
Every error has the same JSON shape, and request_id matches the X-Request-Id response header. Errors lists every code and what to do about it.
- 400
Invalid range or group_by
- 401
Missing, malformed, or revoked API key
- 402
Billable live calls only: the prepaid credit balance cannot cover the call (insufficient_credits); nothing was done or charged
- 429
Rate limit or quota exceeded