Verify a Domain
curl --request POST \
--url https://cloudapi.mailercloud.com/v1/domains/{id}/verify \
--header 'Authorization: <api-key>'import requests
url = "https://cloudapi.mailercloud.com/v1/domains/{id}/verify"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://cloudapi.mailercloud.com/v1/domains/{id}/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cloudapi.mailercloud.com/v1/domains/{id}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://cloudapi.mailercloud.com/v1/domains/{id}/verify"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "zjAKXb",
"domain": "example.com",
"status": "not_verified",
"open_tracking": false,
"records": [
{
"type": "CNAME",
"host": "mc.example.com",
"value": "mc3035n.mlrcloud.com",
"status": "pending",
"purpose": "tracking",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "k1._domainkey.example.com",
"value": "dkim.mlrcloud.com",
"status": "pending",
"purpose": "dkim",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "k2._domainkey.example.com",
"value": "dkim2.mlrcloud.com",
"status": "optional",
"purpose": "dkim2",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "img3035n.example.com",
"value": "img3035n.mlrcloud.com",
"status": "pending",
"purpose": "image",
"message": "Add the record to your domain provider"
},
{
"type": "TXT",
"host": "_dmarc.example.com",
"value": "v=DMARC1; p=reject; sp=none; adkim=s; aspf=s; rua=mailto:dmarc@mlrcloud.com; ruf=mailto:dmarc@mlrcloud.com;",
"status": "pending",
"purpose": "dmarc",
"message": "Update the record in your domain provider"
}
],
"created_at": "2026-10-15 18:32:12"
}Verify a Domain
Check the domain’s DNS records now and update its status — the same as Verify in Account Settings → Domains.
The response is the same domain object as Get a Domain, with each record’s new status. Add the records at your DNS provider first; one Verify is enough once they are published.
Notes
- When the domain becomes
verified(or a verified domain fails), the account owner gets the same email as from the app. - DNS changes can take a while to be visible; if a record still shows
pending, verify again later.
POST
/
domains
/
{id}
/
verify
Verify a Domain
curl --request POST \
--url https://cloudapi.mailercloud.com/v1/domains/{id}/verify \
--header 'Authorization: <api-key>'import requests
url = "https://cloudapi.mailercloud.com/v1/domains/{id}/verify"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://cloudapi.mailercloud.com/v1/domains/{id}/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cloudapi.mailercloud.com/v1/domains/{id}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://cloudapi.mailercloud.com/v1/domains/{id}/verify"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "zjAKXb",
"domain": "example.com",
"status": "not_verified",
"open_tracking": false,
"records": [
{
"type": "CNAME",
"host": "mc.example.com",
"value": "mc3035n.mlrcloud.com",
"status": "pending",
"purpose": "tracking",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "k1._domainkey.example.com",
"value": "dkim.mlrcloud.com",
"status": "pending",
"purpose": "dkim",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "k2._domainkey.example.com",
"value": "dkim2.mlrcloud.com",
"status": "optional",
"purpose": "dkim2",
"message": "Add the record to your domain provider"
},
{
"type": "CNAME",
"host": "img3035n.example.com",
"value": "img3035n.mlrcloud.com",
"status": "pending",
"purpose": "image",
"message": "Add the record to your domain provider"
},
{
"type": "TXT",
"host": "_dmarc.example.com",
"value": "v=DMARC1; p=reject; sp=none; adkim=s; aspf=s; rua=mailto:dmarc@mlrcloud.com; ruf=mailto:dmarc@mlrcloud.com;",
"status": "pending",
"purpose": "dmarc",
"message": "Update the record in your domain provider"
}
],
"created_at": "2026-10-15 18:32:12"
}Authorizations
Your Mailercloud API key (plain text, no Bearer prefix). Create keys in Settings → API.
Path Parameters
Domain ID (from Add a Domain or List Domains)
Response
OK
Domain ID
Domain name
Domain status:
verified— the domain is authenticated and ready to send.not_verified— the DNS records are not all in place yet (or not checked yet).failed— at least one DNS record was found but is wrong (that record'sstatusisinvalid; see itserror_messagein Get a Domain).
Available options:
verified, not_verified, failed Open tracking for Email API / SMTP sends from this domain. No effect on marketing campaigns. Off for a newly added domain.
DNS records to publish at your DNS provider
Show child attributes
Show child attributes
When the domain was added, in your account timezone (YYYY-MM-DD HH:MM:SS)