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.

GET/v1/deliverability

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