Run every diagnostic from your own code. JSON in, JSON out, same results as the dashboard.
Create an API key in your dashboard under API Keys and send it as a bearer token. Keys are secrets — never put them in front-end code.
Every response has success, data and meta. Reports use the statuses pass, warning, fail, unknown and info. unknown means a check could not be completed and is never counted as a pass.
| HTTP | code | Meaning |
|---|---|---|
| 401 | unauthenticated | Missing or invalid API key |
| 402 | insufficient_credits | Not enough credits |
| 403 | service_disabled | The tool is disabled |
| 422 | validation_failed / invalid_target | Bad input, or a private / internal target |
| 429 | rate_limited | Too many requests (see Retry-After) |
Each key has a per-minute limit (headers X-RateLimit-Limit / X-RateLimit-Remaining) and every tool has its own per-minute limit. Credits are deducted when a check starts and refunded automatically if it fails. Current costs:
| Service | Credits |
|---|---|
| Email verification | 1 per email |
| Problem Solver | 3 (first 3/day free) |
| Inbox Checker | 2 (first 5/day free) |
| Header Analyzer | free |
| Bounce Explainer | free |
| Domain Checker | 2 (first 5/day free) |
| MX Checker | free |
| SPF Checker | free |
| DKIM Checker | free |
| DMARC Checker | free |
| PTR / Reverse DNS | free |
| SMTP Tester | 1 (first 10/day free) |
| Blacklist Checker | 1 (first 10/day free) |
| IP / Domain Reputation | 2 (first 5/day free) |
Requests wait for the result by default. For slow checks (domain, SMTP, blacklist) you may add "async": true: you get 202 with an id, then poll GET /scans/{id} until status is completed or failed.
/email/verifyVerify one email address.
/email/checkFull technical diagnosis of an email address.
/domain/checkDomain Email Health Report.
/mx/checkMX records, IPs, reverse DNS, optional SMTP.
/spf/checkSPF validation, lookup count, include tree. Optional IP test.
/dkim/checkDKIM selector lookup or discovery.
/dmarc/checkDMARC policy, tags and reporting.
/blacklist/checkIP or domain blocklist check.
/smtp/checkSMTP connection, EHLO, STARTTLS and certificate.
/ptr/checkReverse DNS and FCrDNS.
/header/analyzeAnalyse raw email headers or a full message.
/bounce/explainExplain a bounce / SMTP error.
/reputation/checkReputation indicators for an IP or domain.
/problem/solvePrioritised fix plan for a problem (spam_folder, bouncing, not_receiving, blacklisted, new_domain, bulk_rules, spoofing).
/scans/{id}Fetch a report by id (for async requests).
/scansList your reports (paginated).
/accountCredits and available services with their cost.
The original endpoints (GET /api/validate, POST /api/validate/bulk, POST /api/batch/upload, /api/jobs) keep working unchanged with the same keys. See the legacy documentation.