Provero Logo

Email

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;
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",
    "failureReason": "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.
failureReason string missingMX No Reason is provided when validMailbox status is unknown.

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 email 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.