Verify an email domain
Re-check the domain's DNS records and refresh its status. 404 only for a domain that is not this project's; 503 verification_unavailable when the check could not run (nothing changed, retry). A domain with no DKIM records (verifiable: false) cannot verify whatever DNS says: verify runs the check (it may recover the records), and when the domain still has none it answers 409 domain_setup_failed with the same setupError the domain carries.
Authorization
AuthorizationheaderrequiredBearer YOUR_API_KEY. Create a key in the dashboard.
Path parameters
emailDomainIdstringrequired
Responses
200Re-checked.
domainobjectrequired7 properties
idstringrequireddomainstringrequiredstatusstringrequiredOverall verification status.
dkimStatusstringrequireddnsRecordsobject[]DNS records to publish. Present when fetching a single domain or after adding one.
6 properties
typestringrequiredDNS record type.
namestringrequiredRecord host/name to create.
valuestringrequiredRecord value.
priorityintegerPriority (MX records only).
purposestringrequiredWhat the record is for.
One ofdkimspfdmarcmail_fromrequiredbooleanrequiredWhether the record is required to verify + send (DKIM) or recommended for deliverability.
verifiablebooleanPresent with
dnsRecords. False when the DKIM records could not be generated: such a domain cannot verify whatever DNS you publish, andsetupErrorsays what to do.setupErrorobjectPresent when
verifiableis false.recommendationis the same everywhere this domain is refused (POST .../verify,POST /v2/channels): remove the domain and add it again, which sets it up from scratch; contact support if the new one has nodkimrecord either. It never says to retry verify or to publish the other records.3 properties
codestringOne ofdkim_records_unavailablemessagestringrecommendationstring
401Unauthorized.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring
404`Email domain not found`: not a domain of this project.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring
409`domain_setup_failed`: the domain has no DKIM records, so it cannot verify (`details.setupError`, `details.recommendation`: remove it and add it again, or contact support).
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring
503`verification_unavailable`: the DNS check could not run. Nothing changed; retry.
codestringrequiredmessagestringrequireddetailsobjectMachine-readable context. Keys that mean the same thing everywhere: -
errors: present on every400 invalid_requestfor an invalid body or query parameter,[{path, message, ...}],pathnaming the field (["to"],["contacts", 2, "recipient"],["limit"]). -recommendation: one sentence saying what to do next. -dashboardUrl: the dashboard screen that fixes it. -connect: on409 no_channel, the channels this project can connect to reach the recipient, each{type, request, note, available, dashboardUrl?};requestis the exact call (POST /v2/channelswith its body, orPOST /v2/numbers), or null for a channel connected from the dashboard (WhatsApp, Instagram, Messenger).available: falsesays why innote(one-way SMS closed until business verification is approved). -address/from: the address the error is about, under the name the request used for it.1 properties
errorsobject[]3 properties
pathobject[]requiredmessagestringrequiredcodestring