Documentation
Sign inGet started

Add DNS records · AWS Route 53

When you add a sending domain to Bird, the domain's detail page in the Bird dashboard lists every DNS record to publish, each with a copyable host and value. Keep that page open in one tab and the AWS console in another — every value below is copied straight from Bird, never typed by hand.

The records you'll add

TypeHostValue (copy from Bird)
TXT<selector>._domainkey.example.comYour DKIM key
CNAMEsend.example.com<region>.bounce.bird.com
TXT_dmarc.example.comYour DMARC policy
CNAMElinks.example.com (optional)<region>.links.bird.com
The tracking CNAME (links) is optional — it only enables branded open and click tracking, not sending itself.

Add the records in Route 53

  1. Sign in to the AWS console and open Route 53.
  2. In the left sidebar, choose Hosted zones, then click the public hosted zone whose name matches your sending domain.
  3. Click Create record.
  4. For the DKIM record: paste the host's subdomain part from Bird (everything before your domain, for example <selector>._domainkey) into Record name, set Record type to TXT, and paste the DKIM value from Bird into Value. Keep Routing policy on Simple routing. Click Create records.
  5. Click Create record again. For the return-path record: enter send as the Record name, set Record type to CNAME, and paste the target from Bird (for example <region>.bounce.bird.com) into Value. Click Create records.
  6. Click Create record again. For the DMARC record: enter _dmarc as the Record name, set Record type to TXT, and paste the DMARC value from Bird into Value. Click Create records.
  7. If you want branded tracking, add the optional tracking record the same way as step 5: Record name links, Record type CNAME, Value <region>.links.bird.com. Click Create records.

Route 53-specific gotchas

  • Don't add your own quotes to TXT values. Route 53 wraps TXT values in double quotes automatically. Paste the value exactly as Bird shows it — if you add quotes yourself, the published record contains literal quote characters and verification fails.
  • Make sure the zone is actually serving the domain. It's common to have a hosted zone that exists in Route 53 while the domain's nameservers point somewhere else (an old registrar, a second AWS account, a duplicate zone). Compare the zone's NS record set against the nameservers your registrar lists for the domain — if they differ, records you add here are never seen by the internet and the domain never verifies.
  • Use Simple routing. Leave Routing policy on Simple routing for all four records; weighted, latency, or failover policies are not needed and only add ways for the lookup to go wrong.

After you publish

Bird checks your DNS automatically — verification usually completes within minutes of the records going live, and you can trigger an immediate re-check from the domain's detail page. If the domain stays pending longer than expected, see Verification delays.