Reliability

  • Automatic carrier retries: temporary carrier failures no longer fail a send. POST /v1/messages answers 202 with the message queued and we retry it after 30s, 2m and 10m. New message fields: attempts, next_attempt_at. A message is never submitted twice.
  • Missing delivery reports: a sent message with no delivery report after 72 hours is marked receipt_status: "missing". Its status stays sent.
  • Idempotency-Key on POST /v1/verify and POST /v1/numbers. Failed requests now release their key.
  • Webhook delivery log: status code, latency, attempt and the first 2 KB of your endpoint's response for every attempt, in the console and at GET /v1/webhooks/deliveries. GET /v1/webhooks lists endpoints.
  • Replay to one endpoint: POST /v1/events/{id}/replay, and per-row Replay in the console.
  • Undelivered events: events whose retries ran out are kept for 30 days with one-click replay, instead of being dropped.
  • Status page (and /status.json) for the API, sending, inbound and webhooks.

All changes