Email Events

Email Delayed

Triggered when an email delivery is temporarily delayed (soft fail).

This typically occurs due to temporary issues like:

  • Recipient server temporarily unavailable
  • Rate limiting by recipient server
  • Greylisting

Ark will automatically retry delivery. You'll receive a MessageSent or MessageDeliveryFailed event when the final outcome is determined.

postWebhookMessageDelayed

Payload

event'MessageSent' | 'MessageDelayed' | 'MessageDeliveryFailed' | 'MessageBounced' | 'MessageHeld' | 'MessageLoaded' | 'MessageLinkClicked' | 'DomainDNSError' | 'SendLimitApproaching' | 'SendLimitExceeded' required

The type of event that occurred

timestampnumber float required

Unix timestamp when the event occurred (with microsecond precision)

uuidstring

Unique identifier for this webhook delivery (use for idempotency)

Example payload

{
  "event": "MessageSent",
  "timestamp": 1704672000.123456,
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "payload": {
    "message": {
      "id": 12345,
      "token": "abc123XYZ789",
      "direction": "outgoing",
      "message_id": "a1b2c3d4-e5f6-7890@rp.arkhq.io",
      "to": "user@example.com",
      "from": "hello@yourdomain.com",
      "subject": "Welcome to our service",
      "timestamp": 1704672000.123456,
      "spam_status": "NotChecked",
      "tag": "onboarding",
      "metadata": {
        "user_id": "usr_123456",
        "campaign_id": "camp_789012"
      }
    },
    "original_message": {
      "id": 12345,
      "token": "abc123XYZ789",
      "direction": "outgoing",
      "message_id": "a1b2c3d4-e5f6-7890@rp.arkhq.io",
      "to": "user@example.com",
      "from": "hello@yourdomain.com",
      "subject": "Welcome to our service",
      "timestamp": 1704672000.123456,
      "spam_status": "NotChecked",
      "tag": "onboarding",
      "metadata": {
        "user_id": "usr_123456",
        "campaign_id": "camp_789012"
      }
    },
    "bounce": {
      "id": 12345,
      "token": "abc123XYZ789",
      "direction": "outgoing",
      "message_id": "a1b2c3d4-e5f6-7890@rp.arkhq.io",
      "to": "user@example.com",
      "from": "hello@yourdomain.com",
      "subject": "Welcome to our service",
      "timestamp": 1704672000.123456,
      "spam_status": "NotChecked",
      "tag": "onboarding",
      "metadata": {
        "user_id": "usr_123456",
        "campaign_id": "camp_789012"
      }
    },
    "status": "Sent",
    "details": "Message for user@example.com accepted by 1.2.3.4:25 (mx.example.com)",
    "output": "250 2.0.0 OK",
    "sent_with_ssl": true,
    "time": 1.51,
    "timestamp": 1704672000.123456,
    "url": "https://yourdomain.com/welcome",
    "token": "abc123def456",
    "ip_address": "203.0.113.45",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
    "server": {
      "uuid": "a1b2c3d4-e5f6-7890",
      "name": "Production",
      "permalink": "production",
      "organization": "acme-corp"
    },
    "domain": "yourdomain.com",
    "uuid": "a1b2c3d4-e5f6-7890",
    "dns_checked_at": 1704672000.123456,
    "spf_status": "Missing",
    "spf_error": "No SPF record exists for this domain",
    "dkim_status": "OK",
    "mx_status": "OK",
    "return_path_status": "Missing",
    "return_path_error": "There is no return path record at rp.yourdomain.com",
    "volume": 950,
    "limit": 1000
  }
}

Response

Webhook received successfully

Changes