---
title: "Check email DNS status"
method: GET
path: "/api/domains/{domain}/email/status"
tags: ["Email"]
---

# Check email DNS status

`GET /api/domains/{domain}/email/status`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/domains/{domain}/email/status`
- Auth: HTTP bearer

Check email DNS verification status for a domain. Returns whether the domain is verified and ready, DNS record details, and mailbox count.

## Path parameters

- `domain` string, required

## Response `200`

Email status

- object
  - `domain` string
  - `enabled` boolean
  - `verified` boolean: True only when both receiving and outbound sending are verified
  - `receiving_verified` boolean: True when the domain's MX points at the platform's receiver, so mail for its addresses is accepted.
  - `sending_configured` boolean
  - `sending_verified` boolean
  - `records` DnsRecord[]
    - `type` 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'SRV' | 'CAA' | 'TLSA', required: DNS record type. TLSA publishes a DANE record; its value is the rdata 'usage selector matching-type hex-data'.
    - `name` string, required: Record name (@ for root, or subdomain, e.g. _443._tcp for TLSA)
    - `value` string, required: Record value (IP address, hostname, or TLSA rdata like '3 1 1 abc123...')
    - `ttl` integer, required: Time to live in seconds
    - `priority` integer: Priority value (required for MX records)
    - `required` boolean: False when the zone Domani manages for the domain cannot hold the record (a TXT longer than the registrar accepts); such a record is shown but not needed for mail to work. Absent on plain zone records.
  - `mailbox_count` integer
  - `dns_managed` boolean: True when Domani writes the domain's zone itself: pending records are published and repaired by an hourly audit, nothing to add by hand. False for an external zone, where pending records must be added at the DNS provider.
  - `unreachable_addresses` string[]: Addresses on the domain that its receiving MX refuses (api mailboxes on a hosted domain not yet registered on the mail host). Empty when every address can receive; registration is retried automatically.
  - `provider_status` string
  - `mailbox_plan_key` string: The workspace's plan key that governs custom-domain mailboxes here (the workspace's own subscription, not necessarily the signed-in user's personal plan).
  - `mailbox_limit` integer, nullable: Custom-domain mailboxes the plan allows across the workspace. null is unlimited.
  - `mailbox_limit_reached` boolean: True once the workspace is at its plan's mailbox limit: another mailbox on this domain needs an upgrade first.
  - `mailbox_upgrade_plan` object, nullable: The cheapest plan that would give room for another mailbox. null when already unlimited.
    - `key` string
    - `name` string
    - `priceUsd` number
    - `mailboxes` integer, nullable
  - `hint` string

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
