A bounce counts against your sender reputation. Sendara can check a recipient before you send. It checks the syntax against RFC 5322. It then reads DNS to confirm that the domain accepts mail. Sendara looks for an MX record. If the domain publishes no MX record, Sendara accepts an A or AAAA record, which RFC 5321 defines as an implicit MX. You run the check on a send, or on its own.
Validate during a send
Add validate_recipient: true to POST /v1/send. The check runs before the spend gate. Sendara therefore rejects an undeliverable recipient without a charge and without a queue entry.
curl https://api.sendara.dev/v1/send \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"channel": "email",
"idempotency_key": "rcpt_9f21",
"message_type": "transactional",
"destination": { "email": "[email protected]" },
"metadata": { "from_email": "[email protected]" },
"payload": { "subject": "Hi", "body_html": "<p>Hello</p>" },
"validate_recipient": true
}'An undeliverable recipient returns status 422:
{
"error": {
"code": "recipient_undeliverable",
"message": "recipient address is undeliverable: domain cannot receive email (no MX or A record)"
}
}Validate without sending
Call POST /v1/validate to check one address on its own. Use it at signup, on a form submit, or when you clean a list.
curl https://api.sendara.dev/v1/validate \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]" }'{ "email": "[email protected]", "valid": true, "reason": "" }When the address fails, valid is false and reason names the cause. Sendara returns invalid email syntax or domain cannot receive email (no MX or A record).
How it behaves
- The check fails open.A DNS error or a timeout never blocks a send. Sendara waits 5 seconds for a lookup. Only an authoritative “the domain does not exist” answer marks the recipient undeliverable.
- Sendara caches each domain. Sendara holds the result of a domain lookup for 10 minutes. A list of 1,000 recipients on one domain therefore costs 1 DNS lookup, not 1,000.
- You opt in. Sendara validates a send only when you set
validate_recipient. Your current integration behaves as it does today.