Skip to content

Validate email addresses

View .md
POST

Heuristic email validation to run before sending: catches invalid syntax, dead domains (no MX/A records), disposable inboxes, role-based addresses (info@, contacto@, sales@), and addresses already on your project's suppression list. Use it to clean a list before a broadcast and keep your bounce rate low.

No mailbox-level (SMTP) probe is performed, so a deliverable verdict is not a delivery guarantee — it means no negative signal was found. Treat risky addresses with care and drop undeliverable ones.

Accepts a single email or an emails batch (max 100 per request).

Authorization

  • Authorizationheaderrequired

    Bearer YOUR_API_KEY. Create a key in the dashboard.

Body

application/json

  • emailstring

    Single email address to validate.

  • emailsstring[]

    Batch of email addresses to validate (max 100).

    Limitsmax items 100

Responses

200Validation results, one per submitted address.
  • resultsobject[]required

    One result per submitted address, in the same order.

    5 properties
    • emailstringrequired

      The address exactly as submitted.

    • normalizedstringrequirednullable

      Lowercased, trimmed form of the address. Null when the syntax is invalid.

    • domainstringrequirednullable

      Domain part of the address. Null when the syntax is invalid.

    • verdictstringrequired

      Validation verdict. - deliverable: nothing suggests the address will bounce. - risky: sendable, but a signal predicts elevated bounce/complaint odds (role address, disposable domain, MX-less domain, prior soft bounce). - undeliverable: will bounce or is blocked (invalid syntax, dead domain, or the address is on your suppression list after a hard bounce/complaint).

      One ofdeliverableriskyundeliverable
    • reasonsstring[]required

      Signals behind the verdict. Empty for a clean deliverable address.

      One ofinvalid_syntaxdomain_not_founddomain_no_mxdisposable_domainrole_addresssuppressed_hard_bouncesuppressed_soft_bouncesuppressed_complaintsuppressed_manualsuppressed_unsubscribe
  • summaryobjectrequired
    4 properties
    • totalintegerrequired
    • deliverableintegerrequired
    • riskyintegerrequired
    • undeliverableintegerrequired
400Invalid request body (no addresses, or more than 100).
  • codestringrequired
  • messagestringrequired
  • detailsobject
401Unauthorized.
  • codestringrequired
  • messagestringrequired
  • detailsobject