Diagnose a domain's DNS

Diagnose a domain's DNS

GET/api/v1/email/domains/{id}/diagnose

GET /email/domains/{id}/diagnose
curl -X GET 'https://www.unitpost.com/api/v1/email/domains/dom_123/diagnose' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
Response · 200
{
  "object": "domain_diagnosis",
  "domain_id": "domain_123",
  "domain": "string",
  "status": "queued",
  "checked_at": "2026-01-01T00:00:00.000Z",
  "last_checked_at": "2026-01-01T00:00:00.000Z",
  "would_verify": false,
  "zone": "string",
  "nameservers": [
    {
      "host": "string",
      "ips": [
        "string"
      ]
    }
  ],
  "provider": {
    "configured": false,
    "identity_exists": false,
    "dkim_status": "string",
    "mail_from_status": "string",
    "error": "string"
  },
  "records": [
    {}
  ],
  "findings": [
    {
      "code": "string",
      "severity": "blocking",
      "title": "string",
      "detail": "string",
      "fix": "string"
    }
  ]
}

Explain why a domain is not verified, or what could break it. Every authoritative nameserver is asked about every expected record, the email provider's view of the identity is read, and findings list what is wrong, most serious first, each with the concrete fix. Read-only: it never changes the domain; Verify a domain does. Shares verify's per-workspace DNS rate limit. Requires the domains:read capability.

Parameters1 field
FieldTypeDescription
idrequiredstring · path—
Response · 200 fields12 fields
FieldTypeDescription
objectrequiredenumdomain_diagnosis—
domain_idrequiredstring—
domainrequiredstring—
statusrequiredstringThe domain's stored status, next to the live diagnosis.
checked_atrequiredstring—
last_checked_atstringThe last verify check, which this call does not change.
would_verifyrequiredbooleanWhether a verify run now would mark the domain verified.
zonestringThe zone whose nameservers were asked; null when none was found.
nameserversobject[]—
providerobjectThe email provider's view of the sending identity.
recordsrequiredobject[]Every expected record, with each nameserver's answer and a `verdict` (`ok`, `partial`, `wrong`, `missing`, `unknown`).
findingsrequiredobject[]What is wrong, most serious first, each with the concrete `fix`.
200401403404429502

Search docs and guides

Search the docs and product guides.