Reference · v1

ClearAddress API

The ClearAddress API provides a simple way to validate email addresses. One GET request per address, or up to 500 at once with POST. No key, no account, JSON back.

Email validation

GET https://ca.rda.run/v1/{email_address}?pretty

Validates one email address.

Parameters

NameRequiredTypeDescription
email_addressyesstringThe specific email address to test.
prettynoflagIf present, the response will be formatted for human readability.

Responses

200application/json;charset=UTF-8
JSON string with the fields below.
400application/json
{"code":"400","message":"Bad Request"}

Response fields

FieldTypeDescription
emailstringThe email address being validated.
localPartstringThe local part of the email address.
domainstringThe domain part of the email address.
hasValidDomainbooleanIndicates if the domain is valid.
hasValidMXbooleanIndicates if the domain has valid MX records.
hasValidSyntaxbooleanIndicates if the email has valid syntax.
isFunctionalbooleanIndicates if the email is functional (a role mailbox such as info@ or support@).
isDisposablebooleanIndicates if the email is disposable.
isClearbooleanIndicates if we consider the email "clear": with an existing domain, with valid MX records, with valid syntax, not from a functional mailbox, and not from a disposable email service.

Example

Request · cURL
$ curl -fsSL "https://ca.rda.run/v1/user@example.org?pretty"
Response · 200
{
  "email": "user@example.org",
  "localPart": "user",
  "domain": "example.org",
  "hasValidDomain": true,
  "hasValidMX": true,
  "hasValidSyntax": true,
  "isFunctional": true,
  "isDisposable": false,
  "isClear": false
}

Bulk validation

POST https://ca.rda.run/v1/bulk?pretty

Send a JSON array of email addresses with Content-Type: application/json. The response has count and results: one item per address sent, in the same order (repeated and invalid ones included), each with exactly the fields above. Comparisons ignore case, but email, localPart and domain come back as sent. A DNS failure on one domain is not an error: its items return hasValidDomain and hasValidMX as false. pretty works as above. CORS is open, so browsers can call it directly. Prefer a form? Use the bulk page.

Limit per requestValueNotes
Addresses500Larger lists must be split into several requests.
Distinct domains50Counted among addresses with valid syntax, ignoring case. DNS is queried once per domain, so 300 addresses on one domain count as 1.
400application/json
Body is not JSON, not an array, empty, or has items that are not text. {"error":"Body must be a non-empty JSON array of email addresses"}
413application/json
Over a limit. Nothing is processed; the body reports maxEmails, maxDomains, emails and domains.
Request · cURL
$ curl -fsSL -X POST "https://ca.rda.run/v1/bulk?pretty" -H "Content-Type: application/json" -d '["john.doe@rda.run","admin@rda.run","john@mailinator.com"]'
Response · 200
{
  "count": 3,
  "results": [
    {
      "email": "john.doe@rda.run",
      "localPart": "john.doe",
      "domain": "rda.run",
      "hasValidDomain": true,
      "hasValidMX": true,
      "hasValidSyntax": true,
      "isFunctional": false,
      "isDisposable": false,
      "isClear": true
    },
    ...
  ]
}