Webz.io logoDocs
Overview
Start Here
News, Blogs, Forums & Reviews APIs
News Search API
News Answers API
Firehose
Cyber API
Data Breaches API
Introduction
Quickstart
Natural Language Search
Search Scope
Search by Email
Filters
Record Data Fields
API Reference
Leaked Cookies API
Non-Human Identities (NHI) API
Domain Exposure API
News, Blogs, Forums & Reviews Archive
Web Content API (Deprecated)
Webz.io logo
Overview
Start Here
News, Blogs, Forums & Reviews APIs
News Search API
News Answers API
Firehose
Cyber API
Data Breaches API
Introduction
Quickstart
Natural Language Search
Search Scope
Search by Email
Filters
Record Data Fields
API Reference
Leaked Cookies API
Non-Human Identities (NHI) API
Domain Exposure API
News, Blogs, Forums & Reviews Archive
Web Content API (Deprecated)
Webz.io DocumentationContact our team© 2026

Search by Email

Look up every compromised record for a single email address. The Data Breaches API offers two ways to do it: the standard search scoped to an address, and a dedicated lookup that covers the full history.

/breaches?email=/breaches/getEmail
Best forMonitoring an address alongside your domain searchesInvestigating one address across all history
Time rangeLast 365 days by default; raw mode does not accept emailAll history by default
FiltersAll FiltersDate range and sort order
Records per page1001,000
Domain authorizationRequired for the address's domain (added automatically)Not required
AccessData Breaches permissionData Breaches permission plus the email-search permission
Credits1 per page1 per page

Standard search: /breaches?email=

GET

https://api.webz.io/breaches?token=YOUR_TOKEN&email=[email protected]

Returns records whose compromised account email is exactly [email protected] (case-insensitive). Everything else works as in any /breaches search: combine with Filters such as data_type or has_password, sort with sort_by and order_by, and page with next - see Pagination.

https://api.webz.io/breaches?token=YOUR_TOKEN&email=[email protected]&data_type=infostealer&order_by=desc

The address's domain (example.com) is treated like any searched domain: it must be authorized for your token and is added automatically on first use - see Search Scope.

The default window is the last 365 days - see Time Range. Raw mode (raw=true) does not accept email; for older records use /breaches/getEmail below.

Full-history lookup: /breaches/getEmail

GET

https://api.webz.io/breaches/getEmail?token=YOUR_TOKEN&email=[email protected]

Returns all records for the address across the entire Data Breaches history, 1,000 per page, with no domain authorization. Use it when you need the complete exposure history of one account - for example during an incident investigation or an executive-protection review.

/breaches/getEmail requires the email-search permission in addition to Data Breaches access; without it, requests return 401. Contact [email protected] to enable it.

Parameters

ParameterRequiredDescription
tokenYesYour API token, or send Authorization: Bearer YOUR_TOKEN.
emailYesThe address to look up. Case-insensitive.
breach_from, breach_toNoBreach or infection date range, epoch milliseconds UTC.
crawled_from, crawled_toNoCollection date range, epoch milliseconds UTC.
sort_byNobreached or crawled. Defaults to the date field you filter on; breached when there is no date filter.
order_byNoasc (default) or desc.
full_passwordsNofalse masks passwords even if your account may view them. Default true.
nextNoPagination cursor. Follow the next URL from the response instead of building it.

Use one date range per request - breach_* or crawled_*, not both. With no date range, the whole history is searched. There is no limit parameter; any parameter not listed above returns 400.

curl -H "Authorization: Bearer YOUR_TOKEN" \
  "https://api.webz.io/breaches/[email protected]&breach_from=1577836800000&order_by=desc"

Response and pagination

The same Response Format as /breaches, with up to 1,000 records per page:

json
{
  "records": [ ... ],
  "totalResults": 1230,
  "moreResultsAvailable": 230,
  "next": "/breaches/[email protected]&token=YOUR_TOKEN&next=CURSOR",
  "requestsLeft": 954,
  "totalResultsVerified": true
}

Append next to https://api.webz.io and call it as-is; repeat until next is null. Each page costs one credit. Passwords are masked unless your account has the view-password permission, as everywhere in the API - see Record Data Fields.

An empty result is not proof that an address is clean. If a very large lookup cannot be completed in time, the response is an empty page rather than an error - narrow the date range and retry.

Credits and limits

  • Both endpoints cost 1 credit per page, including a page with 0 records. requestsLeft shows your balance.
  • The per-token rate limit of about 1 request per second applies to both - see Errors, Rate Limits & Credits.
  • One address per request.

Ask in plain English

The same lookup works through Natural Language Search: a question that names a full address, such as Show all leaked credentials for [email protected], runs as a /breaches?email= search.

Related documentation

  • Search Scope
  • Filters
  • Time Range
  • Pagination
  • Record Data Fields
  • Errors, Rate Limits & Credits
Last updated: October 25, 2026
PreviousSearch ScopeNextFilters