---
title: "Verify DNS records"
method: POST
path: "/company/domains/{id}/verify-dns"
tags: ["Email Domains"]
---

# Verify DNS records

`POST /company/domains/{id}/verify-dns`

Verify that all required DNS records (SPF, DKIM, DMARC) are properly configured. Call this after adding all DNS records from the finalize step. Once verified, the domain is ready for sending emails.

## Path parameters

- `id` string, uuid, required

## Response `200`

DNS verification result

- DomainVerifyDnsResponse — DNS verification result
  - `verified` boolean, required — Whether all DNS records are verified
  - `message` string, required
  - `domain` Domain, required — Email domain configuration for sending signing request emails
    - `id` string, uuid, required — Unique identifier for the domain
    - `domain` string, required — The domain name (e.g., 'example.com')
    - `verification_status` 0 | 1 | 2, required — Domain ownership verification status: 0=pending, 1=ownership verified (TXT record confirmed), 2=finalized (registered with email provider)
    - `domain_status` 0 | 1, required — Email sending status: 0=DNS records pending verification, 1=fully verified and ready to send
    - `is_primary` boolean — Whether this is the primary domain for sending emails from this workspace
    - `verification_token` string — Token to add as TXT record for domain ownership verification. Only returned when verification_status=0.
    - `resend_domain_id` string, nullable — External email provider domain ID (internal use)
    - `dns_records` DomainDnsRecord[], nullable — Required DNS records for email sending. Only returned after domain finalization (verification_status=2).
      - `type` 'TXT' | 'CNAME' | 'MX' — DNS record type
      - `name` string — DNS record name/host (e.g., 'resend._domainkey' or '@')
      - `value` string — DNS record value
      - `ttl` string — Time to live (e.g., 'Auto' or seconds)
      - `priority` integer, nullable — Priority for MX records
      - `status` 'pending' | 'verified' | 'failed' — Verification status of this specific record
    - `date_created` string, date-time — Domain creation timestamp
    - `date_changed` string, date-time — Domain last update timestamp
  - `dns_records` DomainDnsRecord[] — Status of each DNS record
    - `type` 'TXT' | 'CNAME' | 'MX' — DNS record type
    - `name` string — DNS record name/host (e.g., 'resend._domainkey' or '@')
    - `value` string — DNS record value
    - `ttl` string — Time to live (e.g., 'Auto' or seconds)
    - `priority` integer, nullable — Priority for MX records
    - `status` 'pending' | 'verified' | 'failed' — Verification status of this specific record

## Other responses

- `400` — Domain not finalized
- `401` — Unauthorized - Invalid or missing API key
- `404` — Not Found - Resource does not exist
- `429` — Too Many Requests - Rate limit exceeded

---

[API](https://skmtc.dev/firma/apis/firma-partner-api.md) · [All operations](https://skmtc.dev/firma/apis/firma-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/firma/apis/firma-partner-api/revisions/f179958c3bee?raw)
