Email Verification API
This endpoint enables you to verify the validity of an email address. The system deeply checks whether an email is VALID
, CATCH_ALL
or INVALID
. A verification costs 0.5 credits per email, except if the email being validated comes from our /domain-search
endpoint; in that case, we only charge the user if the email is VALID
.
No credit will be deducted if you previously verified the email.
Endpoint
POST https://api.prospeo.io/email-verifier
curl -X POST \
-H "Content-Type: application/json" \
-H "X-KEY: your_api_key" \
-d '{"email": "[email protected]"}' \
"https://api.prospeo.io/email-verifier"
Parameters
One of those two paramaters is required:
Parameter | Type | Description |
---|---|---|
email | string | The email to verify. |
email_anon_id | string | The ID of the email obtained from the /domain-search endpoint. |
Response
A successful request will return the following information:
{
"error": false,
"response": {
"free": true,
"email": "[email protected]",
"email_anon_id": "YYWV7XB0YT",
"domain": "intercom.com",
"email_status": "INVALID",
"email_sub_status": "no_mx_records",
"catch_all_recovery": false,
"valid_format": true,
"disposable": false,
"gibberish": false,
"type": "professional",
"catch_all": false,
"mx_record_present": true,
"mx_record_main": "aspmx.l.google.com",
"mx_record_list": [
[
"aspmx.l.google.com",
10
],
...
],
"smtp_provider": "Google",
"total_emails": 194
}
}
Property | Type | Description |
---|---|---|
error | boolean | Indicates if an error has occurred. If false , the request was successful. If true , an error has occurred. Please check our general error message for more details. |
free | boolean | Indicates whether you were charged for this verification. This is always true if you verified that email before. It's also true if the email is CATCH_ALL or INVALID and it came from the /domain-search endpoint (i.e., you used email_anon_id to perform the verification). |
email | string | The email that was verified. |
email_anon_id | string | The anonymous ID of the email that was verified. This ID can be used for future verifications. |
domain | string | The domain part of the email. |
email_status | string | The verification status of the email. Possible values are VALID , CATCH_ALL , INVALID . |
email_sub_status | string | Additional information about the email_status . Possible values are: no_mx_records , dns_timed_out , smtp_timed_out , smtp_unknown_response , or null . |
catch_all_recovery | boolean | Wether we used our catch-all recovery intelligence to validate the email. Those emails are usually tagged catch-all or risky by other verification providers, but we were able to accurately validate it. |
valid_format | boolean | Indicates if the email has a valid format. |
disposable | boolean | Indicates if the email is a disposable email (e.g., [email protected] ). |
gibberish | boolean | Indicates if the email looks like gibberish (e.g., [email protected] ). |
type | string | Indicates the type of email. Possible values are: professional (e.g., [email protected] ), generic (e.g., [email protected] ), or personal (e.g., [email protected] ). |
catch_all | boolean | Indicates if the domain of the email is a catch-all domain. |
mx_record_present | boolean | Indicates if the domain of the email has MX records. |
mx_record_main | string | The main MX record of the domain. |
mx_record_list | array | The list of all MX records of the domain, along with their preference values. |
smtp_provider | string | The SMTP provider identified for the domain (this property is in beta). |
total_emails | integer | The total number of emails that we have linked to that domain in our database. |
Please note that the email_status
indicates the validity of the email:
VALID
: The email has been verified and is a valid email address.CATCH_ALL
: The domain is a catch-all domain, meaning it accepts any email on the domain, making it impossible to verify the existence of a specific email.INVALID
: The email doesn't exist or is invalid.
Deep catch-all detection and recovery
Our Email Verification API at Prospeo features a special tool called "Deep Catch-All Detection", which is represented by the catch_all_recovery
property. This feature helps us check CATCH_ALL
email addresses. These email addresses are often seen as "risky" or "unverifiable".
CATCH_ALL
servers make it hard to check if a specific email exists. Prospeo’s technology changes this by working out the details of email servers to confirm if an email really exists. Simply put, even on a CATCH_ALL
server, we use very intensive and deep intelligence such as response timing and other to determin the status of unverifiable emails.
While we can't get rid of all CATCH_ALL
or RISKY
emails, the accuracy of Propseo email verification goes way beyond other verification providers. Try it for yourself.
Error handling
Error messages follow the general structure as explained in Error Codes section.
Rate limit
The rate limits are:
- 400 call per minute
- 10 call per second (burst allowance)
When the limit is reached, we will return a 429
error code.
If you need your rate limit to be increased, feel free to contact us at [email protected]. The rate limit can easily be increased to 30+ requests per second (2000+ per minute).
Response time
On average, a request take around 2 seconds but can extend up to 10 seconds.
Given that this product performs all of its test in real-time, the response time largely depends on the SMTP server of the targeted domain/company.
We don't just make attempts to validate emails through SMTP; but we also execute much more complex operations to uncover catch-all emails, which are beyond the scope of standard SMTP-pinging approaches.
While a majority of SMTP servers have quick response times, when encountering a catch-all SMTP, we delve deeper and elsewhere on the web to verify the email. This additional investigation can increase the response time.
We recommend not setting a timeout.
In any case, rest assured that we have established hard limits on our response time. There's no need to worry about your system hanging indefinitely while waiting for our response.