Breach exposure
Breach checker
Enter an email address for a two-layer check. Layer one examines the exact mailbox: canonicalization of plus-tags and dots, public Gravatar profile existence, and EmailRep reputation and breach intelligence, including whether leaked credentials were observed. Layer two matches the domain, its registrable root, and the mail provider against an index of major publicly reported breaches.
Two layers of checking: the exact address against public intelligence sources (Gravatar, EmailRep), then the domain and mail provider against our curated breach index.
Data breaches have shifted from rare events to routine background noise: every year several dozen incidents each exposing tens of millions of records are independently verified, and the aggregated compilations circulating among criminals now exceed twenty billion unique credential pairs. For an individual, the relevant question is not whether breaches exist, but whether the addresses you actually use appear in the ones that were reliably documented.
The checker on this page answers that at two resolutions. First it evaluates the exact mailbox you enter against live intelligence sources that have seen the address in breach corpora or credential lists. Then it matches the domain, its registrable root and the mail provider against our curated index of 55-plus major publicly reported incidents so you see the blast radius even when the per-address signal is quiet.
What counts as a breach here, and what does not
Our index deliberately restricts itself to incidents with credible public reporting, official company disclosures, regulatory filings, or independent reporting that was later acknowledged. Rumoured dumps without corroboration are excluded, even when they circulate loudly, because acting on unverified claims creates more harm than help.
Each recorded incident stores the discovery window, affected scale, exposed data types and severity, and notes whether passwords, financial data or government IDs were among the compromised fields. That structure is why a domain match is not a generic warning: it points to a named service, a timeframe during which having an account mattered, and a concrete next action.
How to read your result
Address-level intelligence comes first. A clean result there means neither of the live sources currently associates this mailbox with breach datasets they have ingested. It is encouraging but not proof of absence. New aggregations surface continuously and providers have rate limits. A positive result, especially one flagging leaked credentials, means this specific mailbox surfaced somewhere and the password paired with it should be rotated everywhere it was reused, starting with the mailbox itself.
Domain and provider matches come second and are best read as service risk: if you held an account on the listed service around the incident date, assume your record was in the affected set and rotate that service's password even if the address-level check was negative. Prioritize by sensitivity: email, banking and cloud storage before forums and shopping accounts, and revoke active sessions so any live session held by an adversary is terminated.
- Present in breach with leaked credentials: immediate rotation everywhere the password was reused, plus enabling a hardware key or app-based second factor.
- Present at service but without credential flag: rotate the service password and confirm no unknown forwarding or recovery contacts were added.
- No matches in index: maintain unique passwords via a manager and recheck quarterly, since datasets are trailing indicators.
Why both layers matter
Single-layer checkers miss an important asymmetry. Generic domain matching alone over-warns people who never used the affected service. Pure per-address lookups under-warn when the composition of breach lists means a service-level incident is the actionable signal despite a quiet exact-address probe. Combining them with clear labeling gives you both precision where available and coverage where per-address telemetry is unavailable or throttled.
The design also respects privacy: the address is canonicalized and evaluated in memory during the request, a report is built and returned, and nothing is written to disk or access logs beyond the normal operational request metadata that any web server sees. When the widget notes that EmailRep or Gravatar received the address, that is an honest disclosure of the trade required to answer the question at all. Those APIs key by address.
Limitations you should know
No checker can enumerate the dark market comprehensively. Private sales, ransomware negotiations and encrypted forums never surface publicly. Similarly, a negative result does not certify that an account is secure, only that its domain and current live checks did not match the documented corpus at this moment.
Rate limits cause occasional unavailable states for live sources. The report degrades gracefully rather than guessing, and retrying usually restores the signal. For the most sensitive accounts, supplement this check with the provider's own Have I Been Pwned-style notifications and with monitoring inside the services themselves.
Treat any match as an instruction to rotate and any lack of match as maintenance debt, not safety proof. Check your other active addresses, move reused secrets into a manager, and put a second factor on the mailbox that can reset everything else.
How it works
Type the email address you want to check.
We probe the exact address (Gravatar, EmailRep) while matching the domain and provider against our breach index at the same time.
Read both layers: address-level findings first, then domain incidents with dates, scale and exposed data types.
Questions about this tool
Do you keep the email addresses people check?
No. The address is read once in memory while your request runs, then discarded. It is never written to a database or log. Note that the two public services we query (Gravatar and EmailRep) receive the address itself as part of their normal API operation.
What does a hit on the exact address mean?
EmailRep reporting this mailbox in breach datasets, especially with leaked credentials, means the specific address surfaced in known leaks somewhere. Change that password immediately wherever it is reused.
Why do domain matches matter if they are not per-address?
A service-level breach means attackers obtained some users' credentials there. If you had an account at the affected service at the time, assume yours was included and rotate that password.
Why does it sometimes say 'unavailable'?
Both public services we query are rate-limited and occasionally unreachable. The report degrades honestly instead of guessing; re-running usually brings them back.