API Reference
Email Validation Endpoint
The email endpoint allows you to check if an email address uses a disposable domain, along with additional details about the email and domain.
Endpoint
GET /email/{email}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | The email address to check (e.g., [email protected]) |
Request Example
curl -X GET "https://api.usercheck.com/email/[email protected]" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
Success Response (200)
{
"status": 200,
"email": "[email protected]",
"normalized_email": "[email protected]",
"domain": "example.com",
"domain_age_in_days": 1234,
"mx": false,
"mx_records": [
{ "hostname": "aspmx.l.google.com", "priority": 1 },
{ "hostname": "alt1.aspmx.l.google.com", "priority": 5 }
],
"mx_providers": [
{ "slug": "google", "type": "mailbox", "grade": "professional" }
],
"disposable": false,
"public_domain": false,
"relay_domain": false,
"alias": false,
"role_account": false,
"spam": false,
"did_you_mean": null,
"blocklisted": false
}
Response Fields
| Field | Type | Description |
|---|---|---|
status |
integer | HTTP status code indicating the result of the API request. 200: Successful request 400: Invalid input (malformed email) 429: Rate limit exceeded |
email |
string | The email address that was checked. This is the normalized form of the input email. |
normalized_email |
string | The normalized form of the input email. |
domain |
string | The domain part of the email address that was extracted and analyzed. |
domain_age_in_days |
integer|null | The number of days since the domain was registered. Will be null if the age is unknown. |
mx |
boolean | Indicates whether the domain has valid MX (Mail Exchange) records. A value of true means the domain is configured to receive email. |
mx_records |
array | The MX records for the domain. Empty if mx is false. |
mx_providers |
array | Third-party services the domain delegates its MX records to. Empty when the domain manages its own MX infrastructure or uses an unrecognized setup. See MX Providers below. |
disposable |
boolean | Indicates whether the email uses a temporary or disposable email domain. These domains allow users to create temporary email addresses that typically expire after a short period, and are commonly used to bypass verification systems. |
disposable_provider |
string | The domain of the disposable email provider. This field is only available on Pro plans and is only included in the response when the domain is disposable. |
public_domain |
boolean | Indicates whether the email uses a public email service like Gmail, Yahoo Mail, Outlook, etc. |
relay_domain |
boolean | Indicates whether the email uses a domain that provides email forwarding services. Email forwarding domains redirect emails to another address, and can sometimes be used to hide the recipient's actual email provider. |
alias |
boolean | [DEPRECATED] Indicates whether the email contains an alias (e.g., [email protected]). Use normalized_email instead - compare it with the original email field to detect aliases. This field will be removed in a future API version. |
role_account |
boolean | Indicates whether the email is a role account rather than a personal account. Role accounts (e.g., admin@, support@, info@) are typically shared by multiple people within an organization. |
did_you_mean |
string|null | Suggested correction if there's a likely typo in the email address. This is useful for catching common misspellings of popular domains or obvious typing errors. Returns null if no suggestion is available. |
blocklisted |
boolean | Indicates whether the email's domain is on your account's custom blocklist. This feature is only available on Pro plans and allows you to maintain your own list of domains that you want to block. |
spam |
boolean | Indicates whether the domain is associated with spam or other abusive activities. This property leverages our extensive data intelligence to identify domains that may appear legitimate but exhibit suspicious patterns or have been flagged in our system. It serves as a supplementary signal to the disposable and blocklist checks. |
MX Providers
mx_providers identifies the third-party services a domain delegates its MX records to (e.g., Google Workspace, Microsoft 365, Mimecast). Domains that manage their own MX infrastructure return an empty array, since they are not delegating MX to an external provider.
When mx_providers is empty
An empty array means the domain is not delegating email to a recognized third-party service. You can combine it with other response fields to understand why:
| Scenario | Fields |
|---|---|
| Public email service running its own infrastructure | public_domain: true |
| Self-hosted or unrecognized mail setup | public_domain: false, mx: true |
| No mail infrastructure at all | mx: false |
Provider object
Each entry in mx_providers contains:
slug(string) — A unique, URL-safe identifier for the provider (e.g.,google,fastmail,mimecast).type(string) — The provider category. Possible values:mailbox— Full mailbox provider (e.g., Google Workspace, Microsoft 365, Fastmail)hosting— Web hosting provider with bundled email (e.g., GoDaddy, OVH, Hostinger)email_api— Transactional/programmatic email service (e.g., Mailgun, SendGrid, Postmark)security_gateway— Email security or filtering gateway (e.g., Mimecast, Barracuda, Proofpoint)forwarding— Email forwarding/relay service (e.g., Cloudflare Email Routing, ImprovMX, SimpleLogin)
grade(string) — Reflects how much commitment is typically required to use the provider. Higher grades suggest the domain owner has invested more effort in their email setup. Possible values:enterprise— High-touch providers with sales processes and contracts (e.g., Mimecast, Proofpoint)professional— Established paid providers (e.g., Google Workspace, Microsoft 365)standard— Mid-range providers with moderate onboardingbasic— Low barrier to entry, minimal verification (e.g., free bundled hosting email)
A domain may have multiple providers when its MX records point to different services (e.g., a mailbox provider alongside a security gateway). Providers are ordered by the priority of the MX record they were detected from.
Error Responses
Invalid Email Format (400)
{
"status": 400,
"error": "The email address is invalid."
}
Rate Limit Exceeded (429)
{
"status": 429,
"error": "Too many requests"
}