---
title: "Domain DNS Error"
method: POST
path: "DomainDNSError"
tags: ["Domain Events"]
---

# Domain DNS Error

`POST DomainDNSError` (webhook)

Triggered when there's a DNS configuration issue with your sending domain.

This event indicates that your domain's DNS records (SPF, DKIM, MX, or Return Path)
may be misconfigured or have become invalid. This can affect email deliverability.

**Payload structure:** This event has a different structure than message events:
- `server`: Information about the server that owns this domain
- `domain`: The domain name with DNS issues
- `uuid`: Unique identifier for the domain
- `dns_checked_at`: Timestamp when DNS was checked
- Individual status and error fields for SPF, DKIM, MX, and Return Path

**Action required:** Check your domain's DNS settings in the dashboard
and verify all records are correctly configured.

## Payload

- WebhookPayload — Webhook event payload sent to your configured endpoint. The payload structure varies by event type: - **Delivery events** (MessageSent, MessageDelayed, MessageDeliveryFailed, MessageHeld): Include `message`, `status`, `details`, `output`, `sent_with_ssl`, `timestamp`, `time` - **MessageBounced**: Includes `original_message` and `bounce` (both are message objects) - **Engagement events** (MessageLoaded, MessageLinkClicked): Include `message`, `ip_address`, `user_agent` - **DomainDNSError**: Includes `server`, `domain`, `uuid`, `dns_checked_at`, and DNS status fields - **SendLimit events**: Include `server`, `volume`, `limit` **Note:** The event type is determined by which webhook events you subscribe to, not by a field in the payload. Use the `status` field to identify delivery event types: `Sent`, `SoftFail`, `HardFail`, `Held`.
  - `message` WebhookMessageData — Email message information included in webhook payloads
    - `id` integer — Internal message ID
    - `token` string — Message token for identification
    - `direction` 'outgoing' | 'incoming' — Direction of the email
    - `message_id` string — RFC 5322 Message-ID header
    - `to` string, email — Recipient email address
    - `from` string, email — Sender email address
    - `subject` string — Email subject line
    - `timestamp` number, float — Unix timestamp when the message was created (with microsecond precision)
    - `spam_status` 'NotChecked' | 'Spam' | 'NotSpam' — Spam check status
    - `tag` string, nullable — Tag applied to the email (null if not set)
    - `metadata` object, nullable — Custom metadata attached when the email was sent. Use this to correlate webhook events with your internal systems. Returns null if no metadata was provided.
  - `original_message` WebhookMessageData — Email message information included in webhook payloads
    - `id` integer — Internal message ID
    - `token` string — Message token for identification
    - `direction` 'outgoing' | 'incoming' — Direction of the email
    - `message_id` string — RFC 5322 Message-ID header
    - `to` string, email — Recipient email address
    - `from` string, email — Sender email address
    - `subject` string — Email subject line
    - `timestamp` number, float — Unix timestamp when the message was created (with microsecond precision)
    - `spam_status` 'NotChecked' | 'Spam' | 'NotSpam' — Spam check status
    - `tag` string, nullable — Tag applied to the email (null if not set)
    - `metadata` object, nullable — Custom metadata attached when the email was sent. Use this to correlate webhook events with your internal systems. Returns null if no metadata was provided.
  - `bounce` WebhookMessageData — Email message information included in webhook payloads
    - `id` integer — Internal message ID
    - `token` string — Message token for identification
    - `direction` 'outgoing' | 'incoming' — Direction of the email
    - `message_id` string — RFC 5322 Message-ID header
    - `to` string, email — Recipient email address
    - `from` string, email — Sender email address
    - `subject` string — Email subject line
    - `timestamp` number, float — Unix timestamp when the message was created (with microsecond precision)
    - `spam_status` 'NotChecked' | 'Spam' | 'NotSpam' — Spam check status
    - `tag` string, nullable — Tag applied to the email (null if not set)
    - `metadata` object, nullable — Custom metadata attached when the email was sent. Use this to correlate webhook events with your internal systems. Returns null if no metadata was provided.
  - `status` 'Sent' | 'SoftFail' | 'HardFail' | 'Held' — Delivery status. Values correspond to event types: - `Sent` (MessageSent) - `SoftFail` (MessageDelayed) - `HardFail` (MessageDeliveryFailed) - `Held` (MessageHeld)
  - `details` string — Human-readable details about the delivery attempt
  - `output` string — Raw SMTP response from the receiving server (truncated to 512 chars)
  - `sent_with_ssl` boolean — Whether the message was delivered over a TLS connection
  - `time` number, float — Time taken to deliver in seconds
  - `timestamp` number, float — Unix timestamp of the delivery attempt (with microsecond precision)
  - `url` string — The URL that was clicked (for MessageLinkClicked events)
  - `token` string — Unique token for the clicked link (for MessageLinkClicked events)
  - `ip_address` string — IP address of the recipient (for MessageLoaded and MessageLinkClicked events)
  - `user_agent` string — User agent of the recipient's email client (for MessageLoaded and MessageLinkClicked events)
  - `server` WebhookServerData — Server information included in some webhook payloads
    - `uuid` string — Server UUID
    - `name` string — Server name
    - `permalink` string — Server permalink/slug
    - `organization` string — Organization permalink
  - `domain` string — Domain name with DNS issues (for DomainDNSError events)
  - `uuid` string — Unique identifier for the domain (for DomainDNSError events)
  - `dns_checked_at` number, float — Unix timestamp when DNS was checked (for DomainDNSError events)
  - `spf_status` 'OK' | 'Missing' | 'Invalid' — SPF record status (for DomainDNSError events)
  - `spf_error` string, nullable — SPF error message if status is not OK
  - `dkim_status` 'OK' | 'Missing' | 'Invalid' — DKIM record status (for DomainDNSError events)
  - `dkim_error` string, nullable — DKIM error message if status is not OK
  - `mx_status` 'OK' | 'Missing' | 'Invalid' — MX record status (for DomainDNSError events)
  - `mx_error` string, nullable — MX error message if status is not OK
  - `return_path_status` 'OK' | 'Missing' | 'Invalid' — Return path record status (for DomainDNSError events)
  - `return_path_error` string, nullable — Return path error message if status is not OK
  - `volume` integer — Current send volume in the last hour (for SendLimit events)
  - `limit` integer — Configured send limit per hour (for SendLimit events)

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.dev/arkhq-io/apis/ark-email-api.md) · [All operations](https://skmtc.dev/arkhq-io/apis/ark-email-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arkhq-io/ark-email-api/revisions/eafcdb767b21/schema)
