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
| Parameter | Required | Description |
|---|---|---|
| apikey | Yes | Your unique API key. |
| Yes | Email address to validate. Example: someone@acompany.com. | |
| requestId | — | Any identifier you choose; echoed back in the response. |
Examples
curl "https://rapid.peachtreedata.com/api/v1/emailvalidation?apikey={apikey}&email=someone@acompany.com"{
"valid": true,
"emailAddress": "someone@acompany.com",
"role": false,
"status": "S45",
"statusMessage": "Domain does not support validation (accepts all mailboxes)"
}{
"valid": false,
"emailAddress": "someone@acompany.cm",
"role": false,
"correction": "someone@acompany.com",
"status": "S310",
"statusMessage": "Domain does not exist"
}Response reference
| Field | Type | Description |
|---|---|---|
| valid | Boolean | True if the email address can't be confirmed as invalid; false otherwise. |
| emailAddress | String | The email address processed. |
| role | Boolean | True when the address is a role-based account, such as sales@ or info@. |
| correction | String | For an incorrect address, a possible correct address — when a correction could be made. Great for catching typos at signup. |
| status | String | Detailed result code — see status codes below. |
| statusMessage | String | Plain-English description of the status code. |
| requestId | String | Echo 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.
| Code | Description |
|---|---|
| S5 | Timeout. |
| S10 | Syntax OK. |
| S20 | Syntax OK and domain valid according to the domain database. |
| S30 | Syntax OK and domain exists. |
| S40 | Syntax OK, domain exists, and domain can receive email. |
| S45 | Domain does not support validation (accepts all mailboxes). |
| S50 | Syntax OK, domain exists, and mailbox does not reject mail. |
| S110 | General syntax error or invalid character in the address. |
| S115 | Invalid domain syntax. |
| S120 | Invalid username syntax. |
| S125 | Invalid username syntax for that domain. |
| S130 | Address is too long. |
| S135 | Address has unbalanced parentheses, brackets, or quotes. |
| S140 | Address does not have a username. |
| S145 | Address does not have a domain. |
| S150 | Address does not have an @ sign. |
| S155 | Address has more than one @ sign. |
| S200 | Invalid top-level domain (TLD). |
| S210 | Comments are not allowed in email addresses. |
| S215 | Unquoted spaces are not allowed in email addresses. |
| S310 | Domain does not exist. |
| S315 | Domain does not have a valid IP address. |
| S325 | Domain cannot receive email. |
| S400 | The mailbox is invalid, or the username does not exist at the domain. |
| S410 | Mailbox is full and cannot receive email at this time. |
| S420 | Mail is not accepted for this domain. |
| S500 | Addresses with that username are not allowed. |
| S505 | Addresses with that domain are not allowed. |
| S510 | Address is a bot or other suppression. |
| S512 | Address is a role-based account. |
| S520 | Address is a known bouncer. |
| S525 | Address is a spamtrap, a known complainer, or is suppressed. |
| S530 | Address has opted out from commercial email. |
| S999 | Internal error. |
HTTP response codes
| Code | Description |
|---|---|
| 200 | Processed successfully. |
| 400 | Bad request — the API key format is invalid, the key is missing, or the input wasn't properly passed. |
| 401 | Unauthorized — the API key is inactive or invalid. |
| 403 | Forbidden — the request exceeds the max items allowed per call, or the account isn't set up for this service. |
| 408 | Request timeout — processing exceeded the max processing time. |
| 500 | Internal server error during processing. |
Plans & pricing
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.