API Documentation
Integrate email verification into your application in minutes. Simple REST API with comprehensive examples.
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 FastMCP 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": "test@example.com"}'
# 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=test@example.com"
# Response (Returns dual keys: email and mail)
{
"error": 0,
"message": "Verified test@example.com successfully",
"status": "VALID",
"email": "test@example.com",
"mail": "test@example.com",
"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 = "test@example.com"
# 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 = 'test@example.com';
// 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 = 'test@example.com';
$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. 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 across worker cluster
Parameters
file(file)required– Text (.txt) or CSV (.csv) file with one email per line (min 2 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 receive messagesINVALIDMailbox does not exist or is disabledDISPOSABLETemporary email addressROLE_ACCOUNTRole-based email (info@, support@)CATCH_ALLDomain accepts all emailsFULL_INBOXMailbox is fullUNKNOWNCould not verifyAuthentication
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.