Infrastructure. Maintainer of two things nobody uses.
- Followers
- 2,318
- Repos
- 64
- Location
- Portland, OR
- Joined
- 2011-09-03
8 more fields
Enter an email, username, domain, phone number, or address. We search the indexes that accept it and return the records that match. Breach rows arrive with the source they came from and the date that source is dated to.
accepts email username password full_name ip_address phone_number hash domain
These are the fields each index returns. Where an index does not hold something, it is not listed.
Search a single identifier across our credential records. Each match carries the source it was recovered from and the month that source is dated to, plus the first and last time the identifier appears anywhere in the index.
Standing monitors watch one asset or an entire domain and notify you when it next appears.
Hand us one username, email, or phone number and we fan it out across platforms, checking each for a live account. Every hit comes back with what that platform exposes; a platform that does not answer is reported as a failure, not counted as an absence.
The resolver reports each platform as it answers, so the count on screen climbs while the search is still running.
A record is the full capture from one device, not a single row. Thirteen views read the same archive, nine of them parsed into tables, and the archive itself stays browsable underneath them.
Credential results arrive with their summary counters in the same response, so totals need no second query.
Look a person up by name, phone, address, or email and get the identity assembled from US public filings. Relatives and associates carry their own references, so a lookup continues rather than ending.
Records come back whole on every plan, the free one included, profile drill-in and all: these are published filings rather than leaked ones.
Four stages, always in this order. Nothing is queried speculatively and nothing is returned unfiltered.
Your plan and remaining quota are checked before the query runs. A query you are not entitled to make never reaches our records.
The identifier is validated against the types that index accepts, then matched across every record it holds.
Matches pass through takedown removal and whatever masking your plan applies, before anything is serialised.
One envelope comes back, the same shape either way: the matched records on success, or a message and a machine readable code when something stopped the query.
Success or failure, every surface the key reaches answers with the same two shapes, so a client branches on one field instead of parsing prose.
A key is issued on Premium and on team plans, and it covers breached credentials, compromised device records, and people search. No key reaches social accounts: those stay dashboard surfaces, and programmatic access to them is arranged separately rather than sold as a tier.
curl https://infobreach.net/api/search \
-H "Authorization: Bearer $INFOBREACH_KEY" \
-d '{"type":"email","term":"[email protected]"}'The reply
{
"success": true,
"data": {
"found": 42,
"sources": 7,
"first_seen": "2013-05",
"last_seen": "2024-10",
"results": []
}
}The parts of the system worth knowing about before you send a query.
Each breach row comes back with the source it was recovered from and the date that source is dated to. The other three surfaces carry provenance too, in fields shaped to what they hold.
Every plan runs the query for real and returns every row it matched. Where a plan masks a surface the values arrive withheld, but the row count, the structure, and the column names are the true ones. Public records are never masked, on any plan.
Breach rows can carry government identifiers. We drop that field before serialising, on every plan including the top one: no plan reveals it, no unlock opens it, no key returns it.
An honoured takedown suppresses the row across all four surfaces, and the counts returned beside it are recomputed to match. Two exceptions worth knowing: the catalogue-wide totals we cache by the hour, and monitors, which keep firing on the asset.
Results name the breached source a row came from, not how that source reaches us. Neither do exports, errors, or answers to asking.
Reaching an hourly cap, or spending the allowance for the period, returns an error that says so, never a success holding fewer rows than the query matched. Bulk is the exception: it reports per term, so a batch that stops part way tells you which term stopped it.
Free runs 25 searches a day across breach and device records, and 25 each for people search and social. Withheld rows unlock five a week, or a paid plan reveals them outright.
Not ready for an account? Check one identifier with no signup. The demo returns a masked sample of what the indexes found.