Skip to content
Peachtree Data

← All API documentation

API Documentation

Email Validation.

Validate an email address in real time — syntax, domain, and mailbox — and get a suggested correction when someone types “acompany.cm” instead of “acompany.com”. Role accounts like sales@ are flagged too.

Endpoint
https://rapid.peachtreedata.com/api/v1/emailvalidation
Methods
GET — one address per request
Formats
JSON by default; append .xml for XML

Authentication

Every request carries your API key in the query string. The API is HTTPS-only, so the key is encrypted in transit. Query parameters can appear in any order, and responses are JSON by default — append .xml to the endpoint for XML.

https://rapid.peachtreedata.com/api/v1/emailvalidation?apikey={apikey}&…

Don't have a key? Sign up under plans & pricing below — keys work immediately.

Request

ParameterRequiredDescription
apikeyYesYour unique API key.
emailYesEmail address to validate. Example: someone@acompany.com.
requestIdAny identifier you choose; echoed back in the response.

Examples

Validation (GET)
curl "https://rapid.peachtreedata.com/api/v1/emailvalidation?apikey={apikey}&email=someone@acompany.com"
Response — a catch-all domain
{
  "valid": true,
  "emailAddress": "someone@acompany.com",
  "role": false,
  "status": "S45",
  "statusMessage": "Domain does not support validation (accepts all mailboxes)"
}
Response with a suggested correction — the typo'd domain doesn't exist
{
  "valid": false,
  "emailAddress": "someone@acompany.cm",
  "role": false,
  "correction": "someone@acompany.com",
  "status": "S310",
  "statusMessage": "Domain does not exist"
}

Response reference

FieldTypeDescription
validBooleanTrue if the email address can't be confirmed as invalid; false otherwise.
emailAddressStringThe email address processed.
roleBooleanTrue when the address is a role-based account, such as sales@ or info@.
correctionStringFor an incorrect address, a possible correct address — when a correction could be made. Great for catching typos at signup.
statusStringDetailed result code — see status codes below.
statusMessageStringPlain-English description of the status code.
requestIdStringEcho of the requestId you sent, unchanged.

Status codes

Codes below S100 describe how far validation got on a good address; S100s are syntax problems, S300s are domain problems, S400s are mailbox problems, and S500s are suppressions.

CodeDescription
S5Timeout.
S10Syntax OK.
S20Syntax OK and domain valid according to the domain database.
S30Syntax OK and domain exists.
S40Syntax OK, domain exists, and domain can receive email.
S45Domain does not support validation (accepts all mailboxes).
S50Syntax OK, domain exists, and mailbox does not reject mail.
S110General syntax error or invalid character in the address.
S115Invalid domain syntax.
S120Invalid username syntax.
S125Invalid username syntax for that domain.
S130Address is too long.
S135Address has unbalanced parentheses, brackets, or quotes.
S140Address does not have a username.
S145Address does not have a domain.
S150Address does not have an @ sign.
S155Address has more than one @ sign.
S200Invalid top-level domain (TLD).
S210Comments are not allowed in email addresses.
S215Unquoted spaces are not allowed in email addresses.
S310Domain does not exist.
S315Domain does not have a valid IP address.
S325Domain cannot receive email.
S400The mailbox is invalid, or the username does not exist at the domain.
S410Mailbox is full and cannot receive email at this time.
S420Mail is not accepted for this domain.
S500Addresses with that username are not allowed.
S505Addresses with that domain are not allowed.
S510Address is a bot or other suppression.
S512Address is a role-based account.
S520Address is a known bouncer.
S525Address is a spamtrap, a known complainer, or is suppressed.
S530Address has opted out from commercial email.
S999Internal error.

HTTP response codes

CodeDescription
200Processed successfully.
400Bad request — the API key format is invalid, the key is missing, or the input wasn't properly passed.
401Unauthorized — the API key is inactive or invalid.
403Forbidden — the request exceeds the max items allowed per call, or the account isn't set up for this service.
408Request timeout — processing exceeded the max processing time.
500Internal server error during processing.

Plans & pricing

$30/mo

1,000 lookups per month

$0.03 per lookup above 1,000 in a month.

Sign up

$100/mo

10,000 lookups per month

$0.01 per lookup above 10,000 in a month.

Sign up

$900/mo

100,000 lookups per month

$0.009 per lookup above 100,000 in a month.

Sign up

Above 100,000 lookups a month, or if you'd rather be invoiced, talk to us — we'll set up a plan that fits.

Cleaning up email signups?

Tell us what you're building and we'll get you moving — usually the same day.