Provero Logo

Breach detection API

The Breach detection API checks if an email, username, phone number, or password has been compromised in known data breaches.
It provides information on the breach source and the type of data exposed.

Password lookups: when type is password, send the full SHA-1 hash of the password as the value. Do not send the plaintext password. The API uses a partial-hash lookup approach so only a small portion of the hash is used for the upstream search, with the full match confirmed server-side.

Endpoint

POST
https://api.provero.io/api/fraud-check/breach

Headers

Authorization:
Content-Type: application/json
Accept: application/json


Request Body

Field Type Required Description
type enum Yes Accepted values: email, username, phone, password.
value string Yes The actual data item you want to check for breach exposure. For type=password, this must be the full 40-character SHA-1 hash of the password, for example 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8.
dob date No Optional date of birth in YYYY-MM-DD format. When supplied, the response includes ageAtFirstBreach if at least one returned breach has a valid breach date on or after the date of birth. A breach on the date of birth returns 0.
Request Payload Example (JSON)
{
    "type": "string",
    "value": "string",
    "dob": "1990-06-01"
}

Request Examples

Choose language Bash (cURL) 5 examples
type="email" # Replace with "email", "username", "phone", or "password"
raw_value="support.provero.io" # Replace with the source value
value="$raw_value"
dob="1990-06-01" # Optional; remove when age at first breach is not needed

if [ "$type" = "password" ]; then
  value=$(printf '%s' "$raw_value" | shasum -a 1 | awk '{print toupper($1)}')
fi

curl -X POST https://api.provero.io/api/fraud-check/breach \
  -H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"type\": \"$type\", \"value\": \"$value\", \"dob\": \"$dob\"}"

Response Examples

Choose response example Success 11 examples
{
    "value": "requested_value",
    "type": "requested_type",
    "leaks": [
        {
            "name": "Adobe",
            "domain": "adobe.com",
            "breachDate": "2013-10-04",
            "description": "User profile and password hints were exposed."
        }
    ],
    "ageAtFirstBreach": 23
}

Response Body

Success structure

Field Name Type Always
Returned
Example
type enum Yes
value string Yes
leaks array Yes
ageAtFirstBreach integer No

Error structure

Field Name Type Always
Returned
Example Description
message string No Top-level error message returned on validation failure, insufficient balance, or other request errors.
errors object No Validation error details.
requestError object No Application-level error response object.
service string No Service alias returned with a 402 insufficient-balance response.
required_amount string No Credit amount required to process the validation request.
current_balance string No Current available balance at the time the request was rejected.