✉ CheckMail1

CheckMail1 API Tutorial: Verify Emails with curl, Python & More (2026)

APITutorialPublished: September 7, 2026  ·  8 min read

Whether you are cleaning a marketing list, validating signups in real time, or running bulk data hygiene jobs, CheckMail1 gives you a fast, accurate email verification API you can integrate in minutes.

🚀 Start free — no credit card required.
Get your API key at checkmail1.com and verify 100 emails instantly.

1. Get Your API Key

Sign up at checkmail1.com and go to Dashboard → API Keys. Use your key in every request via the x-api-key header.

2. Single Email Verification with curl

curl -X GET "https://checkmail1.com/api/v1/verify?email=test%40example.com" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json"

Sample Response

{
  "email": "test@example.com",
  "status": "valid",
  "is_deliverable": true,
  "is_disposable": false,
  "is_role": false,
  "mx_found": true,
  "smtp_check": true,
  "score": 98,
  "domain": "example.com"
}
FieldTypeDescription
statusstringvalid, invalid, risky, or unknown
is_deliverableboolSMTP handshake confirmed mailbox exists
is_disposableboolBelongs to a throwaway provider
is_roleboolRole-based address (support@, noreply@)
mx_foundboolDomain has valid MX DNS records
scoreint 0-100Deliverability confidence score

3. Python Integration

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://checkmail1.com/api/v1/verify"

def verify_email(email: str) -> dict:
    response = requests.get(
        BASE_URL,
        params={"email": email},
        headers={"x-api-key": API_KEY},
        timeout=10
    )
    response.raise_for_status()
    return response.json()

result = verify_email("john@gmail.com")
print(f"Status: {result['status']}, Score: {result['score']}")

emails = ["alice@example.com", "bob@test.org", "fake@nonexistent.xyz"]
for email in emails:
    r = verify_email(email)
    print(f"{'OK' if r['is_deliverable'] else 'FAIL'} {email} -> {r['status']}")

4. PHP Integration

<?php
define('API_KEY', 'YOUR_API_KEY');
define('API_URL', 'https://checkmail1.com/api/v1/verify');

function verifyEmail(string $email): array {
    $url = API_URL . '?' . http_build_query(['email' => $email]);
    $ch  = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 10,
        CURLOPT_HTTPHEADER     => ['x-api-key: ' . API_KEY, 'Accept: application/json'],
    ]);
    $body = curl_exec($ch);
    curl_close($ch);
    return json_decode($body, true);
}

$r = verifyEmail('user@domain.com');
echo "Status: {$r['status']}, Deliverable: " . ($r['is_deliverable'] ? 'yes' : 'no') . "\n";
?>

5. Node.js Integration

const API_KEY = 'YOUR_API_KEY';

async function verifyEmail(email) {
  const url = `https://checkmail1.com/api/v1/verify?email=${encodeURIComponent(email)}`;
  const res = await fetch(url, {
    headers: { 'x-api-key': API_KEY, 'Accept': 'application/json' }
  });
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  return res.json();
}

const emails = ['alice@example.com', 'spam@disposable.gg'];
for (const email of emails) {
  const data = await verifyEmail(email);
  console.log(`${email} -> ${data.status} (score: ${data.score})`);
}

6. Bulk Verification Endpoint

# Submit bulk job
curl -X POST "https://checkmail1.com/api/v1/bulk" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"emails": ["a@example.com", "b@test.io", "c@domain.org"]}'

# Response: {"job_id": "jb_abc123", "count": 3, "status": "queued"}

# Poll results
curl "https://checkmail1.com/api/v1/bulk/jb_abc123" \
  -H "x-api-key: YOUR_API_KEY"

7. Error Codes & Rate Limits

HTTP CodeMeaningAction
200SuccessParse JSON response
400Bad requestValidate email format first
401Invalid API keyCheck x-api-key header
429Rate limit exceededBack off; upgrade plan if needed
500Server errorRetry with exponential backoff

Free tier: 100 verifications/day. Paid plans from $4.99/month for 5,000 checks. See checkmail1.com/#pricing.

8. Best Practices

Conclusion

Integrating CheckMail1's email verification API takes less than 10 minutes. You get real-time SMTP verification, disposable detection, MX record checks, and confidence scoring through a simple REST interface.

Start free today: checkmail1.com

🎯 Ready to clean your email list?
Sign up at checkmail1.com — free tier, no credit card.