API
Check addresses from your own app. Create a key under API keys (sign in with Google) and send it in the X-API-KEY header.
POST/api/verify_email
One address. Answers in a moment for domain-level problems; a mailbox check can take a few seconds.
curl -X POST https://kajuka.duckdns.org/api/verify_email \
-H "X-API-KEY: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"email": "someone@example.com"}'
{
"Email": "someone@example.com",
"Status": "Verified",
"Detail": "250 2.1.5 OK",
"Score": 100,
"Cached": false
}
Errors: 401 missing or wrong key, 400 no email given, 429 too many requests.
POST/api/verify_emails_batch
Up to 100 different addresses. Starts a job and returns at once.
curl -X POST https://kajuka.duckdns.org/api/verify_emails_batch \
-H "X-API-KEY: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"emails": ["a@example.com", "b@example.com"]}'
# {"job_id": "…", "status": "started"}
GET/api/check_status/<job_id>
Progress and the results so far. status is pending, running, complete or error.
GET/api/download_results/<job_id>
The full results as JSON, once the job is complete. Jobs are deleted after 3 days.
What the answers mean
| Status | Meaning | Score |
|---|---|---|
| ✓ Verified | The mail server accepts this mailbox. | 95–100 |
| ! Risky | A mistyped provider domain, or the server delayed its answer. | 10–65 |
| ✕ Invalid | Not an address, a throwaway provider, a domain that cannot receive mail, or a mailbox the server says does not exist. | 0–10 |
| ? Unknown | The server could not be asked or keeps its answers private. | 40 |
Good practice for sign-up forms: turn an address away only for Disposable Email, Syntax Error, Domain Invalid / No MX Records and Potential Typo. Big mail providers often refuse or throttle mailbox checks, and some domains accept every address, so a mailbox-level Invalid or Unknown should be a warning, not a block. If this service is slow or down, let the person through.
Limits
- Each key has its own per-minute and per-hour limit, plus 1 request per second.
- The page's single check allows 10 per minute per visitor.
- Results are kept for 7 days, so a repeated check is answered at once.