The Email Validation API allows you to validate email addresses, check their deliverability, and assess the risk associated with them among other detailed information.
Endpoint
POST
https://api.provero.io/api/validate/email
Headers
Authorization: Bearer REPLACE_WITH_API_TOKEN
Content-Type: application/json
Accept: application/json
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email
|
string |
Yes | The email to be validated. |
Request Body example (JSON)
{
"email": "test@example.com"
}
Code Examples
import requests
userEmail = "REPLACE_WITH_EMAIL"
url = "https://api.provero.io/api/validate/email"
payload = {"email": userEmail}
headers = {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.text)
<?php
$userEmail = "REPLACE_WITH_EMAIL";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.provero.io/api/validate/email",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode(["email" => $userEmail]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer REPLACE_WITH_API_TOKEN",
"Content-Type: application/json",
"Accept: application/json"
],
]);
$response = curl_exec($curl);
if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
}
curl_close($curl);
echo $response;
$userEmail = "REPLACE_WITH_EMAIL";
$response = Http::withToken('REPLACE_WITH_API_TOKEN')
->acceptJson()
->post('https://api.provero.io/api/validate/email', [
'email' => $userEmail,
]);
return $response->json();
const userEmail = "REPLACE_WITH_EMAIL";
fetch("https://api.provero.io/api/validate/email", {
method: "POST",
headers: {
"Authorization": "Bearer REPLACE_WITH_API_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify({ email: userEmail })
})
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
userEmail="REPLACE_WITH_EMAIL"
curl -X POST https://api.provero.io/api/validate/email \
-H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d "{\"email\": \"$userEmail\"}"
Response Examples
Success
{
"emailAddress": "user@example.com",
"isSyntaxValid": true,
"isMailboxDeliverable": false,
"isCatchAll": false,
"typoSuggestion": "user@example.com",
"isDisposable": false,
"isRoleBased": false,
"riskLevel": "HIGH",
"checkResult": "missingMX"
}
Application Error
{
"requestError": {
"serviceException": {
"messageId": "Error message",
"code": "400"
}
}
}
Payment Required - Insufficient Balance
{
"message": "Insufficient balance for validation request.",
"service": "email",
"required_amount": "0.0060000000",
"current_balance": "0.0000000000"
}
Validation Error - Email Not Provided
{
"message": "The email field is required.",
"errors": {
"email": [
"The email field is required."
]
}
}
Validation Error - Invalid Email Format
{
"message": "The email field must be a valid email address.",
"errors": {
"email": [
"The email field must be a valid email address."
]
}
}
Response Body
Success structure
| Field Name | Type | Example | Always Present | Description |
|---|---|---|---|---|
emailAddress |
string |
user@example.com | Yes | The target email address that was looked up. |
isSyntaxValid |
boolean |
1 | Yes | Checks if the email address is formatted correctly and valid. |
isMailboxDeliverable |
boolean |
Yes | Determines if the email address is deliverable. | |
isCatchAll |
boolean |
Yes | Indicates whether the email address domain is configured as catch-all. | |
typoSuggestion |
string |
user@example.com | Yes | Provides a suggested alternate email address that closely resembles the input and may be valid. |
isDisposable |
boolean |
Yes | Checks if the email address is temporary or disposable. | |
isRoleBased |
boolean |
Yes | Checks if the email address is for a team or department. | |
riskLevel |
string |
HIGH | Yes | Indicates the risk status of an email address. HIGH, MEDIUM, LOW, or UNKNOWN. |
checkResult |
string |
missingMX | No | Result returned for the email validation check. |
Error structure
| Field Name | Type | Example | Always Present | Description |
|---|---|---|---|---|
message |
string |
The email field is required. | No | Top-level error message returned on validation failure, insufficient balance, or other request errors. |
errors |
object |
{"email": ["The email field is required."]} | No | Object of validation services with validation failures. |
requestError |
object |
{"serviceException": {"messageId": "Error message", "code": "400"}} | No | Object containing service exceptions for application errors. |
service |
string |
No | Service alias returned with a 402 insufficient-balance response. | |
required_amount |
string |
0.0060000000 | No | Credit amount required to process the validation request. |
current_balance |
string |
0.0000000000 | No | Current available balance at the time the request was rejected. |