A background check API for criminal records and registries.
One REST call reaches more than a thousand county, state and federal jurisdictions of criminal records — county jail rosters, statewide prison systems, court records and warrants — plus 58 US sex offender registries, and returns scored, de-duplicated, source-tagged records in one schema.
curl https://api.offendersearch.app/v1/search \
-H "X-API-Key: $OFFENDERSEARCH_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": {
"firstName": "John",
"lastName": "Doe",
"dob": "1980-04-12"
},
"jurisdictions": null
}'Both layers, one endpoint
A background check that only reaches one of these answers half the question. Both run on the same key, the same schema and the same call.
| Layer | What it carries | In the roster |
|---|---|---|
| County jail rosters | Booking date, charges at booking, custody status | 1,375 |
| Statewide prison (DOC) | Custody status, facility, admission date | 53 |
| Court records | Case number, charge and disposition | 24 |
| Warrants | Offense, description, warrant status | 28 |
| Sex offender registries | Photographs, aliases, addresses, tier where published | 58 |
Live coverage is published at /v1/criminal/sources — build against that rather than against a number on a page. Per-state detail: what each state publishes.
What a background check API costs
$0.15 a call, $0.11 for every call past 2,000 in a calendar month. No setup fee, no per-seat licence, no minimum and no annual contract. Screening products retail a check at $15–$50; this is the data underneath.
| Checks / month | Cost | Per check |
|---|---|---|
| 1,000 | $150.00 | $0.1500 |
| 10,000 | $1,180.00 | $0.1180 |
| 100,000 | $11,080.00 | $0.1108 |
A batch is billed per row. Background check API pricing, worked out by volume · full pricing · employment screening · tenant screening · how the top 5 APIs compare.
Exactly what this API covers
“Background check API” covers a dozen different products. Here is which one this is, so you can tell in thirty seconds whether it solves your problem.
In scope
- Sex-offender registry records across 58 US registries — the 50 states, DC and the 5 US territories
- Criminal records: county jail bookings, statewide prison (DOC) records, court cases with dispositions where a state publishes them, and warrants
- Names, aliases, date of birth, physical description and published addresses
- Offence, statute, charge level, disposition, tier or risk level, and registration dates
- A match state, a confidence score and the basis for every match
- Per-source provenance with the record URL and per-source status on every response
Not in scope
- Consumer reports from the standard API — results are not a consumer report; hiring and tenant decisions run as FCRA workflows through FCRA Partner Access
- Employment, education or professional-licence verification
- Credit reports, eviction records or motor-vehicle records
- Global watchlist, sanctions or PEP screening
- Records a jurisdiction does not publish — no API can reach those
Making a hiring or tenant decision? Use an FCRA workflow.
FCRA workflows are built primarily for tenant screening and hiring decisions. If a result will help decide whether to hire someone or rent to them, the check has to run as an FCRA-regulated consumer report, with a permissible purpose, consent, accuracy controls and a dispute path for the person. Our standard search and API are not a consumer report. FCRA workflows run through FCRA Partner Access, for background check companies and screening platforms under a written FCRA agreement.
FCRA pricing is quoted per partner, so contact us for pricing.
What a background check API call returns
Records in one schema, each with how it matched and which source holds it — plus a per-source status, so an empty result can be read for what it is.
{
"records": [{
"name": { "first": "JOHN", "last": "DOE" },
"dob": { "date": "1980-04-12", "dobPrecision": "full" },
"matchState": "dob_match",
"matchConfidence": 0.97,
"matchBasis": "lastName:exact firstName:exact dob:match",
"sources": [{ "code": "OH", "level": "state" }]
}],
"sourceStatus": [
{ "source": "OH", "ok": true, "incomplete": false }
]
}| Field | Why it matters |
|---|---|
matchState | Full date, birth year, age or name only — the difference between an identification and a lead |
matchConfidence | A score you can set thresholds on |
matchBasis | Exactly which identifiers agreed |
sources[] | The jurisdiction holding the record, cited per record |
sourceStatus[] | Which sources answered — an unanswered source means not clear |
Registry records add offence, tier, photographs and addresses; criminal records add cases, charges and dispositions. See the registry record and criminal record references.
False positives are the real risk
Public records are filed under names. A background check API that returns “match” on a shared name will, sooner or later, attach someone else’s history to an applicant — and the expensive cases in screening have been about exactly that, not about records that were missed.
So every record carries its match state. Send a full date of birth and each result is labelled by what its source published: a full-date match, a birth-year match, an age match, or no date at all — marked unverified. Act on the strong ones automatically; send the rest to a reviewer. The matching docs describe every level, and the guide to reading a background check explains them for non-developers.
How it differs from a typical background check API
| Typical background check API | Offendersearch | |
|---|---|---|
| What you get back | A finished report, often a PDF, after hours or days | Structured records in the same call |
| Match evidence | Match / no match | Match state, score and basis per record |
| Coverage transparency | A package name | Per-source status on every response, and a public sources list |
| Criminal and registry | Separate products or add-ons | One key, one schema, one price |
| Pricing | Per report or by quote | $0.15 a call, $0.11 past 2,000/month |
| Consumer report | Yes, when sold by a CRA | No — use a CRA for FCRA-covered decisions |
Integrate a background check API in an afternoon
- Sign up and create a key — it works at once on the 25-search free trial
- Call
POST /v1/searchfor registries orPOST /v1/criminal/searchfor criminal records, with a name and a full date of birth - Act on
dob_matchresults, review the rest, and treat any unanswered source insourceStatusas “not clear” - Store the record citations with your decision; add batch for re-screens and a monitor for ongoing checks
The full walkthrough — keys, the first call, async searches and webhooks, batch, monitoring and error handling — is in the background check API integration guide. Building for an HR or ATS platform? See the employment background check API. Already integrated with another sex-offender search API? The migration guide maps a drop-in compatibility endpoint.
One layer, done properly
Where it fits
Most screening stacks assemble several sources: criminal records, an identity check, sometimes a credit or MVR pull. This API is the criminal and sex-offender registry layer of that stack — the part that has to reach across state lines, because people move and a local check will not see where they were.
Why teams replace their own integration
Fifty-seven registries publish fifty-seven formats, change layouts without notice, and fail silently. Maintaining that in-house is a permanent tax on an engineering team that would rather ship product. One endpoint replaces it, and every record still tells you which source it came from.
How you migrate
POST /v1/compat/sexoffender accepts the exact parameters and returns the exact envelope of legacy sex-offender search APIs, so an existing integration switches by changing a base URL and a key — no re-mapping, no re-testing your parser.
$0.15 a call, metered, no seats
Every call is $0.15, dropping to $0.11 past 2,000 in a month. A Regular search is the base rate; Live re-verification adds $0.02 per completed source, capped at $2.00 a search. A verification PDF is $0.02 per document and only when you ask for one.
Questions developers actually ask
Is this a criminal background check API?
Yes. One call reaches more than a thousand county, state and federal jurisdictions — county jail rosters, statewide prison systems, court records where a state publishes them, and warrants — alongside 58 US sex offender registries, on the same key. Read the record kind on each result: a jail booking is arrest-stage, while a court record carries the disposition that says how a case ended. Coverage is expanding continuously and /v1/criminal/sources publishes the live list.
Is there a free background check API?
You get 25 free searches when you sign up — real national data, no card, no sales call — and after that it is metered at $0.15 a call, $0.11 past 2,000 a month. There is no permanent free tier and no floor either: no seat licences, no annual commitment, no minimum spend, so a proof of concept costs a few dollars rather than a procurement cycle. Free public search pages are websites rather than APIs — one jurisdiction at a time, no scoring, no de-duplication across state lines and no provenance you can put in a file — which is exactly the work a metered API is doing for the $0.15.
Can I run a sexual predator background check with it?
You can search the registries that publish predator designations, and where a registry publishes the flag we carry it, and tens of thousands of records currently carry one. What "predator" means is defined by each state, not by us, so the flag is only as consistent as the registry that issued it. Records also carry tier and risk level where published.
How fast is a call, and how is it priced?
The synchronous endpoint answers from our current snapshot rather than dialling out to every US registry, and every response reports its own elapsedMs so you can measure it against your own traffic. Pricing is $0.15 per call, dropping to $0.11 past 2,000 calls in a month; a Regular search is the base rate, live re-verification adds $0.02 per completed source (to a $2.00 ceiling), and each verification PDF adds $0.02.
Can I use it for employment or tenant decisions?
Not with the standard API. Its results are not a consumer report, so they must not be used for hiring or tenant decisions. Those decisions run as FCRA workflows: FCRA Partner Access is for background check companies and screening platforms under a written FCRA agreement, with one FCRA order covering a sex offender search, a criminal search or both. FCRA pricing is quoted per partner, so contact us for pricing.
What identifiers does the background check API need?
A first and last name is the minimum. A full date of birth is what makes the result usable for a decision: every record is then labelled by how well it matched — full date, birth year, age, or name only — so a shared name never reads as a match on its own. State, city and ZIP narrow a search further.
How should I handle a common name?
Send a full date of birth and act only on dob_match records automatically. Route year, age and name-only matches to a person, and compare photographs where the record has one. The match basis on every record tells your reviewer exactly what agreed.
What is the difference between a background check API and a background check company?
A background check company (a consumer reporting agency) sells a finished report to an employer or landlord, and runs consent, adverse action and disputes around it. A background check API like this one is the data layer: your software sends a name and date of birth and gets structured, scored records back in the same call, to build into your own product. Many screening companies build on an API underneath.
How do I integrate a background check API?
Create a key, send POST /v1/search (registries) or POST /v1/criminal/search (criminal records) with a name and a full date of birth, act on dob_match results automatically and route the rest to a reviewer. Use POST /v1/searches with a callback URL for long searches, POST /v1/batch for lists, and POST /v1/monitors for ongoing checks. The integration guide walks through each step.
Can I get a PDF report from the API?
Yes — a verification PDF is available per search at $0.02 per document, generated only when you ask for one. Most integrations store the JSON with the record citations and request a PDF only when a document is needed for a file.
Do you offer a sandbox or test key?
Sign up and create a key — it works immediately on the free trial, no payment method needed. Adding a card lifts the trial limits and nothing about the key changes. Keys are pure credentials with no entitlements attached — any key can run a Regular or Live search and call the report endpoint — so you can issue separate keys per environment and rotate or revoke any one of them independently.
Not just a search — a standing watch
POST /v1/monitors creates a recurring watch on a person (name and date of birth) or a location (address and radius). Each morning it is evaluated against our continuously updated data and an alert is emailed when a matching record is added, changes, or is removed. Person monitors are $3/mo, location $10/mo.
- Person and location watches, over sex offender registry data
- Person watches over criminal records too — billed separately
- List, update and cancel monitors over REST; add multiple recipients
The full reference — the Monitor object, alert events and cadence — is in the Monitoring API docs. Monitoring is not a consumer report and must not be used for FCRA-governed hiring, tenancy, or credit decisions — those run through FCRA Partner Access.
curl -sS https://api.offendersearch.app/v1/monitors \
-H "X-API-Key: $OFFENDERSEARCH_KEY" \
-H "Content-Type: application/json" \
-d '{
"product": "sex-offender",
"type": "person",
"person": { "name": "Jordan Rivera", "dob": "1988-04-12" },
"channels": { "email": ["alerts@example.com"] }
}'Further reading
Independent comparisons of the tools in this category — including where other vendors are the better answer.
The best sex offender APIs in 2026, compared
Five ways to search US registries programmatically, measured on coverage you can enumerate, provenance, match quality and price.
The best criminal record search APIs in 2026
Jail bookings, prison custody, court cases and warrants are four different systems. Which API you want depends on which one your question needs.
The best background check APIs in 2026
Five brands, three companies: the consolidation nobody mentions, each vendor’s real published price, and the only per-call API on the list.
More in our comparisons and research.
Ship the registry layer this week
Self-serve signup, metered pricing, and a drop-in compatibility endpoint if you are migrating from another provider.
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.
- Employment background check API — The registry and criminal data layer for HR, ATS and screening platforms.
- Bulk criminal record search — Run a list of names against criminal records in one call.
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.