Guides › Verify a sending domain

Guide

Verify a sending domain

Add a sending domain, publish the returned DNS requirements, then ask the API to verify the domain readiness state.

1. Create the domain

POST /v1/domains accepts one required field: domain_name. The API normalizes valid domain names and returns verification records.

curl -X POST "https://api.ctct.dev/v1/domains" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"domain_name":"<DOMAIN>"}'

2. Publish DNS records

The response includes verification_records. Publish each required record with your DNS provider. Records include the check kind, record type, host, expected value, status, and remediation hint when one is available.

{
  "domain_id": "dom_...",
  "domain_name": "<DOMAIN>",
  "status": "pending",
  "verification_records": [
    {
      "check_kind": "dkim",
      "record_type": "CNAME",
      "host": "ctct1._domainkey.<DOMAIN>",
      "expected_value": "100._domainkey.dkim1.ccsend.com",
      "status": "pending",
      "required": true
    },
    {
      "check_kind": "dkim",
      "record_type": "CNAME",
      "host": "ctct2._domainkey.<DOMAIN>",
      "expected_value": "200._domainkey.dkim2.ccsend.com",
      "status": "pending",
      "required": true
    }
  ]
}

3. Refresh verification

After DNS has propagated, call POST /v1/domains/{domain_id}:verify. The request returns 202 Accepted with the latest domain status and DNS observations.

curl -X POST "https://api.ctct.dev/v1/domains/<DOMAIN_ID>:verify" \
  -H "Authorization: Bearer <API_KEY>"

Domain status fields

FieldMeaning
statusPublic readiness state such as pending, checking, verified, or failed.
dkim_statusDKIM DNS requirement status.
return_path_statusReturn-path DNS requirement status.
dmarc_statusDMARC DNS requirement status.
last_failure_messageHuman-readable failure detail when verification cannot complete.
DNS note: the API returns host and expected value data. TTL is managed by your DNS provider and is not currently returned by the public domain model.