{
"module": "breach-search",
"query": "jane.doe@example.com",
"total": 1,
"total_is_lower_bound": false,
"returned": 1,
"truncated": false,
"partial": false,
"sources": {
"acme-2023": {
"id": "acme-2023",
"name": "Acme 2023",
"site": "acme.example",
"description": null,
"date": "2023-05-01",
"date_kind": "disclosed"
}
},
"results": [
{
"breach_id": "acme-2023",
"breach_name": "Acme 2023",
"breach_date": "2023-05-01",
"record": {
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"city": "Paris"
},
"masked_fields": []
}
],
"billed": true,
"usage": {
"plan": "Professional",
"plan_expires_at": "2026-10-16T12:00:00.000Z",
"daily_quota": 800,
"used": 12,
"remaining": 788,
"resets_at": "2026-09-24T00:00:00.000Z"
}
}Breach Search
Find one person’s records across Find.ly’s own breach index. Send a free-text query, an advanced fields object (ANDed), or both. Draws from a separate daily bucket (Starter 100, Professional 800, Enterprise 5000), not the request quota.
{
"module": "breach-search",
"query": "jane.doe@example.com",
"total": 1,
"total_is_lower_bound": false,
"returned": 1,
"truncated": false,
"partial": false,
"sources": {
"acme-2023": {
"id": "acme-2023",
"name": "Acme 2023",
"site": "acme.example",
"description": null,
"date": "2023-05-01",
"date_kind": "disclosed"
}
},
"results": [
{
"breach_id": "acme-2023",
"breach_name": "Acme 2023",
"breach_date": "2023-05-01",
"record": {
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"city": "Paris"
},
"masked_fields": []
}
],
"billed": true,
"usage": {
"plan": "Professional",
"plan_expires_at": "2026-10-16T12:00:00.000Z",
"daily_quota": 800,
"used": 12,
"remaining": 788,
"resets_at": "2026-09-24T00:00:00.000Z"
}
}Authorizations
Authorization: Bearer fly_live_…. Takes precedence when both headers are sent.
Body
Free-text query, advanced fields, or both — at least one is required. query searches every identity field at once; fields ANDs named fields to narrow to one person. IBAN and SIRET are never a search target.
Anything that names a person — email, full name, username, phone. Trimmed; 3–256 characters.
3 - 256"jane.doe@example.com"
Advanced search: each entry is a separate, required constraint (ANDed). 2–256 characters each, at most 10 fields. An unknown or sensitive key returns 422.
Show child attributes
Show child attributes
{ "city": "Paris", "last_name": "Dupont", "first_name": "Jean" }
Response
Search served (billed from the breach bucket), including a successful empty result.
breach-search The search as run: the free value, or the advanced fields joined.
Records found. Capped at 10,000 — see total_is_lower_bound.
true when total is greater than returned. There is no next page.
Map of breach_id to the breach it names.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Quota of the account, after the call.
Show child attributes
Show child attributes
true when the index stopped counting at 10,000.
true when the index ran out of time; an empty partial result is refunded.