Questions · Updated 2026-09-23

How do I verify a sending domain on Route 53?

To verify a sending domain on Route 53, create a simple record for each row from GET /domains/{id}/setup in the hosted zone, then call POST /domains/{id}/verify. Leave the record name empty when the row's host is @. The clicks below are Amazon's, as of September 2026.

To verify a sending domain on Route 53, create a simple record for each row from GET /domains/{id}/setup in the hosted zone, then call POST /domains/{id}/verify. Leave the record name empty when the row's host is @. The clicks below are Amazon's, as of September 2026.

The records to publish

POST /domains registers the name. GET /domains/{id}/setup returns one row per record, with record, host, type, value, priority, and required. A TXT row also has value_strings and value_bind. Paste those. The DKIM value is the one on the row. The same response includes commands.route53, a change batch whose record Name is the full name with a trailing dot. provider_hints.route53 says: "Use the full name with a trailing dot. Quote each TXT string." That hint is the batch. The console form below is the other path, and Amazon's simple-record page tells you not to type @ into Record name.

A new domain sends once the required rows resolve. Domains and DNS names them: the DKIM TXT, and the return-path MX and TXT. Root SPF and DMARC are recommended. A tracking CNAME is on the sheet only when tracking is available, and it never blocks verification. If the apex already has an SPF TXT, merge the sheet's value into that one record. A second SPF TXT on the same name invalidates both.

curl -sS -X GET https://api.agentisend.com/domains/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42/setup \
  -H "Authorization: Bearer $AGENTISEND_API_KEY"
200
{
  "commands": "string",
  "deep_link": "string",
  "detected": true,
  "domain": "string",
  "nameservers": [],
  "provider": "string",
  "provider_hints": "string",
  "records": []
}
Response

The Route 53 console, as of September 2026

Creating records by using the Amazon Route 53 console says: open the Route 53 console, choose Hosted zones, choose the hosted zone, choose Create record, choose Simple routing, then Create records. Values specific for simple records lists Routing policy, Record name, Value/Route traffic to, Record type, and TTL. For a record with the same name as the hosted zone, that page says to leave Record name empty and not to enter @. So an apex row (host @) gets an empty Record name, and any other row gets host (as1._domainkey, send, _dmarc, links).

Record type is the row's type. For a TXT, Value is the row's value, or the value_strings when the TXT is split. For an MX, the MX record type says each value contains a priority and a domain name, and the console example is a priority, a space, then the mail host (10 mail.example.com). Use the row's priority, a space, then the row's value.

The creating-records page says changes generally propagate to all Route 53 name servers within 60 seconds, and that GetChange is how you check.

Read it back

POST /domains/{id}/verify reports which required rows resolved. GET /domains/{id} is the sheet with each row's status.

Other registrars