Database Leaks API
Retrieve corporate email addresses exposed in third-party database breaches for a given domain. Results are grouped by breach source and include metadata such as breach date, description, and exposed data fields.
Endpoint
POST https://api.whiteintel.io/get_third_party_db_leaks.phpAuthentication
All requests require a valid API key passed in the request body.
This endpoint is only available for Enterprise and Threat Intelligence (tifirm) license tiers.
Request
Headers
Content-Type
application/json
Yes
Body Parameters
apikey
string
Yes
—
Your WhiteIntel API key
query
string
Yes
—
The domain to search (e.g. tripadvisor.com) Must be a valid domain address.
page
integer
No
1
Page number for pagination
limit
integer
No
500
Number of records to return. Min 1, max 5000
start_date
string
No
—
Filter by breach date start. Format: YYYY-MM-DD. Must be used with end_date
end_date
string
No
—
Filter by breach date end. Format: YYYY-MM-DD. Must be used with start_date
Query parameter must be an domain address. Email addresses or "*" chars are not allowed.
Example Request
With date filter:
Response
Success Response
Empty Result
Response Fields
Root
success
boolean
Whether the request was processed successfully
remaining_daily_calls
integer
How many API calls you have left today
total_databases
integer
Number of distinct breach sources returned
results
array
Array of breach group objects
Breach Group Object (results[])
database_name
string
Name of the breached database/source
breach_date
string
Date of the breach in YYYY-MM-DD format
breach_description
string
Human-readable description of the breach
data_fields
string
Comma-separated list of data types exposed in this breach
total
integer
Total number of records for this domain in this breach
page
integer
Current page
limit
integer
Records per page
accounts
array
Paginated list of exposed account objects
Account Object (accounts[])
id
integer
Internal record ID
email
string
Exposed email address
password
string or null
Plaintext password if available, otherwise null
hashed_password
string or null
Hashed password if available, otherwise null
Pagination
The limit applies globally across all breach sources, not per source. For example, with limit=1000 and two databases containing 600 and 800 records respectively:
Page 1 → 600 from DB1 + 400 from DB2 = 1000 total
Page 2 → 400 remaining from DB2 + 400 from DB3 = 800 total
This ensures you never receive duplicate records across pages.
Error Responses
400
Invalid request method or content type
403
API key missing or invalid
403
Subscription tier not eligible
403
Daily limit reached
429
Rate limited — wait 5 seconds between requests
Error Response Format
Rate Limits
Request rate
1 request per 1 second
Daily call limit
Depends on your plan
Records per call
Max 5000
remaining_daily_calls in the response tells you exactly how many calls you have left for the day.
Notes
start_dateandend_datemust always be provided together. Providing only one will return an error.The
totalfield in each breach group reflects the true total for that source, even if fewer records are returned due to pagination.Domains are automatically normalized — passing
https://www.nonexistentdomain.comwill resolve tononexistentdomain.com.
Last updated