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("hello@gmail.com");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"email": "hello@gmail.com",
"didyoumean": null,
"valid": true,
"free": true,
"disposable": false,
"role": true,
"domain": "gmail.com",
"domain_type": null,
"domain_valid": true
}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.
Run this Deep example with your own key. Check this API's access requirements and pricing before running.
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