Skip to main content

Domain Verification

Verify your domain to send emails and improve deliverability. You can manage domains through the Dashboard or the API.

Why Verify?

  • Required to send production emails
  • Improves inbox placement
  • Enables DKIM signing
  • Protects your brand

Add Your Domain

Via Dashboard

  1. Navigate to Domains in the sidebar
  2. Click Add Domain
  3. Enter your sending domain (e.g., mail.yourapp.com)
  4. Zyphr returns the DNS records you need to add

Via API

curl -X POST https://api.zyphr.dev/v1/domains \
-H "X-API-Key: zy_live_your_key" \
-H "Content-Type: application/json" \
-d '{ "domain": "mail.yourapp.com" }'
const domain = await zyphr.domains.create({
domain: 'mail.yourapp.com',
});

// domain.dns_records contains the records to add
console.log(domain.dns_records);

The response includes all DNS records you need to configure.

Add DNS Records

Add the following records to your DNS provider:

DKIM Records (3 CNAME records):

selector1._domainkey.mail.yourapp.com → dkim1.zyphr.dev
selector2._domainkey.mail.yourapp.com → dkim2.zyphr.dev
selector3._domainkey.mail.yourapp.com → dkim3.zyphr.dev

SPF Record (TXT):

v=spf1 include:spf.zyphr.dev ~all

DMARC Record (TXT):

v=DMARC1; p=none; rua=mailto:dmarc@yourapp.com

Verify Your Domain

After adding DNS records (may take up to 48 hours to propagate):

Via Dashboard

  1. Go to Domains in the sidebar
  2. Find your domain and click Verify
  3. Zyphr checks your DNS records
  4. Once verified, the status updates to Verified

Via API

curl -X POST https://api.zyphr.dev/v1/domains/DOMAIN_ID/check \
-H "X-API-Key: zy_live_your_key"
const result = await zyphr.domains.verify('DOMAIN_ID');
console.log(result.status); // 'verified' or 'pending'

List Domains

Via Dashboard

Navigate to Domains in the sidebar to see all your domains with their verification status.

Via API

curl https://api.zyphr.dev/v1/domains \
-H "X-API-Key: zy_live_your_key"
const { data: domains } = await zyphr.domains.list();

Set Default Domain

Via Dashboard

On the Domains page, click the menu on a verified domain and select Set as Default.

Via API

curl -X POST https://api.zyphr.dev/v1/domains/DOMAIN_ID/default \
-H "X-API-Key: zy_live_your_key"

Delete a Domain

Via Dashboard

On the Domains page, click the menu on a domain and select Delete.

Via API

curl -X DELETE https://api.zyphr.dev/v1/domains/DOMAIN_ID \
-H "X-API-Key: zy_live_your_key"

Domain Status

StatusDescription
pendingAwaiting DNS records
verifyingDNS check in progress
verifiedReady to send
failedVerification failed

Plan Limits

PlanMax Domains
Free1
Starter5
Professional25
EnterpriseUnlimited