Free Email Breach Check: see which breaches an address appears in

Enter an email address to see how many breaches it appears in, which sites were involved, and when the first and last one happened. Built on the same data as Abstract's Email Reputation API.
Enter an email address to check its breach history
Need inspiration? Try
Try
test@abstractapi.com
Check breaches
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Powered by the Email Reputation API
Checking
5
Results for
email
Get free credits, more data, and faster results

What is an email breach check?

An email breach check tells you whether an address has turned up in a known data breach, and if so, how many and which sites. Breach data gets traded and republished long after the incident, so an address can sit in a dump for years without its owner ever hearing about it. The check reads that published record and returns the count, the named sites, and the dates.

The questions an email breach check answers:

  • Has this address appeared in a known breach?
  • How many separate breaches is it in?
  • Which sites or services were breached?
  • When was the earliest breach?
  • When was the most recent one?
  • Does the exposure still matter today?

The count on its own is a blunt signal. What matters is which sites and when. An address in one forum breach from 2013 is a very different risk from one in four breaches, the most recent of them last year, including a payment provider.

How an email breach check works

When you submit an address, the check runs four steps:

  1. Format check. The address is validated first, so a typo comes back as a clear error rather than a clean result you might misread as good news.
  2. Breach corpus match. The address is matched against published breach data, which returns the total number of separate breaches it appears in.
  3. Site and date resolution. Where the record names them, the check returns the breached sites along with the first and last breach dates.
  4. Response. Everything comes back in a single request, ready to read on screen or export as a CSV.

What an email breach check tells you

What each field tells you:

Breach count. The number of separate breaches the address appears in. One is common for any address that has been in use for years. Several suggests an address that is old, widely reused, and worth protecting more carefully.

Breached sites. The named services whose leaked data included this address. This is the part that tells you what was probably exposed, because a forum leak and a payment provider leak carry very different consequences.

First breach date. How far back the exposure goes. An address that leaked a decade ago has had plenty of time to circulate through credential lists.

Last breach date. How recent the most recent exposure is. Anything in the last year or two is worth a password rotation on the accounts tied to the address.

What it does not tell you. The check does not reveal passwords and does not confirm that an account is currently compromised. It tells you the address was present in data that leaked, which is a risk signal rather than a verdict.

No single field is the answer on its own. Read the count alongside the dates and the named sites to judge whether the exposure still matters.

Use cases for an email breach check

Assessing account-takeover risk: An address that appears in several recent breaches is a more likely target for credential stuffing, which matters when the same person signs in to your service. Heavy breach history is a reason to ask for a second factor rather than to refuse the account.

Screening signups: Flag new accounts opening on addresses with a long leak history, and step up verification for them. The same check runs programmatically through the API at signup time, so nothing has to be done by hand.

Checking your own exposure: Look up your own address to see what is already public. If it appears in recent breaches, change the passwords on the accounts tied to it and turn on two-factor authentication where it is offered.

Support and account recovery: When a user reports a takeover, the breach record is useful context for how their credentials were most likely obtained, and for deciding what else to ask them to reset.

See what the API returns

Every breach check returns a structured JSON response. The breach count, the named sites and the first and last breach dates all come through the API. Here is what a request returns for an address:

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

Email breach check FAQ

What counts as a breach?

A breach is an incident where a service's user data was exposed and that data then became public or traded. The check counts an address as breached when it appears in one of those published datasets. It covers credential and account-data leaks rather than every security incident a company has ever had.

Can I check an email address for breaches for free?

Yes. The tool is free with no signup for individual checks, and the result exports as a CSV. For programmatic access, Abstract's Email Reputation API has a free tier you can start on without a credit card.

Which breaches does the check cover?

The check draws on published breach corpora, the same datasets that breach-notification services index. Coverage is strongest for large, publicly disclosed incidents. A breach that has never been disclosed or published cannot appear in any tool of this kind, including this one.

Is it legal to check an email address for breaches?

In most jurisdictions, yes. The check reads published breach data about the address and the owner is not notified. Using the result to harass or impersonate someone can cross into illegal territory depending on local law. Ordinary uses like checking your own exposure or screening signups are not restricted.

My address appears in a breach. What should I do?

Change the password on the breached service, and anywhere else you reused it. Turn on two-factor authentication where it is offered. Old breaches matter less than recent ones, but a reused password is what turns an old leak into a current problem.

How accurate is an email breach check?

The count and the dates come straight from published breach records, so they are as accurate as the disclosed data itself. The real limit is coverage rather than precision: an address can sit in an undisclosed breach and still show clean. Treat a clean result as no known exposure rather than proof of safety.

Need to check breach history in bulk?
stars rating
4.8 from 1,863 votes
The same check the tool runs, available as an API. No credit card required.
get free api key
No credit card required