REST API Reference & Integration Guide

Developer API Documentation

Validate email addresses in real time before they reach your database. Verify syntax, DNS MX records, and SMTP mailboxes directly from your application.

Overview

The ListEmailCheck API allows developers to perform real-time verification of email addresses during user registration, checkout flows, lead collection forms, and batch processing pipelines.

< 1.5s
Average Response Latency
JSON
Standardized Payload
99.9%
Uptime SLA

Authentication

Public web verifications are available directly through the single-email verification endpoint. Authenticated requests utilize session-based authentication or API key header verification:

Content-Type: application/json

Single Email Verification

POST /verify-single

Verifies an individual email address by executing syntax parsing, DNS MX record lookup, and an SMTP handshake probe.

Request Body

{
  "email": "user@example.com"
}

Response Format

The API returns a JSON object containing detailed result indicators and overall classification:

{
  "email": "user@example.com",
  "status": "valid",
  "syntax_valid": true,
  "mx_found": true,
  "smtp_valid": true,
  "is_disposable": false,
  "is_role_account": false,
  "is_catch_all": false,
  "domain": "example.com",
  "reason": "SMTP mailbox exists and accepts emails."
}

Status Definitions:

valid Passed syntax, MX, and SMTP checks. Safe to deliver.
invalid Failed syntax, domain has no MX, or mailbox does not exist.
risky Disposable address, role-based inbox (e.g. info@), or catch-all server.

Code Integration Examples

cURL

curl -X POST https://listemailcheck.com/verify-single \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com"}'

Python (requests)

import requests

url = "https://listemailcheck.com/verify-single"
payload = {"email": "alex@company.com"}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)
result = response.json()

if result.get("status") == "valid":
    print("Email is valid!")
else:
    print(f"Verification status: {result.get('status')} - {result.get('reason')}")

JavaScript / Node.js (fetch)

async function verifyEmail(email) {
  const response = await fetch("https://listemailcheck.com/verify-single", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ email: email })
  });

  const data = await response.json();
  console.log("Status:", data.status, "Details:", data);
  return data.status === "valid";
}

verifyEmail("user@example.com");

PHP (cURL)

<?php
$ch = curl_init('https://listemailcheck.com/verify-single');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['email' => 'user@example.com']));

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo "Status: " . $result['status'];
?>

HTTP Status Codes

200 OK Request processed successfully. Check response body for verification status.
400 Bad Request Missing email input or malformed JSON payload.
429 Rate Limit Daily verification quota exceeded. Upgrade plan to increase limits.
500 Server Error Internal server or upstream timeout issue. Retry request.

Rate Limits & Quotas

Unauthenticated guest requests are limited to 5 verifications per 24 hours. Registered users receive 1,000 free verifications per day. Higher quotas are available on paid tiers:

Free
1,000 / day
Daily Reset
Starter
5,000 / mo
$9 / month
Pro
50,000 / mo
$29 / month
Business
500,000 / mo
$99 / month