Email validation
Check whether an address is deliverable before you send to it. Each validation is metered against your plan's monthly allowance. Paths are relative to https://app.blacklistguard.com/api/v1.
Validate one address
curl -X POST https://app.blacklistguard.com/api/v1/validations \
-H "X-API-Key: efk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "email": "user@example.com" }'
Optional advanced parameters routing_rule_id or virtual_mta_ip pin the SMTP probe to one of your dedicated IPs. The response is the full result:
{
"email": "user@example.com",
"status": "valid",
"risk_score": 3,
"format_valid": true,
"domain_valid": true,
"mx_record_found": true,
"email_exists": true,
"is_catch_all": false,
"is_disposable": false,
"is_role_based": false,
"is_complainer": false,
"is_honeypot": false
}
status is one of valid, invalid, catch-all, disposable, role-based, or unknown. risk_score is an integer from 0 (safe) to 10 (risky). email_exists and a detailed smtp_response object are included only when an SMTP probe was performed.
Validate in bulk
POST /validations/bulk (multipart, field "file")
Upload a file of addresses; runs as a background job and returns a job_id. Track progress and download results via the jobs endpoints.
History
GET /validations/history
Returns recent validations: [{ email, status, risk_score, cost, created_at }].
Usage
GET /validations/usage
Returns { cost_per_validation, hour_used, hour_limit, month_used, month_limit, rate_limit_enabled }.
Stats
GET /validations/stats?days=30
Returns { totals: { total, valid, invalid, catch_all, disposable, role_based, unknown }, daily: [{ date, ... }], days, since }.