Emails

Get delivery attempts

Changed on

Get the complete delivery history for an email, including SMTP response codes, timestamps, and current retry state.

Response Fields

Status

The current status of the email:

  • pending - Awaiting first delivery attempt
  • sent - Successfully delivered to recipient server
  • softfail - Temporary failure, automatic retry scheduled
  • hardfail - Permanent failure, will not retry
  • held - Held for manual review
  • bounced - Bounced by recipient server

Retry State

When the email is in the delivery queue (pending or softfail status), retryState provides information about the retry schedule:

  • attempt - Current attempt number (0 = first attempt)
  • maxAttempts - Maximum attempts before hard-fail (typically 18)
  • attemptsRemaining - Attempts left before hard-fail
  • nextRetryAt - When the next retry is scheduled (Unix timestamp)
  • processing - Whether the email is currently being processed
  • manual - Whether this was triggered by a manual retry

When the email has finished processing (sent, hardfail, held, bounced), retryState is null.

Can Retry Manually

Indicates whether you can call POST /emails/{emailId}/retry to manually retry the email. This is true when the raw message content is still available (not expired due to retention policy).

get/emails/{emailId}/deliveries

Request

Path parameters

emailIdstring required

Email identifier (the token returned when sending an email).

Response

Delivery history with retry state

successtrue required

Example response

{
  "success": true,
  "data": {
    "id": "aBc123XyZ",
    "status": "softfail",
    "retryState": {
      "attempt": 3,
      "maxAttempts": 18,
      "attemptsRemaining": 15,
      "nextRetryAt": 1705903200,
      "nextRetryAtIso": "2024-01-22T11:00:00Z",
      "processing": false,
      "manual": false
    },
    "canRetryManually": true,
    "deliveries": [
      {
        "id": "789",
        "status": "softfail",
        "details": "421 temporarily unavailable: Delivery to user@example.com failed at 1.2.3.4:25 (mx.example.com)",
        "output": "421 4.7.0 Try again later",
        "code": 421,
        "sentWithSsl": true,
        "timestamp": 1705900000,
        "timestampIso": "2024-01-22T10:00:00Z",
        "classification": "temporarily_unavailable",
        "classificationCode": 42,
        "smtpEnhancedCode": "4.7.0",
        "remoteHost": "mx.example.com"
      }
    ]
  },
  "meta": {
    "requestId": "req_V1StGXR8_Z5jdHi6"
  }
}

Changes

    • warning

      added the new infrastructure_error enum value to the / response property for the response status

    • warning

      added the new infrastructure_error enum value to the / response property for the response status

    • warning

      added the new infrastructure_error enum value to the / response property for the response status

    • info

      removed the postal_error enum value from the / response property for the response status

    • info

      removed the postal_error enum value from the / response property for the response status

    • info

      removed the postal_error enum value from the / response property for the response status

    • warning

      added the new already_exists enum value to the / response property for the response status

    • warning

      added the new already_exists enum value to the / response property for the response status

    • warning

      added the new already_exists enum value to the / response property for the response status

    • warning

      added the new attachment_too_large enum value to the / response property for the response status

    • warning

      added the new attachment_too_large enum value to the / response property for the response status

    • warning

      added the new attachment_too_large enum value to the / response property for the response status

    • warning

      added the new authentication_required enum value to the / response property for the response status

    • warning

      added the new authentication_required enum value to the / response property for the response status

    • warning

      added the new authentication_required enum value to the / response property for the response status

    • warning

      added the new billing_error enum value to the / response property for the response status

    • warning

      added the new billing_error enum value to the / response property for the response status

    • warning

      added the new billing_error enum value to the / response property for the response status

    • warning

      added the new billing_not_configured enum value to the / response property for the response status

    • warning

      added the new billing_not_configured enum value to the / response property for the response status

    • warning

      added the new billing_not_configured enum value to the / response property for the response status

    • warning

      added the new credential_not_found enum value to the / response property for the response status

    • warning

      added the new credential_not_found enum value to the / response property for the response status

    • warning

      added the new credential_not_found enum value to the / response property for the response status

    • warning

      added the new credential_on_hold enum value to the / response property for the response status

    • warning

      added the new credential_on_hold enum value to the / response property for the response status

    • warning

      added the new credential_on_hold enum value to the / response property for the response status

    • warning

      added the new credential_revoked enum value to the / response property for the response status

    • warning

      added the new credential_revoked enum value to the / response property for the response status

    • warning

      added the new credential_revoked enum value to the / response property for the response status

    • warning

      added the new delivery_not_found enum value to the / response property for the response status

    • warning

      added the new delivery_not_found enum value to the / response property for the response status

    • warning

      added the new delivery_not_found enum value to the / response property for the response status

    • warning

      added the new domain_already_exists enum value to the / response property for the response status

    • warning

      added the new domain_already_exists enum value to the / response property for the response status

    • warning

      added the new domain_already_exists enum value to the / response property for the response status

    • warning

      added the new domain_not_found enum value to the / response property for the response status

    • warning

      added the new domain_not_found enum value to the / response property for the response status

    • warning

      added the new domain_not_found enum value to the / response property for the response status

    • warning

      added the new domain_not_verified enum value to the / response property for the response status

    • warning

      added the new domain_not_verified enum value to the / response property for the response status

    • warning

      added the new domain_not_verified enum value to the / response property for the response status

    • warning

      added the new email_not_found enum value to the / response property for the response status

    • warning

      added the new email_not_found enum value to the / response property for the response status

    • warning

      added the new email_not_found enum value to the / response property for the response status

    • warning

      added the new external_id_already_exists enum value to the / response property for the response status

    • warning

      added the new external_id_already_exists enum value to the / response property for the response status

    • warning

      added the new external_id_already_exists enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new idempotency_conflict enum value to the / response property for the response status

    • warning

      added the new idempotency_conflict enum value to the / response property for the response status

    • warning

      added the new idempotency_conflict enum value to the / response property for the response status

    • warning

      added the new insufficient_balance enum value to the / response property for the response status

    • warning

      added the new insufficient_balance enum value to the / response property for the response status

    • warning

      added the new insufficient_balance enum value to the / response property for the response status

    • warning

      added the new internal_error enum value to the / response property for the response status

    • warning

      added the new internal_error enum value to the / response property for the response status

    • warning

      added the new internal_error enum value to the / response property for the response status

    • warning

      added the new invalid_api_key enum value to the / response property for the response status

    • warning

      added the new invalid_api_key enum value to the / response property for the response status

    • warning

      added the new invalid_api_key enum value to the / response property for the response status

    • warning

      added the new invalid_email_address enum value to the / response property for the response status

    • warning

      added the new invalid_email_address enum value to the / response property for the response status

    • warning

      added the new invalid_email_address enum value to the / response property for the response status

    • warning

      added the new invalid_raw_message enum value to the / response property for the response status

    • warning

      added the new invalid_raw_message enum value to the / response property for the response status

    • warning

      added the new invalid_raw_message enum value to the / response property for the response status

    • warning

      added the new invalid_request enum value to the / response property for the response status

    • warning

      added the new invalid_request enum value to the / response property for the response status

    • warning

      added the new invalid_request enum value to the / response property for the response status

    • warning

      added the new ip_not_allowed enum value to the / response property for the response status

    • warning

      added the new ip_not_allowed enum value to the / response property for the response status

    • warning

      added the new ip_not_allowed enum value to the / response property for the response status

    • warning

      added the new message_too_large enum value to the / response property for the response status

    • warning

      added the new message_too_large enum value to the / response property for the response status

    • warning

      added the new message_too_large enum value to the / response property for the response status

    • warning

      added the new metadata_key_invalid enum value to the / response property for the response status

    • warning

      added the new metadata_key_invalid enum value to the / response property for the response status

    • warning

      added the new metadata_key_invalid enum value to the / response property for the response status

    • warning

      added the new metadata_too_large enum value to the / response property for the response status

    • warning

      added the new metadata_too_large enum value to the / response property for the response status

    • warning

      added the new metadata_too_large enum value to the / response property for the response status

    • warning

      added the new metadata_value_invalid enum value to the / response property for the response status

    • warning

      added the new metadata_value_invalid enum value to the / response property for the response status

    • warning

      added the new metadata_value_invalid enum value to the / response property for the response status

    • warning

      added the new missing_field enum value to the / response property for the response status

    • warning

      added the new missing_field enum value to the / response property for the response status

    • warning

      added the new missing_field enum value to the / response property for the response status

    • warning

      added the new missing_scope enum value to the / response property for the response status

    • warning

      added the new missing_scope enum value to the / response property for the response status

    • warning

      added the new missing_scope enum value to the / response property for the response status

    • warning

      added the new not_found enum value to the / response property for the response status

    • warning

      added the new not_found enum value to the / response property for the response status

    • warning

      added the new not_found enum value to the / response property for the response status

    • warning

      added the new payload_too_large enum value to the / response property for the response status

    • warning

      added the new payload_too_large enum value to the / response property for the response status

    • warning

      added the new payload_too_large enum value to the / response property for the response status

    • warning

      added the new payment_required enum value to the / response property for the response status

    • warning

      added the new payment_required enum value to the / response property for the response status

    • warning

      added the new payment_required enum value to the / response property for the response status

    • warning

      added the new postal_error enum value to the / response property for the response status

    • warning

      added the new postal_error enum value to the / response property for the response status

    • warning

      added the new postal_error enum value to the / response property for the response status

    • warning

      added the new rate_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new rate_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new rate_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new send_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new send_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new send_limit_exceeded enum value to the / response property for the response status

    • warning

      added the new server_suspended enum value to the / response property for the response status

    • warning

      added the new server_suspended enum value to the / response property for the response status

    • warning

      added the new server_suspended enum value to the / response property for the response status

    • warning

      added the new service_unavailable enum value to the / response property for the response status

    • warning

      added the new service_unavailable enum value to the / response property for the response status

    • warning

      added the new service_unavailable enum value to the / response property for the response status

    • warning

      added the new suppressed_recipient enum value to the / response property for the response status

    • warning

      added the new suppressed_recipient enum value to the / response property for the response status

    • warning

      added the new suppressed_recipient enum value to the / response property for the response status

    • warning

      added the new suppression_not_found enum value to the / response property for the response status

    • warning

      added the new suppression_not_found enum value to the / response property for the response status

    • warning

      added the new suppression_not_found enum value to the / response property for the response status

    • warning

      added the new tenant_not_found enum value to the / response property for the response status

    • warning

      added the new tenant_not_found enum value to the / response property for the response status

    • warning

      added the new tenant_not_found enum value to the / response property for the response status

    • warning

      added the new too_many_attachments enum value to the / response property for the response status

    • warning

      added the new too_many_attachments enum value to the / response property for the response status

    • warning

      added the new too_many_attachments enum value to the / response property for the response status

    • warning

      added the new too_many_recipients enum value to the / response property for the response status

    • warning

      added the new too_many_recipients enum value to the / response property for the response status

    • warning

      added the new too_many_recipients enum value to the / response property for the response status

    • warning

      added the new unauthenticated_from_address enum value to the / response property for the response status

    • warning

      added the new unauthenticated_from_address enum value to the / response property for the response status

    • warning

      added the new unauthenticated_from_address enum value to the / response property for the response status

    • warning

      added the new unprocessable_entity enum value to the / response property for the response status

    • warning

      added the new unprocessable_entity enum value to the / response property for the response status

    • warning

      added the new unprocessable_entity enum value to the / response property for the response status

    • warning

      added the new validation_error enum value to the / response property for the response status

    • warning

      added the new validation_error enum value to the / response property for the response status

    • warning

      added the new validation_error enum value to the / response property for the response status

    • warning

      added the new webhook_not_found enum value to the / response property for the response status

    • warning

      added the new webhook_not_found enum value to the / response property for the response status

    • warning

      added the new webhook_not_found enum value to the / response property for the response status