Breach detection API
Check whether a supported identifier appears in known data breaches.
Return the available breach details as context for account security and record review.
Part of: KYC waterfall Affiliate fraud detection Source audit
What it checks
Choose the identifier type, send the value, and Provero searches known breach data for it.
Each request searches one value of one type. The supported types are:
- email: an email address.
- username: an account username.
- phone: a phone number.
- domain: a domain name.
- password: the full 40-character SHA-1 hash of the password, never the plaintext password.
A search covers the breach data available to Provero. It cannot cover every breach that has ever happened, so a result reflects what is known rather than a complete history.
How password searches work
You send Provero the full 40-character SHA-1 hash of the password. You never send the plaintext password.
Hash the password in your own system and send the hash as the value, with type set to password. A value that is not a valid 40-character SHA-1 hash is rejected with a validation error. The code examples in the API reference include the hashing step.
Provero then handles the partial-hash exchange with the upstream breach source: only a small portion of the hash is used for the upstream search, and the full match is confirmed on Provero's side.
What comes back
The response repeats the type and value you searched and returns a leaks list, with one entry for each matching breach.
-
Breach name
The service or dataset the identifier was exposed in.
-
Domain
The domain associated with the breached service.
-
Breach date
When the breach occurred, so you can tell recent exposure from older history.
-
Description
A short description of the breach and the type of data exposed.
Not every breach carries every detail. Where a field is not available for a breach, it is returned as null.
Breach dates across a lead source
Our Breach Age Index article looks at how breach rates and breach dates are spread across whole lead sources, based on the samples it describes. It is a source-level analysis, not a test for a single record.
Read the Breach Age Index articleWhen to use it
- At sign-up or login, to decide whether an exposed account should get a password-change prompt or extra verification.
- When someone sets a password, to check its hash against known breached passwords before accepting it.
- When reviewing records or lead sources, to add breach history as context alongside your other checks.
- In bulk, to see exposure across an existing list.
What a result does not show
- Exposure is not proof of fraud. Ordinary, long-used email addresses and phone numbers often appear in breach data.
- No exposure found is not a verified identity. It means no match was found in the breach data searched.
- An exposure belongs to the identifier searched, not to whoever holds it today. Phone numbers and email addresses can be reassigned or change hands.
- A breach date shows when the breach happened. Compare it with what you know about the record, but do not treat a date on its own as proof that data was stolen or made up.
How to read the result
| Result | Meaning | What to do |
|---|---|---|
| No breaches returned | Meaning: No matching breach was found in the data searched. | What to do: Carry on with your normal checks. This does not verify the person. |
| One or more breaches | Meaning: The identifier appears in the breaches listed. | What to do: Read the dates and descriptions, and use them as context for a security prompt or a review. |
| Recent breach on an account identifier | Meaning: The email address, username or phone number was exposed recently. | What to do: Consider a password-change prompt or step-up verification. |
| Password hash found | Meaning: That password appears in known breach data. | What to do: Ask the person to choose a different password. |
| Older breach history | Meaning: The identifier has been exposed in the past, which is common for addresses and numbers that have been in use for years. | What to do: Compare the history with the rest of the record. Review it where the two do not fit together. |
API & bulk usage
Call the Breach detection API with a type and a value. For type password, the value is the full SHA-1 hash. Use the bulk uploader to check an existing list, or include Breach detection in a Multi-validation request alongside other checks.
Example request and response
POST https://api.provero.io/api/fraud-check/breach
Request (email search)
{
"type": "email",
"value": "jane.smith@example.com"
} Response
{
"value": "jane.smith@example.com",
"type": "email",
"leaks": [
{
"name": "Adobe",
"domain": "adobe.com",
"breachDate": "2013-10-04",
"description": "User profile and password hints were exposed."
}
]
} Illustrative address and values, not the result of a live check; the breach shown is the example from the API documentation. For a password search, send type password and the full 40-character SHA-1 hash as the value.
View breach detection API documentationPricing
from £0.012 per request, down to £0.003 at volume
| Requests / month | Rate |
|---|---|
| 0 – 5,000 | £0.012 |
| 5,001 – 10,000 | £0.008 |
| 10,001 – 25,000 | £0.007 |
| 25,001 – 50,000 | £0.006 |
| 50,001 – 100,000 | £0.0045 |
| 100,001 – 300,000 | £0.004 |
| 300,001 – 500,000 | £0.0035 |
| 500,001+ | £0.003 |
Paid from a prepaid balance that you can spend across any check. See current rates.
Need volume pricing? Email pricing@provero.io.
Related checks
No single check settles whether a record can be trusted. These are the ones people usually run alongside Breach detection, each answering a different question about the same record.
- Email verification Recheck existing email lists or check new addresses for mailbox deliverability and disposable, catch-all or role-based flags.
- IP fraud detection Assess IP risk with a fraud score and available VPN, proxy, Tor and abuse indicators.
- HLR phone verification Find dead mobile numbers by API or in bulk, with network status, serving carrier and porting information.
Breach detection FAQ
Which identifiers can I search?
How do I search a password without sending it?
Why are some breach details missing?
Does a search cover every breach?
Does a breach result mean a record is fraudulent?
How should I read the breach date?
How much does Breach detection cost?
Start with this check
Create a free account, claim your credits and run Breach detection through the API or bulk upload. No card required.
Sign up free