Bulk criminal record search for a whole list of names.
Send a CSV or JSON of up to 1,000 people in one call. Every name is searched across more than a thousand county, state and federal jurisdictions, and comes back as one result per row, in the order you sent it.
Screening against the sex offender registries too? Bulk sex offender search →
From a list of names to answers, in one call
Send the list you already have
A CSV with a header row, or a JSON array — one person per row, with a last name at minimum. Your own columns, like a case number, can stay in the file, so an export from your case or applicant system usually goes in as-is.
One row in, one result out
Every row is searched exactly as if you had run it on its own, and the results come back in the order you sent them, each tagged with its row number — so matching answers back to your records is a lookup, not a puzzle.
A bad row never sinks the batch
If a row is missing what a search needs, that row comes back with a plain-English error and every other row still runs. Rows that error are not billed.
Every match shows its record
Each result carries the same records a single search returns — the booking, case, sentence or warrant, with the jurisdiction it came from — so a reviewer can act on a row without re-running it.
What goes in, and what comes back
Three people, one call. The third row has no first name and no state — it still runs, just more broadly. Your own caseRef column stays in the file.
firstName,lastName,dob,state,caseRef
Alex,Hamilton,1984-03-09,TX,FILE-0142
Jordan,Rivera,,IL,FILE-0143
,Nguyen,1990-12-01,,FILE-0144Illustration uses fictional people; the response is trimmed. Each index is the row it answers, and records holds the full matches — the same shape a single search returns.
5 kinds of record, one row
There is no single national criminal database, so each name is searched across the kinds of record that actually exist — and each result says which one it came from.
County jail roster
Leads with booking date, charges and custody status.
Statewide prison (DOC)
Leads with custody status, facility and admission date.
Court records
Leads with case number, court, filed date, charge and disposition.
Warrants
Leads with offense, physical description and warrant status.
Statewide registry
Leads with name, date of birth, classification and often an address.
Depth varies by state. See coverage, jurisdiction by jurisdiction →
Fields each row can carry
A last name per row is the only requirement. Everything else narrows the match — send what you hold and leave the rest blank.
| Column | Required? | Example | What it does |
|---|---|---|---|
lastName | Required | Hamilton | The one field every row needs. |
firstName | Recommended | Alex | Narrows matches sharply. |
dob | Optional | 1984-03-09 | The strongest single narrowing field. |
birthYear / age | Optional | 1984 / 41 | Use when you have no full date of birth. |
state | Optional | TX | Keep the search to one state. |
county / city / zipcode | Optional | Travis / Austin / 78701 | Narrow to a place when that is the question. |
your own columns | Tolerated | FILE-0142 | Case numbers and notes can stay in the file. |
What a list costs
Priced per person searched, at the same rate as a single search — and a row that errors costs nothing.
| People in a month | Total | Works out to, per row |
|---|---|---|
| 100 | $15.00 | $0.15 |
| 500 | $75.00 | $0.15 |
| 1,000 | $150.00 | $0.15 |
| 2,000 | $300.00 | $0.15 |
| 5,000 | $630.00 | $0.13 |
| 10,000 | $1,180.00 | $0.12 |
Each row is one search at $0.15. Past 2,000 searches in a calendar month, every further search that month is $0.11. No setup fee, no seats, no minimum. Your first 25 searches are free.
One call, whatever the list is
Investigations teams
Work a subject list, a witness list or a lead sheet through criminal records in one pass instead of one name at a time.
Background screening firms
Feed your intake queue straight in and get a result per applicant back in the order you sent it.
Property managers
Clear a batch of rental applications, or re-check a portfolio of tenants, without a portal login per name.
HR, staffing & compliance
Run a hiring list or a contractor roster alongside your other checks, with every run kept on your account.
Run both checks on the same list
The same file works for both: send it to the criminal batch for court, custody and warrant records, and to the sex offender batch for all 58 US registries. One account, one key — each person searched is one search per check.
Bulk criminal record search questions
How is a bulk criminal search billed?
Per row, at the same rate as a single search — a list of 500 people is 500 searches. Rows that come back with an error are not billed. There is no setup fee, no seat license and no minimum.
How many people can I send at once?
Up to 1,000 rows per call. For a longer list, split it into files of 1,000 and send them one after another. If you run tens of thousands a month, talk to us about volume terms.
CSV or JSON?
Either. Send a CSV whose header row names the fields, a JSON array of people, or a JSON object with a "queries" array plus settings that apply to every row.
Is there a no-code upload for criminal records?
Not yet — bulk criminal search runs through the API. The dashboard CSV upload screens a list against the sex offender registries today, and the same account and key cover both.
Can I get live-verified results in bulk?
Bulk rows return our current records. Live verification — re-checking named jurisdictions at the moment you search — is available on individual searches, so the usual pattern is to run the list in bulk and verify the rows that need it.
Which records does it cover?
County jail rosters, statewide prison systems, court records and dispositions, warrant systems and statewide registries, across more than a thousand county, state and federal jurisdictions. Depth varies by state; the coverage reference lists it jurisdiction by jurisdiction.
Can I use results for hiring or housing decisions?
Standard results are not a consumer report, so they must not be used for FCRA-covered decisions; FCRA-regulated screening runs through FCRA Partner Access. Use is subject to our acceptable-use terms and applicable law.
Your whole list, searched in one call
Get a key, send the CSV you already have, and read the answers row by row. 25 free searches to try it on a real slice of your list.
The Offendersearch APIs
One account, one key, one bill — the sex offender registry and criminal records, side by side.
Sex offender registry
- Sex offender API — One call across 58 US sex offender registries, with scored matches and a citation on every record.
- Sex offender search API — Endpoints, request shapes, record fields, matching and batch, in detail.
- Sex offender database — The national registry data in one schema — photos, aliases, offenses, addresses.
- Registered offender database — What a registered offender record holds, and how its accuracy is measured.
- Bulk sex offender search — Screen a whole list of names in one upload or one API call.
Criminal records
- Criminal records API — County, state and federal records — jail, prison, court and warrant — through one API.
- Criminal background check API — One cited answer per person for onboarding and screening flows.
- Criminal search API — The search endpoint itself: parameters, record types and coverage, call by call.
- Background check API — The registry and criminal layers together, on one key and one bill.
- Employment background check API — The registry and criminal data layer for HR, ATS and screening platforms.
Build with it
- API documentation — Quickstart, every endpoint, the record object and the OpenAPI spec.
- Background check API pricing — $0.15 a call, $0.11 past 2,000 a month, 25 free calls to start — worked out by volume.
- Background check API integration — Keys, the first call, async and webhooks, batch, monitoring and errors, step by step.
- MCP server for offender search — Give Claude and other AI agents the same search as a tool.
- Offendersearch vs offenders.io — A side-by-side comparison of the two registry APIs.