Skip to content

Diagnose inbound DNS for a domain

Runs live DNS checks for inbound email readiness (MX correctness, apex CNAME collision, and common DNS blocklists for the Novu mail host). Returns structured issues with plain-language fixes.

POST
/v1/domains/{domain}/diagnose

Authorization

Authorization<token>

API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".

In: header

Path Parameters

domainRequiredstring

Header Parameters

idempotency-keystring

A header for idempotency purposes

Response Body

OK

okRequiredboolean

True when there are no error-severity issues

runAtRequiredstring

ISO timestamp when the diagnostic run finished

checksRequiredarray<object>
issuesRequiredarray<object>
export interface Response {
  /**
   * True when there are no error-severity issues
   */
  ok: boolean;
  /**
   * ISO timestamp when the diagnostic run finished
   */
  runAt: string;
  checks: DomainDiagnosticCheckDto[];
  issues: DomainDiagnosticIssueDto[];
}
export interface DomainDiagnosticCheckDto {
  code: "mx_missing" | "mx_wrong_target" | "mx_low_priority" | "apex_cname_collision" | "dnsbl_listed";
  status: "pass" | "fail" | "skipped";
  /**
   * Round-trip time for this check in milliseconds
   */
  latencyMs: number;
}
export interface DomainDiagnosticIssueDto {
  code: "mx_missing" | "mx_wrong_target" | "mx_low_priority" | "apex_cname_collision" | "dnsbl_listed";
  severity: "warn" | "error";
  message: string;
  /**
   * Plain-language remediation guidance
   */
  fix: string;
}
 
curl -X POST "https://api.novu.co/v1/domains/string/diagnose" \
  -H "idempotency-key: string" \
  -H "Authorization: <token>"
{
  "ok": true,
  "runAt": "string",
  "checks": [
    {
      "code": "mx_missing",
      "status": "pass",
      "latencyMs": 0
    }
  ],
  "issues": [
    {
      "code": "mx_missing",
      "severity": "warn",
      "message": "string",
      "fix": "string"
    }
  ]
}

On this page

No Headings
Edit this page on GitHub