Free MX Record Lookup: Check Any Domain's MX Records

Look up the mail exchange records for any domain. Check which mail servers accept email, verify their priority, and confirm the domain can receive messages.
Enter any domain to start
Need inspiration? Try
abstractapi.com
Lookup MX record
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Checking
5
Results for
email
MX Record:
MX record
Registrar:
Registrar
MX Valid:
MX valid
SMTP Valid:
SMTP valid
Catch-All:
Catch-All
Deliverability:
Deliverability
Get free credits, more data, and faster results

What is an MX record lookup?

MX stands for Mail Exchange. An MX record is a DNS record that tells sending mail servers where to deliver email for a domain. Every domain that receives email has at least one MX record pointing to a mail server hostname.

An MX lookup queries a domain's DNS and returns:

  • The mail server hostnames that accept email for the domain.
  • The priority of each server (lower numbers are tried first).
  • Whether the servers are reachable and configured correctly.

If a domain has no MX records, it cannot receive email. This is one of the first checks in any email verification workflow.

How MX record lookup works

When you submit a domain, the lookup runs three steps:

  1. DNS query. The tool sends a DNS query for MX records on the domain. The authoritative name server returns all MX entries with their priority values and server hostnames.
  2. Server validation. Each mail server in the MX record list is checked for reachability. The tool connects to the server on port 25 and verifies it responds to SMTP commands. An MX record that points to an unreachable server means email delivery will fail.
  3. Response. The result includes the full list of MX records, their priorities, and whether the mail servers are valid. Additional context like SMTP status, SPF configuration, and domain age helps you assess overall email readiness.


MX records only tell you where email should be delivered. To confirm a specific address exists at that domain, use an email verifier that performs SMTP mailbox checks.

How to read MX records

An MX record has two parts: a priority value and a mail server hostname.

Priority determines the order mail servers are tried. A domain with MX records at priority 10 (aspmx.l.google.com) and priority 20 (alt1.aspmx.l.google.com) will receive mail at the priority-10 server first. If that server is down, the sender retries at priority 20.

The hostname reveals the email provider. Common patterns:

  • aspmx.l.google.com: Google Workspace
  • mail.protection.outlook.com: Microsoft 365
  • mx.zoho.com: Zoho Mail
  • inbound-smtp.us-east-1.amazonaws.com: Amazon SES

Most domains have 2-5 MX records for redundancy. A single MX record is a single point of failure: if that server goes down, all inbound email bounces until it recovers.

Use cases for MX record lookup

Email deliverability verification: Before sending a campaign or onboarding a new contact, check that the recipient's domain has valid MX records. A domain with no MX records or records pointing to unreachable servers will bounce every message you send. Checking upfront saves your sender reputation and reduces bounce rates.

Domain and DNS troubleshooting: When email stops working, MX records are the first thing to check. Misconfigured priorities, deleted records, or records pointing to decommissioned servers are common causes of delivery failure. An MX lookup shows the current state of the records so you can pinpoint the problem without logging into the DNS console.

Email provider identification: MX records tell you which email service a domain uses. This matters for sales teams qualifying leads (a company on Google Workspace signals different things than one on a custom mail server), for deliverability teams adjusting send strategy by provider, and for security teams assessing a domain's email infrastructure.

Fraud and phishing detection: Newly registered domains with no MX records or records pointing to free hosting are common in phishing. Checking MX records during email verification helps flag suspicious domains before they reach your users. Combined with domain age data, MX records provide a fast signal for domain trust.

See what the API returns

Every MX record lookup returns a structured JSON response. Here is what a request returns for a domain:

Response parameters

email_address

String
The email address you submitted for analysis.

email_deliverability.status

String
Whether the email is considered deliverable, undeliverable, or unknown.

email_deliverability.status_detail

String
Additional detail on deliverability (e.g., inbox_full, full_mailbox, invalid_format).

email_deliverability.is_format_valid

Boolean
Is true if the email follows the correct format.

email_deliverability.is_smtp_valid

Boolean
Is true if the SMTP check was successful.

email_deliverability.is_mx_valid

Boolean
Is true if the domain has valid MX records.

email_deliverability.mx_records

Array
List of MX records associated with the domain.

email_quality.score

Float
Confidence score between 0.01 and 0.99 representing email quality.

email_quality.is_free_email

Boolean
Is true if the email is from a known free provider like Gmail or Yahoo.

email_quality.is_username_suspicious

Boolean
Is true if the username appears auto-generated or suspicious.

email_quality.is_disposable

Boolean
Is true if the email is from a disposable email provider.

email_quality.is_catchall

Boolean
Is true if the domain is configured to accept all emails.

email_quality.is_subaddress

Boolean
Is true if the email uses subaddressing (e.g., user+label@domain.com).

email_quality.is_role

Boolean
Is true if the email is a role-based address (e.g., info@domain.com, support@domain.com).

email_quality.is_dmarc_enforced

Boolean
Is true if a strict DMARC policy is enforced on the domain.

email_quality.is_spf_strict

Boolean
Is true if the domain enforces a strict SPF policy.

email_quality.minimum_age

Integer
Estimated age of the email address in days, or null if unknown.

email_sender.first_name

String
First name associated with the email address, if available.

email_sender.last_name

String
Last name associated with the email address, if available.

email_sender.email_provider_name

String
Name of the email provider (e.g., Google, Microsoft).

email_sender.organization_name

String
Organization linked to the email or domain, if available.

email_sender.organization_type

String
Type of organization (e.g., company).

email_domain.domain

String
Domain part of the submitted email address.

email_domain.domain_age

Integer
Age of the domain in days.

email_domain.is_live_site

Boolean
Is true if the domain has a live website.

email_domain.registrar

String
Name of the domain registrar.

email_domain.date_registered

Datetime
Date when the domain was registered.

email_domain.date_last_renewed

Datetime
Last renewal date of the domain.

email_domain.date_expires

Datetime
Expiration date of the domain registration.

email_domain.is_risky_tld

Boolean
Is true if the domain uses a top-level domain associated with risk.

email_risk.address_risk_status

String
Risk status of the email address: low, medium, or high.

email_risk.domain_risk_status

String
Risk status of the domain: low, medium, or high.

email_breaches.total_breaches

Integer
Total number of data breaches involving this email.

email_breaches.date_first_breached

Datetime
Date of the first known breach.

email_breaches.date_last_breached

Datetime
Date of the most recent breach.

email_breaches.breached_domains

Array
List of breached domains.

email_breaches.breached_domains[].domain

String
Domain affected by the breach.

email_breaches.breached_domains[].date_breached

Datetime
Date when the breach occurred.

API Endpoint

curl --request GET \
  --url https://emailreputation.abstractapi.com/v1
{
  "email_address": "benjamin.richard@abstractapi.com",
  "email_deliverability": {
    "status": "deliverable",
    "status_detail": "valid_email",
    "is_format_valid": true,
    "is_smtp_valid": true,
    "is_mx_valid": true,
    "mx_records": [
      "gmail-smtp-in.l.google.com",
      "alt3.gmail-smtp-in.l.google.com",
      "alt4.gmail-smtp-in.l.google.com",
      "alt1.gmail-smtp-in.l.google.com",
      "alt2.gmail-smtp-in.l.google.com"
    ]
  },
  "email_quality": {
    "score": 0.8,
    "is_free_email": false,
    "is_username_suspicious": false,
    "is_disposable": false,
    "is_catchall": true,
    "is_subaddress": false,
    "is_role": false,
    "is_dmarc_enforced": true,
    "is_spf_strict": true,
    "minimum_age": 1418
  },
  "email_sender": {
    "first_name": "Benjamin",
    "last_name": "Richard",
    "email_provider_name": "Google",
    "organization_name": "Abstract API",
    "organization_type": "company"
  },
  "email_domain": {
    "domain": "abstractapi.com",
    "domain_age": 1418,
    "is_live_site": true,
    "registrar": "NAMECHEAP INC",
    "registrar_url": "http://www.namecheap.com",
    "date_registered": "2020-05-13",
    "date_last_renewed": "2024-04-13",
    "date_expires": "2025-05-13",
    "is_risky_tld": false
  },
  "email_risk": {
    "address_risk_status": "low",
    "domain_risk_status": "low"
  },
  "email_breaches": {
    "total_breaches": 2,
    "date_first_breached": "2018-07-23T14:30:00Z",
    "date_last_breached": "2019-05-24T14:30:00Z",
    "breached_domains": [
      { "domain": "apollo.io", "date_breached": "2018-07-23T14:30:00Z" },
      { "domain": "canva.com", "date_breached": "2019-05-24T14:30:00Z" }
    ]
  }
}

API Response

MX record lookup FAQ

What is an MX record?

An MX (Mail Exchange) record is a DNS record that specifies which mail servers accept email for a domain. Each MX record includes a priority value and a server hostname. When someone sends an email to your domain, the sending server queries your MX records to find where to deliver the message. Without valid MX records, a domain cannot receive email.

How do I check MX records for a domain?

Enter any domain name in the lookup tool above. It queries the domain's DNS and returns all MX records with their priority values and server hostnames. You can also check MX records from the command line using nslookup (nslookup -type=mx domain.com) or dig (dig mx domain.com), but the online tool is faster and shows additional context like SMTP validity and domain age.

What does MX record priority mean?

MX priority is a number that tells sending mail servers which server to try first. Lower numbers have higher priority. If the primary server (lowest priority value) is unavailable, the sender falls back to the next server in the list. For example, a domain with MX records at priority 10 and 20 will receive mail at the priority-10 server first.

Why would a domain have no MX records?

A domain with no MX records cannot receive email. This happens when the domain was registered without email service, when MX records were accidentally deleted, or when the domain is used only for a website. Some domains intentionally skip MX records if they only send email (transactional or marketing) and never receive it.

Can I tell which email provider a domain uses from MX records?

Yes. MX record hostnames reveal the email provider. Google Workspace domains point to aspmx.l.google.com, Microsoft 365 domains point to mail.protection.outlook.com, and Zoho domains point to mx.zoho.com. The lookup tool shows the full MX record list so you can identify the provider at a glance.

Need MX lookups on thousands of domains?
stars rating
4.8 from 1,863 votes
The same lookup the tool runs, available as an API. No credit card required.
get free api key
No credit card required