Pricing Documentation Sign up Log in

API Reference

Domain Validation Endpoint

The domain endpoint allows you to check if a domain is used for disposable email addresses, along with additional details about the domain.

Endpoint

GET /domain/{domain}

Parameters

Parameter Type Required Description
domain string Yes The domain to check (e.g., github.com)

Request Example

curl -X GET "https://api.usercheck.com/domain/github.com" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

Success Response (200)

{
  "status": 200,
  "domain": "github.com",
  "domain_authority": 96,
  "domain_age_in_days": 6712,
  "mx": true,
  "mx_records": [
      { "hostname": "aspmx.l.google.com", "priority": 1 },
      { "hostname": "alt1.aspmx.l.google.com", "priority": 5 },
      { "hostname": "alt2.aspmx.l.google.com", "priority": 5 },
      { "hostname": "alt3.aspmx.l.google.com", "priority": 10 },
      { "hostname": "alt4.aspmx.l.google.com", "priority": 10 }
  ],
  "mx_providers": [
      { "slug": "google", "type": "mailbox", "grade": "professional" }
  ],
  "disposable": false,
  "public_domain": false,
  "relay_domain": 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 domain) 429: Rate limit exceeded
domain string The domain that was checked. This is the normalized form of the input domain.
domain_authority integer|null A 0–100 score indicating how established and credible a domain is. Higher scores indicate well-established domains with strong online presence. Lower scores may signal newly created or less reputable domains. The value is null when the score hasn't been determined yet. Pro Plan Only
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 domain is from a temporary or disposable email provider. 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. Only included in the response when the domain is disposable. Pro Plan Only
public_domain boolean Indicates whether the domain is a public email service like Gmail, Yahoo Mail, Outlook, etc.
relay_domain boolean Indicates whether the domain is used for email forwarding services. Email forwarding domains redirect emails to another address, and can sometimes be used to hide the recipient's actual email provider.
did_you_mean string|null Suggested correction if there's a likely typo in the domain name. This is useful for catching common misspellings of popular domains. Returns null if no suggestion is available.
blocklisted boolean Indicates whether the domain is on your account's custom blocklist. Allows you to maintain your own list of domains that you want to block. Pro Plan Only
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 onboarding
    • basic — 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 Domain Format (400)

{
  "status": 400,
  "error": "The domain is invalid"
}

Rate Limit Exceeded (429)

{
  "status": 429,
  "error": "Too many requests"
}
Previous
Authentication