Bounces hurt your sender reputation. Sendara can check a recipient before you send: it validates the syntax and confirms the domain can receive mail via a DNS/MX lookup (with an RFC 5321 implicit-MX fallback for domains that publish an A record but no MX). You can run the check inline on a send, or stand-alone.
Validate during a send
Add validate_recipient: true to POST /v1/send. The check runs before the spend gate, so an undeliverable recipient is never charged and never queued — it is rejected up front.
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 comes back as a 422:
{
"error": {
"code": "recipient_undeliverable",
"message": "recipient address is undeliverable: domain cannot receive email (no MX or A record)"
}
}Validate without sending
To check an address on its own — at signup, on form submit, or while cleaning a list — call POST /v1/validate.
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 explains why (e.g. invalid email syntax or domain cannot receive email (no MX or A record)).
How it behaves
- Fails open.A transient DNS error or timeout never blocks a send — only an authoritative “domain does not exist” result is treated as undeliverable.
- Cached per domain. Lookups are cached briefly, so validating many recipients on the same domain stays fast and does not hammer DNS.
- Opt-in. Sends are never validated unless you ask — existing integrations are unaffected.