Websites
Verify Sending Domain
Run a fresh SPF, DKIM, and MAIL FROM verification
POST
/
api
/
v1
/
websites
/
{domain}
/
verify
Verify Sending Domain
curl --request POST \
--url https://api.sequenzy.com/api/v1/websites/{domain}/verify \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sequenzy.com/api/v1/websites/{domain}/verify"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sequenzy.com/api/v1/websites/{domain}/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://api.sequenzy.com/api/v1/websites/{domain}/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: Bearer <token>"
],
]);
$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://api.sequenzy.com/api/v1/websites/{domain}/verify"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/websites/{domain}/verify")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/websites/{domain}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"verified": true,
"readyToSend": false,
"message": "Domain DNS records verified. Sending is not available yet: this domain is still being activated for sending. No further DNS changes are needed - sending unlocks automatically once activation finishes.",
"discarded": false,
"website": {
"id": "domain_abc123",
"domain": "mail.example.com",
"status": "verified",
"dnsVerified": true,
"readyToSend": false,
"readiness": {
"status": "activating",
"reason": "activation_pending"
},
"dkim": { "type": "byodkim", "status": "verified", "diagnostic": null },
"spf": { "status": "verified", "record": {}, "diagnostic": null },
"mailFrom": { "status": "verified", "domain": "send.mail.example.com", "mxRecord": {}, "diagnostic": null },
"appleEmailSources": ["send.mail.example.com", "example.com"]
}
}
{
"success": false,
"code": "SENDING_DOMAIN_NOT_CONFIGURED",
"error": "Sending domain not configured",
"title": "Sending domain not configured",
"description": "The domain \"mail.example.com\" has not been added as a sending domain for this company, so it cannot be checked or verified yet.",
"resolution": "Call add_sending_domain with domain \"mail.example.com\" first, publish every DNS record returned for that domain (including DMARC when present), then call verify_sending_domain after DNS changes propagate.",
"docsUrl": "https://docs.sequenzy.com/api-reference/websites/create",
"details": {
"domain": "mail.example.com"
}
}
Run the sending-domain DNS verification pipeline immediately and return DNS
status separately from sending readiness.
verified is the fresh DNS verdict; readyToSend additionally requires the
domain to finish activating for sending. message reports both: when DNS is
verified but activation is still running, it says so instead of claiming the
domain can send. This endpoint uses the same verification process as the
dashboard and updates the stored status.
Request
string
required
Configured sending domain.
curl -X POST "https://api.sequenzy.com/api/v1/websites/mail.example.com/verify" \
-H "Authorization: Bearer YOUR_API_KEY"
Responses
{
"success": true,
"verified": true,
"readyToSend": false,
"message": "Domain DNS records verified. Sending is not available yet: this domain is still being activated for sending. No further DNS changes are needed - sending unlocks automatically once activation finishes.",
"discarded": false,
"website": {
"id": "domain_abc123",
"domain": "mail.example.com",
"status": "verified",
"dnsVerified": true,
"readyToSend": false,
"readiness": {
"status": "activating",
"reason": "activation_pending"
},
"dkim": { "type": "byodkim", "status": "verified", "diagnostic": null },
"spf": { "status": "verified", "record": {}, "diagnostic": null },
"mailFrom": { "status": "verified", "domain": "send.mail.example.com", "mxRecord": {}, "diagnostic": null },
"appleEmailSources": ["send.mail.example.com", "example.com"]
}
}
{
"success": false,
"code": "SENDING_DOMAIN_NOT_CONFIGURED",
"error": "Sending domain not configured",
"title": "Sending domain not configured",
"description": "The domain \"mail.example.com\" has not been added as a sending domain for this company, so it cannot be checked or verified yet.",
"resolution": "Call add_sending_domain with domain \"mail.example.com\" first, publish every DNS record returned for that domain (including DMARC when present), then call verify_sending_domain after DNS changes propagate.",
"docsUrl": "https://docs.sequenzy.com/api-reference/websites/create",
"details": {
"domain": "mail.example.com"
}
}
⌘I
Verify Sending Domain
curl --request POST \
--url https://api.sequenzy.com/api/v1/websites/{domain}/verify \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sequenzy.com/api/v1/websites/{domain}/verify"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sequenzy.com/api/v1/websites/{domain}/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://api.sequenzy.com/api/v1/websites/{domain}/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: Bearer <token>"
],
]);
$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://api.sequenzy.com/api/v1/websites/{domain}/verify"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/websites/{domain}/verify")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/websites/{domain}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"verified": true,
"readyToSend": false,
"message": "Domain DNS records verified. Sending is not available yet: this domain is still being activated for sending. No further DNS changes are needed - sending unlocks automatically once activation finishes.",
"discarded": false,
"website": {
"id": "domain_abc123",
"domain": "mail.example.com",
"status": "verified",
"dnsVerified": true,
"readyToSend": false,
"readiness": {
"status": "activating",
"reason": "activation_pending"
},
"dkim": { "type": "byodkim", "status": "verified", "diagnostic": null },
"spf": { "status": "verified", "record": {}, "diagnostic": null },
"mailFrom": { "status": "verified", "domain": "send.mail.example.com", "mxRecord": {}, "diagnostic": null },
"appleEmailSources": ["send.mail.example.com", "example.com"]
}
}
{
"success": false,
"code": "SENDING_DOMAIN_NOT_CONFIGURED",
"error": "Sending domain not configured",
"title": "Sending domain not configured",
"description": "The domain \"mail.example.com\" has not been added as a sending domain for this company, so it cannot be checked or verified yet.",
"resolution": "Call add_sending_domain with domain \"mail.example.com\" first, publish every DNS record returned for that domain (including DMARC when present), then call verify_sending_domain after DNS changes propagate.",
"docsUrl": "https://docs.sequenzy.com/api-reference/websites/create",
"details": {
"domain": "mail.example.com"
}
}