To send emails through Send.dev, you need to verify ownership of your sending domain. This ensures deliverability and protects against spoofing.

Why Domain Verification Matters

  1. Deliverability - Emails from verified domains have higher inbox placement
  2. Authentication - DKIM signing proves emails are legitimate
  3. Reputation - Your domain builds its own sender reputation
  4. Branding - Send from your own domain (e.g., hello@mail.yourdomain.com)

Use a Subdomain

We strongly recommend using a subdomain like mail.yourdomain.com or send.yourdomain.com instead of your root domain. This isolates your email sending reputation from your main domain.

Add a Domain

POST/v1/domainsRequires API Key

Add a new sending domain

Via Dashboard

  1. Navigate to Domains in your dashboard
  2. Click Add Domain
  3. Enter your subdomain (e.g., mail.yourdomain.com)
  4. Click Add Domain

Via API

curl -X POST https://api.send.dev/v1/domains \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
  "domain": "mail.yourdomain.com"
}'
201Domain added
{
"id": "dom_01HXYZ123456789",
"domain": "mail.yourdomain.com",
"status": "pending",
"dns_records": {
  "dkim": [
    {
      "type": "CNAME",
      "name": "send1._domainkey.mail.yourdomain.com",
      "value": "send1.dkim.send.dev",
      "status": "pending"
    },
    {
      "type": "CNAME",
      "name": "send2._domainkey.mail.yourdomain.com",
      "value": "send2.dkim.send.dev",
      "status": "pending"
    },
    {
      "type": "CNAME",
      "name": "send3._domainkey.mail.yourdomain.com",
      "value": "send3.dkim.send.dev",
      "status": "pending"
    }
  ],
  "spf": {
    "type": "TXT",
    "name": "mail.yourdomain.com",
    "value": "v=spf1 include:spf.send.dev ~all",
    "status": "pending"
  },
  "dmarc": {
    "type": "TXT",
    "name": "_dmarc.mail.yourdomain.com",
    "value": "v=DMARC1; p=none; rua=mailto:dmarc@send.dev",
    "status": "pending",
    "required": false
  },
  "return_path": {
    "type": "CNAME",
    "name": "bounce.mail.yourdomain.com",
    "value": "bounce.send.dev",
    "status": "pending"
  }
},
"created_at": "2025-01-13T10:00:00Z"
}

Configure DNS Records

After adding your domain, you'll receive DNS records to configure. Add these to your DNS provider.

Required Records

RecordPurposePriority
DKIMEmail authentication via cryptographic signatureRequired
SPFAuthorizes Send.dev to send on your behalfRequired
Return PathHandles bounces properlyRequired
DMARCAlignment and reporting policyRecommended

DNS Provider Guides

We have specific guides for popular DNS providers:

See the DNS Configuration page for detailed instructions.

Verify Domain

POST/v1/domains/:id/verifyRequires API Key

Trigger DNS verification for a domain

After adding DNS records, trigger verification:

Via Dashboard

  1. Go to Domains
  2. Find your domain
  3. Click Verify DNS

Via API

curl -X POST https://api.send.dev/v1/domains/dom_01HXYZ123456789/verify \
-H "Authorization: Bearer sk_live_your_api_key"
200Verification status
{
"id": "dom_01HXYZ123456789",
"domain": "mail.yourdomain.com",
"status": "verified",
"dns_records": {
  "dkim": [
    {
      "type": "CNAME",
      "name": "send1._domainkey.mail.yourdomain.com",
      "value": "send1.dkim.send.dev",
      "status": "verified"
    },
    {
      "type": "CNAME",
      "name": "send2._domainkey.mail.yourdomain.com",
      "value": "send2.dkim.send.dev",
      "status": "verified"
    },
    {
      "type": "CNAME",
      "name": "send3._domainkey.mail.yourdomain.com",
      "value": "send3.dkim.send.dev",
      "status": "verified"
    }
  ],
  "spf": {
    "type": "TXT",
    "name": "mail.yourdomain.com",
    "value": "v=spf1 include:spf.send.dev ~all",
    "status": "verified"
  },
  "dmarc": {
    "type": "TXT",
    "name": "_dmarc.mail.yourdomain.com",
    "value": "v=DMARC1; p=none; rua=mailto:dmarc@send.dev",
    "status": "verified"
  },
  "return_path": {
    "type": "CNAME",
    "name": "bounce.mail.yourdomain.com",
    "value": "bounce.send.dev",
    "status": "verified"
  }
},
"verified_at": "2025-01-13T10:30:00Z"
}

DNS Propagation

DNS changes can take up to 48 hours to propagate globally, though most changes are visible within minutes. If verification fails, wait and try again.

Domain Status

StatusDescription
pendingDomain added, awaiting DNS configuration
verifyingDNS check in progress
verifiedAll DNS records verified, ready to send
failedDNS verification failed (see errors)
suspendedDomain suspended due to policy violation

List Domains

GET/v1/domainsRequires API Key

List all configured domains

curl https://api.send.dev/v1/domains \
-H "Authorization: Bearer sk_live_your_api_key"
200Domain list
{
"data": [
  {
    "id": "dom_01HXYZ123456789",
    "domain": "mail.yourdomain.com",
    "status": "verified",
    "verified_at": "2025-01-13T10:30:00Z",
    "created_at": "2025-01-13T10:00:00Z"
  },
  {
    "id": "dom_01HABC987654321",
    "domain": "notifications.yourdomain.com",
    "status": "pending",
    "verified_at": null,
    "created_at": "2025-01-14T09:00:00Z"
  }
],
"has_more": false
}

Delete Domain

DELETE/v1/domains/:idRequires API Key

Remove a domain

curl -X DELETE https://api.send.dev/v1/domains/dom_01HXYZ123456789 \
-H "Authorization: Bearer sk_live_your_api_key"

Permanent Action

Deleting a domain will prevent any further emails from being sent from that domain. This action cannot be undone.

Multiple Domains

You can add multiple domains to your account for different use cases:

  • mail.yourdomain.com - Transactional emails
  • marketing.yourdomain.com - Marketing campaigns
  • notifications.yourdomain.com - System notifications

Each domain has its own reputation, so issues with one domain won't affect others.

Subdomain Best Practices

SubdomainUse Case
mail.yourdomain.comGeneral transactional emails
notify.yourdomain.comNotifications and alerts
news.yourdomain.comNewsletters and marketing
support.yourdomain.comCustomer support emails

Why Use Subdomains?

  1. Reputation Isolation - Marketing emails won't affect transactional delivery
  2. Easier Management - Separate analytics per use case
  3. Policy Flexibility - Different DMARC policies per subdomain
  4. Root Domain Protection - Protect your main domain's reputation

Troubleshooting

"DNS record not found"

  • Verify records are added correctly to your DNS provider
  • Check for typos in record names and values
  • Wait for DNS propagation (up to 48 hours)
  • Use a DNS lookup tool to verify records are visible

"SPF record conflict"

If you have an existing SPF record, merge them:

# Before (conflict)
v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.send.dev ~all

# After (merged)
v=spf1 include:_spf.google.com include:spf.send.dev ~all

"DKIM verification failed"

  • Ensure all 3 DKIM CNAME records are added
  • Check for trailing dots in CNAME values (some providers add them automatically)
  • Verify CNAME targets are correct

Next Steps

On this page