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
- Deliverability - Emails from verified domains have higher inbox placement
- Authentication - DKIM signing proves emails are legitimate
- Reputation - Your domain builds its own sender reputation
- 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
/v1/domainsRequires API KeyAdd a new sending domain
Via Dashboard
- Navigate to Domains in your dashboard
- Click Add Domain
- Enter your subdomain (e.g.,
mail.yourdomain.com) - 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"
}'{
"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
| Record | Purpose | Priority |
|---|---|---|
| DKIM | Email authentication via cryptographic signature | Required |
| SPF | Authorizes Send.dev to send on your behalf | Required |
| Return Path | Handles bounces properly | Required |
| DMARC | Alignment and reporting policy | Recommended |
DNS Provider Guides
We have specific guides for popular DNS providers:
See the DNS Configuration page for detailed instructions.
Verify Domain
/v1/domains/:id/verifyRequires API KeyTrigger DNS verification for a domain
After adding DNS records, trigger verification:
Via Dashboard
- Go to Domains
- Find your domain
- 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"{
"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
| Status | Description |
|---|---|
pending | Domain added, awaiting DNS configuration |
verifying | DNS check in progress |
verified | All DNS records verified, ready to send |
failed | DNS verification failed (see errors) |
suspended | Domain suspended due to policy violation |
List Domains
/v1/domainsRequires API KeyList all configured domains
curl https://api.send.dev/v1/domains \
-H "Authorization: Bearer sk_live_your_api_key"{
"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
/v1/domains/:idRequires API KeyRemove 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 emailsmarketing.yourdomain.com- Marketing campaignsnotifications.yourdomain.com- System notifications
Each domain has its own reputation, so issues with one domain won't affect others.
Subdomain Best Practices
Recommended Setup
| Subdomain | Use Case |
|---|---|
mail.yourdomain.com | General transactional emails |
notify.yourdomain.com | Notifications and alerts |
news.yourdomain.com | Newsletters and marketing |
support.yourdomain.com | Customer support emails |
Why Use Subdomains?
- Reputation Isolation - Marketing emails won't affect transactional delivery
- Easier Management - Separate analytics per use case
- Policy Flexibility - Different DMARC policies per subdomain
- 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
- DNS Configuration - Detailed DNS setup instructions
- Sending Emails - Start sending from your domain
- Best Practices - Optimize deliverability