Data Breach Check
Risk & ComplianceHas this email or phone appeared in known credential leaks?
Check an email address or mobile number against known breach corpora and return the breaches, the data types exposed and recency, a signal for account-takeover risk and step-up authentication.
Endpoint
POST
https://app.emver.io/api/sandbox/v1/data-breach-check
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
Request parameters
| Field | Type | Description |
|---|---|---|
email
optional
|
Email address | |
mobile
optional
|
phone | Mobile number |
Example request
cURL
curl -X POST https://app.emver.io/api/sandbox/v1/data-breach-check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "[email protected]",
"mobile": "9999999999"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/data-breach-check",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"email": "[email protected]",
"mobile": "9999999999"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/data-breach-check", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"email": "[email protected]",
"mobile": "9999999999"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/data-breach-check', {
"email": "[email protected]",
"mobile": "9999999999"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"breached": BOOLEAN,
"breach_count": INTEGER,
"last_seen": DATE,
"exposed_data_types": ARRAY
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"breached": true,
"breach_count": 200,
"last_seen": "YYYY-MM-DD",
"exposed_data_types": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Send the identifier; receive the breach count, the most recent exposure date and the categories of data leaked (passwords, phone, address). Nothing from the breach itself is returned.
Typical uses
- Login and account recovery. Risk-based authentication signal.
- Onboarding. Part of the digital footprint picture.
Questions
- Are leaked passwords returned?
- Never. Only the fact of exposure and the categories involved.