Advanced Email Verification API
with Threat Detection

Bye bounces, bye fraudsters, hello customers


No credit card required

Verify the deliverability of email addresses with our comprehensive API.

Our Email verification API is as complete as possible, with validations made at multiple levels: deliverability, response of the mail servers, disposable emails, catch all, free mailer and much more.


  {
    "result": "deliverable",
    "message": "2.1.5 OK",
    "is_role": false,
    "user": "dennis",
    "email": "dennis@monapi.io",
    "is_free": false,
    "smtp_server": true,
    "is_catchall": false,
    "mx_records": true,
    "block": false,
    "domain": "monapi.io",
    "code": 250,
    "is_disposable": false,
    "is_greylisted": false,
    "threat_class": none
  }
          

RECIPIENT CHECK

We test the deliverability of the email address and see if it bounces or not.

THREAT DETECTION

We check the Email against our comprehensive IP & Domain Threat Database to see if from the Mailserver or the Domain any possible threats are known.

DISPOSABLE EMAIL ADDRESS

We check if the email address has a domain name used for temporary email addresses.

FREEMAIL EMAIL ADDRESS

We verify if the email address uses a webmail like Hotmail, Gmail aso.

ROLE BASED USER

We check if the user relates to a role like postmaster, administrator aso.

CATCH-ALL EMAIL DOMAIN

We check if the server has a catch-all policy which accepts all the email addresses

Verify any email with just one line of code using our API.


  curl -H "Authorization: Token your_token" https://api.monapi.io/v1/email/info@monapi.io
        

Or use one of our language bindings in Python, Shell, PHP or Javascript.


  import requests

  url = 'https://api.monapi.io/v1/email/{ email_address_to_verify }'

  headers = {
      'accept': "application/json",
      'authorization': "your_api_key"
      }

  response = requests.request("GET", url, headers=headers)

  print(response.text)
  print(response.status_code)
        

  curl --url 'https://api.monapi.io/v1/email/{ email_address_to_verify }' \
       --header 'Authorization: Token your_api_key' \
       --header 'Accept: application/json'
        
        
  <?php
  // Email to verify
  $ip = '{ email_address_to_verify }';

  $authToken = 'your_api_key';

  // Init cURL
  $curl = curl_init();

  // Set URL & some options
  curl_setopt_array($curl, array(
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_URL => 'https://api.monapi.io/v1/email/' . $email_address_to_verify
  ));

  // Set the authorization header
  if ($authToken) {
      curl_setopt($curl, CURLOPT_HTTPHEADER, array(
          'Authorization: Token ' . $authToken
      ));
  }

  // Send the request
  $response = curl_exec($curl);

  // Check for cURL & HTTP errors or return response content
  if (curl_errno($curl)) {
    echo 'Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl) . "\n";
  } else {
    switch ($httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE)) {
      case 200:  # OK
        echo 'OK' . "\n";
        $responseObject = json_decode($response);
        var_dump($responseObject);
        break;
      case 404:
        echo 'Resource not found' . "\n";
        $responseObject = json_decode($response);
        var_dump($responseObject);
        break;
      default:
        echo 'Unexpected HTTP-Code: ' . $httpCode . "\n";
    }
  }
  // Close request to clear up some resources
  curl_close($curl);
  
        
var https = require('https');

// The { email } to verify
var Email = 'email'

// Authorization token
var authToken = 'Token your_api_key';

var options = {
  host: 'api.monapi.io',
  port: 443,
  path: '/api/v1/email/' + { Email },
  headers: {
  }
};

if (authToken) {
   options.headers['Authorization'] = 'Token ' + authToken;
}

var request = https.get(options, function(res) {
   var body = "";
   res.on('data', function(data) {
      body += data;
   });
   res.on('end', function() {
     // Check response by status
     switch (res.statusCode) {
       case 200:
         console.log('HTTP Status OK, 200');
         console.log('Response DATA', body);
         break;
       case 404:
         console.log('Resource not found, 404');
         console.log('Response DATA', body);
         break;
       default:
         console.log('Unknown HTTP Status Code', res.statusCode);
         break;
     }
   })
   res.on('error', function(e) {
      console.log("Got HTTP Response error: " + e.message);
   });
});

request.on('error', (e) => {
  console.error('Request error:', e);
});

request.end();

Data Avoidance

We act upon the principle of thrift data and data avoidance, which means, that we dont save your data. It's that simple. You can be 100% confident that your emails will touch our systems only during the validation process.

Real-time API

Our API is as complete as possible, with validations made at multiple levels: deliverability, response of the mail servers, disposable emails, catch all, free mailer and much more.

Threat Detection

Because we are an IP & Domain Data Intelligence Provider we are able to give you real time threat detection for any given email.

Common questions about the Email Verification API

Q: Do you send an email to do the verification?

The email verification API does the validation without sending an email, connecting directly to the SMTP server.

Q: How do you check for greylisting?

There is no specific recommendation as to the specific choice of 4yz code to be returned as a result of a greylisting delay. So we use a combination of 4yz codes and the SMTP messages to decide wether the email is greylisted or not. For that reason we provide the "is_greylisted" field.

Q: How do you recognize a possible threat?

We use the domain and the mx_record of the provided email and lookup our Threat Intelligence Database if it matches. Use the field "threat_class"
If you catch the email address on point of contact (Signup, Contact Form aso.), you could also provide an ip address of the user to check against our Threat Data API. This would give you an even better insight into the potential threat of that email.

Q: Can i test the API?

Of course! Sign Up and use the free Account which gives you 10 Email Request per Day for free! You get also 500 Request to our Threat Data API & Geolcoation API as well as the other API Endpoints we offer.

Our free Account gives you up to 500 API requests a day!

IP Address, Email & Domain Intelligence