VeriMail Endpoints
Real-time email validation for clean data
Base URL & Authentication
All API requests must be made over HTTPS to the production environment. Plaintext HTTP requests will fail.
Base URL: https://api.verimail.io/v2
Authenticate using your project API key via the Authorization header. Keys can be generated in your VeriMail dashboard under Settings > API Access.
Authorization: Bearer vm_live_sk_8f9a2c1d4e5b6f7g8h9i0j1k2l3m4n5o
Available Endpoints
VeriMail exposes three core endpoints for single checks, bulk processing, and job monitoring.
Validates a single email address in real-time. Returns syntax, MX, SMTP, and disposable/role-based flags.
Submits up to 10,000 emails for asynchronous processing. Returns a job ID for tracking.
Retrieves the progress and results of a batch job using the provided job ID.
Request Parameters
Configure validation depth and output format using query or body parameters.
email (string, required): The address to validate.
smtp_verify (boolean, optional): Enable live SMTP handshake. Default: true.
format (string, optional): Response format. Values: json, csv. Default: json.
{
"email": "sarah.connor@techops.com",
"smtp_verify": true,
"format": "json"
}
emails (array, required): List of email strings. Max 10,000 per request.
webhook_url (string, optional): HTTPS endpoint for completion callbacks.
{
"emails": ["admin@startup.io", "billing@corp.net"],
"webhook_url": "https://hooks.yourapp.com/verimail-batch"
}
Response Formats & Codes
All successful responses return HTTP 200. Rate limits trigger 429, and malformed requests return 400 with detailed error messages.
{
"status": "valid",
"email": "sarah.connor@techops.com",
"mx_found": true,
"smtp_valid": true,
"disposable": false,
"role_based": false,
"risk_score": 0.05,
"processed_at": "2024-06-15T14:32:01Z"
}
{
"job_id": "jb_9f8e7d6c5b4a3210",
"status": "completed",
"total_records": 2,
"results_url": "https://api.verimail.io/v2/jobs/jb_9f8e7d6c5b4a3210/download",
"expires_at": "2024-06-22T14:32:01Z"
}
Error responses follow the RFC 7807 Problem Details standard. Include a retry_after header when hitting the 150 requests/minute quota.