Verify a Domain on Cloudflare DNS

Add Notify SPF, DKIM, and DMARC records in the Cloudflare DNS dashboard.

Production sends from a custom from address require a verified domain. If your DNS is on Cloudflare, add the records Notify shows when you create a domain.

Before you start

  1. Open Domains and add your domain (for example acme.com)
  2. Copy the SPF, DKIM, and DMARC values Notify displays
  3. Log in to the Cloudflare dashboard for that zone

Exact hostnames and values come from the Notify dashboard — do not invent them.


Add records in Cloudflare

  1. Select your domain → DNSRecords
  2. Click Add record for each Notify requirement:

| Type | Typical use | | --- | --- | | TXT | SPF (v=spf1 ...) | | CNAME or TXT | DKIM (Notify shows which) | | TXT | DMARC (_dmarc / v=DMARC1 ...) |

  1. Paste the Name / Host and Content / Target exactly as shown in Notify
  2. Leave Proxy status as DNS only (grey cloud) for mail-related CNAMEs — orange-cloud proxy breaks email authentication
  3. Save

Cloudflare-specific tips

  • Flattening / CNAME flattening — Cloudflare may flatten apex CNAMEs. Prefer the record type Notify asks for; if verification fails, check the live DNS with dig / Cloudflare’s DNS analytics.
  • Existing SPF — merge Notify’s include into your existing SPF TXT rather than adding a second SPF record. Multiple SPF records cause authentication failures.
  • TTL — Auto is fine. Propagation is usually fast on Cloudflare but Notify may still take time to re-check.
  • Email Routing — Cloudflare Email Routing is unrelated to Notify sending; it does not replace SPF/DKIM for outbound via Notify.

Check verification

  1. Return to Domains
  2. Click verify / wait for status verified
  3. Send a test with from on that domain:
await fetch('https://notify.cx/api/email/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.NOTIFY_API_KEY!
  },
  body: JSON.stringify({
    from: 'noreply@acme.com',
    to: 'you@example.com',
    subject: 'Domain check',
    message: 'Cloudflare DNS is wired up.'
  })
});

If status stays failed or pending, re-check for typos, duplicate SPF, and proxied CNAMEs. See Domain verification troubleshooting.

Where to next?