API Documentation
Integrate email verification into your application in minutes. Simple REST API with comprehensive examples.
Documentation Portals
Interactive REST API Docs
Explore detailed endpoint specifications, batch upload guides, webhook signatures, error codes, and code samples in cURL, Python, Node.js, and Go.
Model Context Protocol (MCP) Docs
Connect MailVeri directly into AI assistants like Claude Desktop, Cursor, Windsurf, Claude Code, and Antigravity with one-click setup.
Quick Start
Get your API key
Sign up for a free account and copy your API key or MCP server URL from the Developer Hub.

Make your first request
Use the API endpoint with your key to verify any email address.
# Option 1: JSON payload (Recommended)
curl -X POST "https://api.mailveri.com/v1/verify-mail/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
# Option 2: URL-encoded / Form Data (Quick cURL & Webhooks)
curl -X POST "https://api.mailveri.com/v1/verify-mail/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "[email protected]"
# Response (Returns dual keys: email and mail)
{
"error": 0,
"message": "Verified [email protected] successfully",
"status": "VALID",
"email": "[email protected]",
"mail": "[email protected]",
"balance": 999
}Handle the response
Parse the JSON response and use the verification status in your application.
Code Examples
Python
import requests
API_KEY = "YOUR_API_KEY"
email = "[email protected]"
# Option 1: JSON payload (Recommended)
response = requests.post(
"https://api.mailveri.com/v1/verify-mail/",
json={"email": email},
headers={"Authorization": f"Bearer {API_KEY}"}
)
# Option 2: Form data (also supported: data={"email": email})
# response = requests.post("https://api.mailveri.com/v1/verify-mail/", data={"email": email}, headers={"Authorization": f"Bearer {API_KEY}"})
result = response.json()
print(f"Status: {result['status']}")
print(f"Remaining Credits: {result['balance']}")JavaScript
const API_KEY = 'YOUR_API_KEY';
const email = '[email protected]';
// Option 1: JSON payload (Recommended)
const response = await fetch(
'https://api.mailveri.com/v1/verify-mail/',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ email: email })
}
);
// Option 2: URL-encoded form data is also supported:
// body: new URLSearchParams({ email: email })
const result = await response.json();
console.log('Status:', result.status);
console.log('Remaining Credits:', result.balance);PHP
<?php
$apiKey = 'YOUR_API_KEY';
$email = '[email protected]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.mailveri.com/v1/verify-mail/");
curl_setopt($ch, CURLOPT_POST, true);
// Option 1: JSON payload (Recommended)
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['email' => $email]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $apiKey,
"Content-Type: application/json"
]);
// Option 2: Form-encoded (also supported)
// curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['email' => $email]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
echo "Status: " . $result['status'];
echo "Balance: " . $result['balance'];
?>API Endpoints
/v1/verify-mail/Verify a single email address in real time (Rate limit: 10 requests/second, up to 5 concurrent checks). Accepts application/json (recommended) or form-urlencoded.
Parameters
email(string)required– Email address to verify (legacy alias "mail" is also accepted)/v1/verify-mails/Upload a file for distributed bulk verification (up to 1,000,000 emails per batch) with optional webhook callback on completion.
Parameters
file(file)required– Text (.txt), CSV (.csv), or Excel (.xlsx) file with one email per line (min 2 emails, up to 1,000,000 emails, max 100MB)/v1/get-status/Get verification progress percentage and result download link
Parameters
id(string)required– Job ID returned from /v1/verify-mails//v1/download-zip/Download full compressed ZIP archive containing categorized result lists
Parameters
id(string)required– Job ID from /v1/verify-mails//v1/download-result/Download custom filtered CSV results by deliverability status and column format
Parameters
id(string)required– Job ID from /v1/verify-mails/format(string)– Set to 'csv' for filtered CSV exportstatus(string)– Filter statuses (e.g. 'VALID,ROLE_ACCOUNT', 'VALID')columns(string)– Layout: 'original' (default), 'compact', or 'email'/v1/get-balance/Get current account credit balance
/v1/delete-list/Cancel an active verification or delete a completed list from storage
Parameters
id(string)required– Job ID from /v1/verify-mails/Response Status Codes
VALIDEmail exists and can actively receive messagesINVALIDMailbox does not exist, is disabled, or has syntax/MX errorsDISPOSABLETemporary or burner email address (100,000+ domains blocked)ROLE_ACCOUNTVerified deliverable role address (info@, contact@, support@) — only returned after confirming the mailbox is VALID and not catch-allCATCH_ALLDomain accepts all incoming emails (detected across custom domains, Google Workspace & Microsoft 365 at 1 credit flat)FULL_INBOXMailbox exists but is over storage quotaUNKNOWNCould not verify (0 credits charged on real-time API; 100% auto-refunded on batch jobs)Authentication
All API requests require authentication using a Bearer token. Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYGet your API key from the MailVeri dashboard.
Ready to integrate?
Get 1,000 free API credits when you sign up. Start building in minutes.