Everything you need to integrate PureMail into your application
RESTful API for real-time email verification
All API requests require authentication using your API key. Include it in the Authorization header:
Authorization: Bearer YOUR_API_KEYGet your API key from your dashboard after signing up.
/api/v1/verify/singleVerify a single email address in real-time.
{
"email": "user@example.com"
}curl -X POST https://puremail.com/api/v1/verify/single \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'{
"email": "user@example.com",
"valid": true,
"syntax_valid": true,
"dns_valid": true,
"smtp_valid": true,
"disposable": false,
"role_based": false,
"free_provider": false,
"score": 95,
"reason": "Valid email address"
}validOverall validity (boolean)syntax_validEmail syntax is correctdns_validDomain has valid MX recordssmtp_validMailbox exists (SMTP check)disposableTemporary/disposable emailrole_basedRole-based (info@, support@)free_providerFree email providerscoreQuality score (0-100)/api/v1/verify/bulkVerify multiple emails in batch. Returns a job ID for tracking progress.
{
"emails": [
"user1@example.com",
"user2@example.com",
"user3@example.com"
]
}{
"jobId": "job_abc123xyz",
"status": "processing",
"total": 3,
"message": "Verification job started"
}/api/v1/verify/status/:jobIdCheck the progress of a bulk verification job.
curl -X GET https://puremail.com/api/v1/verify/status/job_abc123xyz \ -H "Authorization: Bearer YOUR_API_KEY"
{
"jobId": "job_abc123xyz",
"status": "completed",
"progress": 100,
"total": 3,
"processed": 3,
"valid": 2,
"invalid": 1
}API requests are rate-limited to ensure fair usage and system stability.
Step-by-step guides for popular platforms and frameworks
const verifyEmail = async (email) => {
const response = await fetch(
'https://puremail.com/api/v1/verify/single',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ email })
}
);
return await response.json();
};
// Usage
const result = await verifyEmail('user@example.com');
if (result.valid && !result.disposable) {
// Email is good to use
}import requests
def verify_email(email):
response = requests.post(
'https://puremail.com/api/v1/verify/single',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={'email': email}
)
return response.json()
# Usage
result = verify_email('user@example.com')
if result['valid'] and not result['disposable']:
# Email is good to use
pass<?php
function verifyEmail($email) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
'https://puremail.com/api/v1/verify/single');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
json_encode(['email' => $email]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
$result = verifyEmail('user@example.com');
?>require 'net/http'
require 'json'
def verify_email(email)
uri = URI('https://puremail.com/api/v1/verify/single')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = { email: email }.to_json
response = http.request(request)
JSON.parse(response.body)
end
result = verify_email('user@example.com')PureMail achieves 99%+ accuracy through multi-layered verification including syntax validation, DNS/MX record checks, SMTP verification, and disposable email detection. Our algorithms are continuously updated to maintain the highest accuracy standards.
When your credit balance reaches zero, API requests will return a 402 error. You can purchase additional credits anytime from your dashboard. Credits never expire, so you can buy in bulk and use them at your own pace.
Single email verification typically completes in under 5 seconds. We've optimized the API for speed by running checks in parallel and using smart caching. Bulk verifications are processed asynchronously to handle large lists efficiently.
Yes! Our web dashboard offers single email verification and bulk CSV upload capabilities. You can verify emails through our user-friendly interface without writing any code.
Absolutely. All API requests use HTTPS encryption. We're GDPR-compliant and never store email addresses longer than necessary. We don't sell or share your data with third parties. Your verification history is private and only accessible to you.
A valid email has correct syntax, a domain with valid MX records, and an existing mailbox. An invalid email fails one or more checks (syntax errors, non-existent domain, or mailbox doesn't exist). We also flag risky emails like disposable addresses and role-based emails.
Credits are non-refundable, but they never expire. You can use them whenever you need them, whether that's tomorrow or next year. We recommend starting with a smaller package to test our service before committing to larger purchases.
Yes! Our pricing automatically includes volume discounts. The more credits you purchase, the lower the per-credit cost. For enterprise needs (5M+ credits), contact our sales team for custom pricing and dedicated support.
PureMail supports all email providers worldwide including Gmail, Outlook, Yahoo, corporate domains, and international providers. Our verification engine works with any valid email address regardless of provider.
We offer email support for all users. Premium customers (50K+ credits) get priority support with faster response times. You can reach us through the support section below or from your dashboard.
Our team is here to help you succeed
Get help from our support team. We typically respond within 24 hours.
support@puremail.devBrowse our comprehensive API documentation and guides above.
View API Docs