← Docs

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

GET
api.parseapi.com/email/{email}
Format, domain, role, disposable, and a typo suggestion. Deep adds deliverable and catchall
Explore
Parameters 2
emailstring · path · required

Email address

deepboolean · query · optional

When true, include optional detail in deep. Access depends on the endpoint: pooled detail, an included paid-plan profile, or a metered check. Core values stay unchanged.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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?

Example response
{
  "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?

Example response
{
  "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

All tutorials →

Questions? Email