API Reference  ·  Real-Time Verification

Real-Time Email Verification API

Verify email addresses on demand as a user types them into a form, pull your credit balance, and process bulk lists with live progress and ready-made download links. The API speaks JSON, takes your key in the URL path, and returns clean, structured results. Building lead tools too? See the Lead Generation API.

Base URL https://client.myemailverifier.com

Overview

The MyEmailVerifier API is a powerful tool designed to verify email addresses efficiently and accurately. It offers various functionalities to validate single emails and bulk files containing email lists.

This documentation provides detailed information on API endpoints, request parameters, response formats, and additional features to assist users in integrating MyEmailVerifier seamlessly into their applications. Our Email Validation Real-Time API is simply based on the JSON web service, which allows developers to verify individual email addresses on-demand as a user enters them in a web form or mobile application.

API Responses

Our API divides email statuses in 5 ways.

StatusMeaning
ValidValid email represents that account is real and available at the given domain
InvalidNot a real email
UnknownWhen we cannot verify valid or invalid due to some reason. Generally most of the time a domain didn't respond quick enough.
Catch AllThe domains which respond to every verification in the affirmative, therefore they cannot be fully verified.
Grey-listedThis domain doesn't respond in the first attempt, It is advisable to retry after 5-10 hours.

Optional Inputs

FieldDescription
Addressprovided email.
StatusCan be either Valid, Invalid, Grey-listed or Unknown
StatusCodeSMTP server status code for advance users
Disposable_DomainIf the domain is disposable
Free_DomainIf email is not a business address
GreylistedServer will not respond properly in the first attempt. Frequent multiple attempts are not advisable.
DiagnosisHelpful information about Invalid address

Authentication

To utilize the MyEmailVerifier API, users must acquire an API key. This key serves for authentication purposes and is passed as a path segment in every API call.

You can find your API key from your client area - API section. Full API info and settings are available here (login required):

GET https://client.myemailverifier.com/apisettings

https://client.myemailverifier.com/apisettings (required login)

Protect your API Key. Your API Key is required to use our Email verification API. Store it in a safe place. You can change it at any time. You are responsible for the cost of all verifications processed with it.

Verify an Email - Real-Time Verification API

API - Validate Single Email Documentation

Looking to validate emails via our email validation API? Here is an explanation of how you can use our Single Email Validation through an API.

Endpoint

GET /verifier/validate_single/[email protected]/API_KEY
Endpoint
https://client.myemailverifier.com/verifier/validate_single/[email protected]/API_KEY

NOTE: <API_KEY> - You can find your API key from your client area - API section.

Example Request

cURL
curl "https://client.myemailverifier.com/verifier/validate_single/[email protected]/API_KEY"

Example Response

JSON
 {
        "Address":"[email protected]",
        "catch_all": "false",
        "Status":"Valid",
        "Disposable_Domain":"false",
        "Role_Based":"true"
        "Free_Domain":"false",
        "Greylisted":"false",
        "Diagnosis":"Mailbox Exists and Active"
    }

Status Code: 200

Other Response

  • Response Status: false
  • Response Messages:
    1. Verify your payment for uninterrupted service. Reply to our recent email with the requested card and ID documents. Thank you for helping us ensure secure transactions.
    2. Your Account is blocked. Please contact support for more details.
    3. You do not have enough credits.
    4. Unknown error occurred.

API - Get Credits Documentation

Here is an explanation of how you can use our Get Credits API.

Endpoint

GET /verifier/getcredits/API_KEY
Endpoint
https://client.myemailverifier.com/verifier/getcredits/API_KEY

NOTE: <API_KEY> - You can find your API key from your client area - API section.

Example Request

cURL
curl "https://client.myemailverifier.com/verifier/getcredits/API_KEY"

Example Response

JSON
{
	Credits: "7800"
}

API - Upload File for Bulk Verification

Here is an explanation of how to validate a file using an API. You can upload a TXT/CSV/XLSX file by referring to an example given below.

Endpoint

POST /verifier/upload_file
Endpoint
https://client.myemailverifier.com/verifier/upload_file

POST Variable: api_key (string), filename (fileupload)

file: The bulk file containing email addresses. Allowed formats are TXT, CSV, and XLSX.

Example Request

PHP
if (function_exists('curl_file_create'))
    {
        $file = curl_file_create('c:\temp\emails.txt');
    }
    else
    {
        $file = '@c:\tempemails.txt';
    }
    $data['filename'] = $file;
    $data['api_key'] = 'API_KEY';
    $url = 'https://client.myemailverifier.com/verifier/upload_file/';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $file_id = curl_exec($ch); //return FILE ID to get file status and download url
    curl_close($ch); 

Example Response

JSON
{
	"status": true,
	"file_name": "emails.txt",
	"file_id": 1670,
	"msg": "File uploaded successfully."
}

Status Code: 200

Other Response

  • Response Status: false
  • Response Messages:
    1. Missing API Key
    2. Invalid API Key
    3. Your Account is blocked. Please contact support for more details.
    4. Verify your payment for uninterrupted service. Reply to our recent email with the requested card and ID documents. Thank you for helping us ensure secure transactions.
    5. Please select a file,Your file contains invalid format data,Incorrect file format. Allowed files are txt, csv and xlsx
    6. We did not find your purchase details.
    7. The file contains an invalid data format. There should only be one email value per row
    8. There are {no_of_lines} lines in your file, but only {credits} credits are available in your account. Please purchase credits so that your file can be processed.
    9. Your purchase details were not found, so we are unable to authorize you to validate the files. Please contact [email protected] for assistance.
    10. The file is too large. Please upload a file with a maximum of 100k rows.

API - Get File Info (Status & Progress)

We assume that you have uploaded a file using our File Upload API. Now, here is an explanation of how you can get the real-time status, live progress, result counts, and download links for your uploaded file using our Get File API.

Poll this endpoint every 30-60 seconds while a file is processing. Server data updates approximately every 30 seconds to 1 minute. Stop polling when status_label === "completed".

Endpoint

GET /verifier/file_info/API_KEY/FILE_ID
Endpoint
https://client.myemailverifier.com/verifier/file_info/API_KEY/FILE_ID

NOTE1: <API_KEY> - You can find your API key from your client area - API section.

NOTE2: <FILE_ID> - You will get your file ID in the response of the Upload File API.

Example Request

cURL
curl "https://client.myemailverifier.com/verifier/file_info/YOUR_API_KEY/1669"

Example Response

JSON
{
  "status": true,
  "file": {
    "upload_id": 1669,
    "user_id": 54838,
    "filename": "my-list.csv",
    "created_at": "2026-06-19T10:22:00.000000Z",

    "ready_for_download": 1,
    "status": "finished",
    "status_label": "completed",
    "downloadable": true,

    "progress_percent": 100,
    "total_emails": 5000,
    "processed_res": 5000,

    "phase": "Validating emails",
    "percent_phase1": 100,
    "percent_phase2": 100,
    "unique_domains": 412,
    "domains_checked_p1": 412,
    "domains_checked_p2": 412,

    "total": 5000,
    "valid": 3800,
    "invalid": 750,
    "catchall": 320,
    "unknown": 80,
    "duplicates": 50,
    "spam_trap": 12,
    "toxic_domains": 38,
    "credit_used": 4950,

    "result_counts": {
      "Valid": 3800,
      "Invalid": 750,
      "CatchAll": 320,
      "Unknown": 80,
      "Spamtrap": 12,
      "Disposable": 38,
      "Duplicate": 50
    },

    "download_all_csv":      "https://client.myemailverifier.com/downloadreport/csv/...",
    "download_valid_csv":    "https://client.myemailverifier.com/downloadreport/validcsv/...",
    "download_invalid_csv":  "https://client.myemailverifier.com/downloadreport/invalidcsv/...",
    "download_catchall_csv": "https://client.myemailverifier.com/downloadreport/catchallcsv/...",
    "download_unknown_csv":  "https://client.myemailverifier.com/downloadreport/unknowncsv/...",
    "download_xls":          "https://client.myemailverifier.com/downloadreport/xls/...",

    "file_path":             "https://client.myemailverifier.com/downloadreport/csv/...",
    "xls_file_path":         "https://client.myemailverifier.com/downloadreport/xls/..."
  }
}

status_label State Machine

Flow
upload response received
        ↓
  status_label = "queued"        (ready_for_download = 0)
        ↓ processing begins
  status_label = "processing"    (ready_for_download = 3)
        ↓ all emails done
  status_label = "completed"     (ready_for_download = 1)
                                  → downloadable = true
                                  → progress_percent = 100

3-Phase Verification Flow

Flow
Phase 1 - Domain Blacklist & MX Check
  ↓  (percent_phase1: 0->100)
Phase 2 - Catch-All Domain Detection
  ↓  (percent_phase2: 0->100)
Phase 3 - Individual SMTP Email Validation
       (progress_percent: 0->100, phase = "Validating emails")

Complete Field Reference

Every field returned by the file_info endpoint, grouped by purpose.

Identity

FieldTypeDescription
upload_idintegerUnique file ID
user_idintegerUser account ID (backward-compatible field)
filenamestringUser-supplied file name
created_atstringISO 8601 upload timestamp

Status

FieldTypeDescription
ready_for_downloadintegerRaw status - 0 = queued, 1 = completed, 3 = processing
statusstringRaw status string from server (e.g. "finished", "In Queue")
status_labelstringNormalised - "queued" | "processing" | "completed". Use this for logic.
downloadablebooleantrue only when ready_for_download === 1. Check this before using download URLs.

Overall Progress

FieldTypeDescription
progress_percentintegerMain progress bar value, 0-100. Computed as (valid + invalid + unknown + catchall) / total_emails × 100. Hard-capped at 100. Forced to 100 when complete.
total_emailsintegerTotal email lines minus blank lines - the correct denominator
processed_resintegerEmails verified so far
Note: spam_trap and toxic_domains are sub-breakdowns of invalid. They are NOT added separately into processed_res to avoid exceeding total_emails.

3-Phase Progress

The verification engine runs in three sequential phases. Display these as sub-progress bars or status labels alongside the main progress_percent.

FieldTypeDescription
phasestringCurrent phase label - "Blacklisted domain check""Checking catchall domains""Validating emails"
percent_phase1integerPhase 1 (domain blacklist / MX record check), 0-100
percent_phase2integerPhase 2 (catch-all domain detection), 0-100
unique_domainsintegerTotal unique domains in the file
domains_checked_p1integerDomains processed in Phase 1
domains_checked_p2integerDomains processed in Phase 2

Result Counts

FieldTypeDescription
totalintegerTotal email addresses in file
validintegerConfirmed deliverable mailboxes
invalidintegerUndeliverable (includes spam_trap + toxic_domains sub-types)
catchallintegerCatch-all domain - server accepts all email
unknownintegerCould not be determined (timeout / greylisted)
duplicatesintegerDuplicate email lines found
spam_trapintegerSpam trap addresses detected (sub-type of invalid)
toxic_domainsintegerDisposable / toxic domain addresses (sub-type of invalid)
credit_usedintegerCredits consumed for this file

result_counts Object (for charts)

Ready-to-use for pie or bar chart rendering. Keys match the web dashboard chart labels: Valid, Invalid, CatchAll, Unknown, Spamtrap, Disposable, Duplicate.

Per-Category Download URLs

All URLs are pre-built - no construction needed. Each is null if that category has zero results. Only use download URLs when downloadable === true.

FieldDescription
download_all_csvAll results combined (always present)
download_valid_csvValid emails only
download_invalid_csvInvalid emails only
download_catchall_csvCatch-all emails only
download_unknown_csvUnknown emails only
download_xlsFull Excel report
file_pathAlias for download_all_csv (backward-compatible)
xls_file_pathAlias for download_xls (backward-compatible)

Code Examples

Poll for live progress and render a results chart when the file completes.

Polling Example - JavaScript Progress Bar

JavaScript
async function trackBulkVerification(apiKey, fileId) {
  const url = `https://client.myemailverifier.com/verifier/file_info/${apiKey}/${fileId}`;

  while (true) {
    const res = await fetch(url);
    const data = await res.json();

    if (!data.status) { console.error('API error:', data.message); break; }

    const f = data.file;

    // Main progress bar (0-100)
    document.getElementById('progress-bar').style.width = f.progress_percent + '%';
    document.getElementById('progress-label').textContent = f.progress_percent + '%';

    // Phase sub-progress
    if (f.phase) document.getElementById('phase-label').textContent = f.phase;
    if (f.percent_phase1 < 100) showPhaseBar('phase1-bar', f.percent_phase1);
    else if (f.percent_phase2 < 100) showPhaseBar('phase2-bar', f.percent_phase2);

    // Live counts
    document.getElementById('count-valid').textContent    = f.valid;
    document.getElementById('count-invalid').textContent  = f.invalid;
    document.getElementById('count-catchall').textContent = f.catchall;
    document.getElementById('count-unknown').textContent  = f.unknown;

    if (f.status_label === 'completed') {
      renderResultChart(f.result_counts);
      if (f.download_valid_csv)    showDownloadBtn('valid',    f.download_valid_csv);
      if (f.download_invalid_csv)  showDownloadBtn('invalid',  f.download_invalid_csv);
      if (f.download_catchall_csv) showDownloadBtn('catchall', f.download_catchall_csv);
      if (f.download_unknown_csv)  showDownloadBtn('unknown',  f.download_unknown_csv);
      if (f.download_xls)          showDownloadBtn('xls',      f.download_xls);
      showDownloadBtn('all', f.download_all_csv);
      break;
    }

    // Wait 30 seconds before next poll (server updates every 30s-1min)
    await new Promise(resolve => setTimeout(resolve, 30000));
  }
}

Chart.js / ApexCharts Integration

When status_label === "completed", the result_counts object is ready to pass directly to any chart library.

JavaScript
// Chart.js - pie chart
new Chart(document.getElementById('resultsChart'), {
  type: 'pie',
  data: {
    labels: Object.keys(f.result_counts),   // ['Valid','Invalid','CatchAll',...]
    datasets: [{
      data: Object.values(f.result_counts),
      backgroundColor: [
        '#22c55e', // Valid      - green
        '#ef4444', // Invalid    - red
        '#f59e0b', // CatchAll   - amber
        '#6b7280', // Unknown    - gray
        '#8b5cf6', // Spamtrap   - purple
        '#f97316', // Disposable - orange
        '#64748b'  // Duplicate  - slate
      ]
    }]
  }
});

// ApexCharts - donut chart
new ApexCharts(document.getElementById('resultsChart'), {
  series: Object.values(f.result_counts),
  labels: Object.keys(f.result_counts),
  chart: { type: 'donut' },
  colors: ['#22c55e','#ef4444','#f59e0b','#6b7280','#8b5cf6','#f97316','#64748b']
}).render();

Error Codes

Common error responses across the verification endpoints.

File Info Error Responses

JSON
{ "status": false, "message": "Invalid API Key" }        // 401
{ "status": false, "message": "Unauthorized Request" }   // 403
{ "status": false, "message": "File not found" }         // 404

Authentication Errors

Authentication: To utilize the MyEmailVerifier API, users must acquire an API key. This key serves for authentication purposes and must be included in the request for every API call.

ErrorStatus CodeResponse StatusResponse Message
Unauthorized Request200falseUnauthorized Request
Invalid API Key-falseInvalid API Key

Rate Limit

Rate Limit: 30 requests per minute

Status Code: 429

JSON
 {
    "status": false,
    "message": "Too many requests. Please try again later.",
    "retryAfter": 60
}
Additional Information. Your API Key is required to use our Email verification API. Store it in a safe place. You can change it at any time. You are responsible for the cost of all verifications processed with it. If you have any further queries kindly contact us.

Have Questions About Our Free Email Extractor?

We're here to provide you with the anrs and support you need to make the most of this powerful tool. Explore the frequently asked questions below.

If you're looking for a reliable email verifier, consider using tools like MyEmailVerifier, ZeroBounce, NeverBounce, Hunter, and Mailgun. These services provide accurate email validation, helping you maintain a clean email list and improve deliverability rates.

Yes, many email list verifiers are designed to handle bulk email validation, making it easier to clean large lists in one go and maintain a healthy sender score.

The main benefits of a real-time email list verifier include reduced bounce rates, improved sender reputation, increased email deliverability, and higher engagement with your audience.

Yes, most email list verifiers, like MyEmailVerifier, offer bulk email validation features. This allows you to clean thousands of email addresses in one go, ensuring your list is free of invalid or risky addresses.

Email validation works by using an email checker to verify the syntax, domain, and mailbox status of an email address. It checks if the email format is correct, if the domain exists, and if the mailbox is active, ensuring only valid addresses are retained in your list.

The fastest email validation API offers bulk verification capabilities to process multiple emails simultaneously. Tools like MyEmailVerifier provide quick and efficient validation, ensuring high-speed checks for large lists.


MyEmailVerifier

Copyright © 2026 · MyEmailVerifier · All Rights Reserved