Search by task, endpoint, field, or error.
Email API
Format, domain, role, and a typo suggestion, on every call.
Pass an email address up to 254 characters. Malformed addresses return 400 invalid_request. A successful lookup returns format, domain, and role flags and counts as a normal request. The valid field does not establish mailbox deliverability.
Disposable is included on every call. didyoumean is a suggested address when the host looks like a known misspelling, or null. Deliverable and catchall live behind ?deep=true. Those calls use your plan's monthly email verification allowance. Free includes 100. Each deep request uses one verification.
Validate
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.email("jane+news@mit.edu", { deep: true });
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"email": "jane+news@mit.edu",
"didyoumean": null,
"valid": true,
"free": false,
"disposable": false,
"role": false,
"domain": "mit.edu",
"domain_type": "academic",
"domain_valid": true,
"deep": {
"deliverable": true,
"catchall": false,
"status": "deliverable",
"reason": "accepted",
"first_name": "Jane",
"no_reply": false,
"tag": "news",
"mail_provider": null
}
}Response fields
- emailstring
- Address checked
- didyoumeanstring or null
- Suggested address when the host is a known misspelling, else null
- validboolean
- Syntax valid
- freeboolean
- Consumer mailbox such as Gmail, Yahoo, Outlook.com, ISP mail, or iCloud
- disposableboolean
- Temporary or disposable provider
- roleboolean
- Role address (info@, support@, …)
- domainstring or null
- Host after @
- domain_typestring or null
- Reserved namespace of the host: academic, government, military, or null
- domain_validboolean or null
- Mail route found: MX, or A/AAAA when MX is absent. Explicit null MX is false.
Deep verification
Deeper signal for signup and outbound. Counts toward your plan's monthly email verification allowance. See Plans.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.email("jane+news@mit.edu", { deep: true });
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"email": "jane+news@mit.edu",
"didyoumean": null,
"valid": true,
"free": false,
"disposable": false,
"role": false,
"domain": "mit.edu",
"domain_type": "academic",
"domain_valid": true,
"deep": {
"deliverable": true,
"catchall": false,
"status": "deliverable",
"reason": "accepted",
"first_name": "Jane",
"no_reply": false,
"tag": "news",
"mail_provider": null
}
}Deep fields
- deep.deliverableboolean or null
- Mailbox likely exists. Null when the mailbox check did not complete
- deep.catchallboolean or null
- Domain accepts all addresses. Null when the mailbox check did not complete
- deep.statusstring or null
- Mailbox result: deliverable, undeliverable, risky, or null when unavailable.
- deep.reasonstring or null
- Why the address received this result, such as mailbox_full or mailbox_not_found. Null when unavailable.
- deep.first_namestring or null
- Suggested first name from the address, or null when ambiguous. Not verified identity.
- deep.no_replyboolean or null
- Address indicates replies are not expected. Null when the input cannot be parsed.
- deep.tagstring or null
- Text after the plus sign, or null. The original address is preserved.
- deep.mail_providerstring or null
- Mail service handling the address, such as Google or Microsoft. Null when not identified.
Build with Email
- Check an email as someone types
- Verify email deliverability on the server
- Turn inbound emails into CRM contact drafts
Questions? Email