> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulse-send.jiordiviera.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify a domain

> Publish DKIM, SPF and DMARC records so you can send from your own address.

Live emails must come from a domain you've verified. Verification proves you own the domain and lets inbox providers trust your mail.

## Add the domain

In the dashboard, open **Domains** and add the domain you send from, for example `acme.com`. Use the domain itself, not an address. Free mailbox providers like `gmail.com` or `outlook.com` can't be added.

You get six DNS records to publish at your DNS provider (Cloudflare, OVH, GoDaddy, Route 53…).

## The records

<AccordionGroup>
  <Accordion title="DKIM: 3 CNAME records (required)" defaultOpen>
    They let PulseSend sign your emails with a key tied to your domain. The domain becomes usable as soon as these three resolve.

    | Type | Name | Value |
    | - | - | - |
    | CNAME | `<token>._domainkey.acme.com` | `<token>.dkim.amazonses.com` |

    The dashboard shows your three exact tokens.
  </Accordion>

  <Accordion title="SPF: MX + TXT on send.acme.com (recommended)">
    Bounces and complaints come back through a `send.` subdomain. These two records align SPF with your domain, which improves deliverability.

    | Type | Name | Value | Priority |
    | - | - | - | - |
    | MX | `send.acme.com` | `feedback-smtp.<region>.amazonses.com` | 10 |
    | TXT | `send.acme.com` | `v=spf1 include:amazonses.com ~all` | |

    They live on a subdomain, so they don't touch the SPF record of your root domain.
  </Accordion>

  <Accordion title="DMARC: 1 TXT record (recommended)">
    Gmail and Yahoo require DMARC from bulk senders. Start with a monitoring-only policy:

    | Type | Name | Value |
    | - | - | - |
    | TXT | `_dmarc.acme.com` | `v=DMARC1; p=none;` |

    If you already have a DMARC record, keep yours.
  </Accordion>
</AccordionGroup>

<Tip>
  Some DNS providers append the domain to the name for you. If yours does,
  enter only the short part, for example `send` instead of `send.acme.com`.
</Tip>

## Verification

PulseSend checks pending domains every 10 minutes, and you can press **Verify now** at any time. DNS changes usually show up within minutes, sometimes a few hours.

| Status | Meaning |
| - | - |
| `pending` | Waiting for the DKIM records. |
| `verified` | Ready. Live emails can use any address on this domain. |
| `failed` | Not verified within 72 hours. Check the records and verify again. |

An unverified domain stays reserved for your team for 72 hours. After that another team can claim it.

## Limits

A team can add up to 10 domains.

Sending from a domain that isn't verified returns `422` with the code `domain_not_verified`. Test keys skip this check.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.