API reference

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 }.