Email Validation API
Summary
This API validates and assesses email addresses in real time to ensure high data quality across online forms, CRMs, and internal workflows. It operates across multiple verification tiers, performing rapid syntax and domain checks (MX records), identifying disposable domains and role-based accounts (e.g., info@, sales@). For ultimate accuracy, the API conducts a live SMTP RCPT check to confirm the specific inbox exists and is actively receiving mail, allowing systems to instantly eliminate bounced emails, optimize user signups and maintain a clean contact database.
Download Full API Specification (PDF)
Download OAS OpenAPI Specification (YAML)
Endpoint
| Method | URL |
|---|---|
POST | https://api.data-checks.com/v1/email |
Request body (JSON)
| Field | Meaning |
|---|---|
email | Address to validate. |
level | Validation depth (domain or mailbox). |
allow_role_address | Allow shared inboxes such as info@ or sales@. |
Validation depth
| Level | What it checks | Best for |
|---|---|---|
domain |
Checks format, disposable-domain rules, role-account signals, and MX records. No SMTP checks. | Fast signup checks at the syntax and domain level. |
mailbox |
Same as domain, then one live SMTP RCPT for the submitted address to verify the inbox exists and is actively receiving mail. |
Full check to verify if the specific inbox exists and is actively receiving mail. |
Request example
POST https://api.data-checks.com/v1/email
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json
{
"email": "Test@Example.com",
"level": "mailbox",
"allow_role_address": false
}
Successful response - HTTP status 200
| Field | Meaning |
|---|---|
input | Original submitted value. |
normalized | Canonical form (lower-case trimmed email). |
is_valid | Whether the input is considered valid. |
reason | The specific reason code explaining why the email address is considered valid or invalid. |
remaining_credits | Email credits remaining after this validation. |
Successful response example
HTTP/1.1 200 OK
{
"input": "Test@Example.com",
"normalized": "test@example.com",
"is_valid": true,
"reason": "mailbox_found",
"remaining_credits": 99
}
