MillionVerifier API (3.1.0)

Download OpenAPI specification:Download

API stands for Application Programming Interface. You can connect our system with your website, landing page, application or software to verify emails in real time or to send us files programmatically.

Using MillionVerifier's API you can avoid bad emails added to your email lists. You may also use our API to resell our services.

Authentication

Use your API key to identify your account when making an API call. Each endpoint contains an example of how to use our API. Simply just replace "your-api-key" with your API key you can find on this page: https://app.millionverifier.com/api

Test API key for development: "API_KEY_FOR_TEST". This API key will return random results.

SSL Information

The following versions (or above) are supported to make a succesful request in certain programming languages:

  • PHP 5.4.45 <=
  • Python (Requests module) 1.0.0 <=
  • cURL 7.65.3 <=
  • Java (OpenJDK) 10 <=
  • NodeJS 0.10.28 <=
  • C# (.NET Core) 2.1 <=

Servers

Single API

Verify an email address in real time as your subscriber signs up to your newsletter. For cleaning larger databases please use our Bulk API.

Special characters in the email address should be encoded.

Demo API keys:

  • API_KEY_FOR_TEST
    • Returns with a random response
  • API_KEY_FOR_UNVERIFIED
  • API_KEY_FOR_OK
  • API_KEY_FOR_CATCH_ALL
  • API_KEY_FOR_INVALID
  • API_KEY_FOR_UNKOWN
  • API_KEY_FOR_DISPOSABLE
  • API_KEY_FOR_ERROR_NO_EMAIL
  • API_KEY_FOR_ERROR_NO_APIKEY
  • API_KEY_FOR_ERROR_INVALID_APIKEY
  • API_KEY_FOR_ERROR_INSUFFICIENT_CREDITS
  • API_KEY_FOR_ERROR_IP_ADDRESS_BLOCKED
  • API_KEY_FOR_ERROR_INTERNAL_ERROR

Verify an email address in real time

Verify an email address in real time and get resutls in just a second.

query Parameters
api
required
string
Example: api=your-api-key

Your API key

email
required
string

Email address that needs to be verified

timeout
integer
Example: timeout=10

Time in seconds to terminate the connection in case no response recevied from the recipient server. You can set between 2 and 60 seconds. Default timeout is 20 seconds.

Responses

Request samples

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.millionverifier.com/api/v3/?api=your-api-key&[email protected]&timeout=10',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Response samples

Content type
application/json
Example
{
  • "email": "[email protected]",
  • "quality": "good",
  • "result": "invalid",
  • "resultcode": 6,
  • "subresult": "unknown",
  • "free": false,
  • "role": false,
  • "didyoumean": "[email protected]",
  • "credits": 3454,
  • "executiontime": 2,
  • "error": "",
  • "livemode": true
}

Bulk API

Send your emails in a CSV file programmatically and retrieve your results.

File upload

Upload file containing email addresses for verification

query Parameters
key
required
string
Example: key=your-api-key

Your API key

Request Body schema: multipart/form-data

Request parameters for upload

file_contents
string <binary>

Responses

Request samples

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://bulkapi.millionverifier.com/bulkapi/v2/upload?key=your-api-key',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('file_contents'=> new CURLFILE('path/to/file')),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Response samples

Content type
application/json
Example
{
  • "file_id": "940",
  • "file_name": "mails500.txt",
  • "status": "in_progress",
  • "unique_emails": 257,
  • "updated_at": "2021-05-16 12:25:42",
  • "createdate": "2021-05-16 12:25:42",
  • "percent": 60,
  • "total_rows": 500,
  • "verified": 0,
  • "unverified": 0,
  • "ok": 0,
  • "catch_all": 0,
  • "disposable": 0,
  • "invalid": 0,
  • "unknown": 0,
  • "reverify": 0,
  • "credit": 0,
  • "estimated_time_sec": 120
}

File info

Get info of the uploaded file

query Parameters
key
required
string
Example: key=your-api-key

Your API key

file_id
required
integer
Example: file_id=940

The ID of the uploaded file

Responses

Request samples

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://bulkapi.millionverifier.com/bulkapi/v2/fileinfo?key=your-api-key&file_id=940',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Response samples

Content type
application/json
{
  • "file_id": "940",
  • "file_name": "mails500.txt",
  • "status": "in_progress",
  • "unique_emails": 257,
  • "updated_at": "2021-05-16 12:25:42",
  • "createdate": "2021-05-16 12:25:42",
  • "percent": 60,
  • "total_rows": 500,
  • "verified": 0,
  • "unverified": 0,
  • "ok": 0,
  • "catch_all": 0,
  • "disposable": 0,
  • "invalid": 0,
  • "unknown": 0,
  • "reverify": 0,
  • "credit": 0,
  • "estimated_time_sec": 120
}

Download report

Download report of the verification result

query Parameters
key
required
string
Example: key=your-api-key

Your API key

file_id
required
string
Example: file_id=940

The ID of the uploaded file

filter
required
string
Enum: "ok" "ok_and_catch_all" "unknown" "invalid" "all" "custom"
Example: filter=all

Download only filtered results

statuses
string
Enum: "ok" "catch_all" "unknown" "invalid" "disposable"
Example: statuses=ok,disposable,invalid

When the 'custom' filter is used, result statuses can be given as a comma separated values. If omitted, then all statuses will be in the results

free
string
Enum: "1" "0"

When the 'custom' filter is used, this option decides whether to filter for free domains or not. If omitted, both type of domains will be in the results

role
string
Enum: "1" "0"

When the 'custom' filter is used, this option decides whether to filter for role emails or not. If omitted, both type of emails will be in the results

Responses

Request samples

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://bulkapi.millionverifier.com/bulkapi/v2/download?key=your-api-key&file_id=940&filter=all',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Response samples