accounts_database_search searches the account index of those records. Each row is one credential: a login, a password and the website it was used on, tagged with the leak it came from. Some rows hold the password in plain text, others only its hash.
In the dashboard this source is Raw Credentials, one of the individual data sources in expert search.
The search has no domain restriction. Use it to look up one address on any domain, such as jdoe@acme-login.com, or to find every credential used on a website. Filtered credentials covers only the domains your organization owns.
Availability: every plan with a license in force.
Cost: no metered allowance. Each call made with an API key uses 1 call from your monthly API Calls allowance. A call that does not return 2xx is refunded. See Rate limits.
Without a license in force, the call returns 403:
Search the account index
Send a Lucene query in thequery parameter, 3 to 1,024 characters. The index has five fields:
Combine clauses with
AND, OR and NOT. Bare words separated by a space are joined with OR: jdoe asmith matches either login.
Field names, and the values of
login and website, are not case-sensitive.
Wildcards
The wildcards* and ? work only in these forms:
In the
website form, the domain after *. needs at least two labels, so website:*.com finds nothing.
Special characters
Put a value in double quotes when it contains a space or a Lucene operator character, as inpassword:"Summer2026!". Quote full URLs too: website:"https://acme.com/login".
Queries also contain characters that must be URL-encoded. Let curl -G --data-urlencode handle it:
Paging and order
pageis zero-based. The default is0.sizeis 10 to 100 rows. The default is10.sortdefaults tocreatedAt,desc, so the most recently indexed rows come first.- Raise
pageuntillastistrue.totalElementsandtotalPagesgive the size of the whole result set.
Read the results
A response is one page of rows. This search forwebsite:acme.com found three:
number: the page returned, zero-based.size: the page size you asked for.numberOfElements: the rows on this page.totalElementsandtotalPages: the size of the whole result set.first,lastandhasContent: where this page sits, and whether it holds rows.partialandpartialReason: whether the result set is complete.partialistruewhen the search hit its time limit or part of the account index did not answer in time, and the page and its counts then cover only the parts that answered.partialReasonsays why, such astimeoutorshard_failures, and isnullwhen the results are complete.
content:
loginandpassword: the credential. The password is plain text or a hash, depending on the leak, and can be empty.website: the URL or host the credential was used on. It can be empty.leakId,leakName,leakSizeandleakTags: the source leak.leakTagslists the kinds of data the whole leak holds, not this one row.leakPublishDateandleakDiscoverDate: the leak’s publish date and discovery date.cvssScore: the severity score, ornull.createdAt: when this row was indexed, asYYYY-MM-DD HH:MM:SS. It is the default sort key.id: the row ID.
Pivot on any column. Each value in a row is also a field you can query. Search
password:"W3lcome#2025" to see which other logins carry the same password. Search leakId: with a row’s leak ID to read every other row from that leak. Search a login on its own to see every website it appears with.A row from a stealer log has more behind it. The ULP feed shows one credential. When info-stealer malware took it, the same capture also holds the machine’s other saved logins, cookies and often screenshots. Stealer logs searches those captures and hands you the link to the full bot record.
Choose a related search
account_breaches and the other Leaks Analysis endpoints do not search this index. They report on your organization’s own domain within its analysis window of 7, 30 or 365 days. Organization analytics covers them.
Errors
Any other
4xx from the account index is passed through with its own status and body. Handle API errors lists every error the API returns.