Data

Offender and Crime APIs: A Practical Guide

MedFlo AI12 min read

"Offender and crime API" describes two completely different products, and teams routinely start building one when they needed the other. One answers questions about a person: does this individual have a criminal record? The other answers questions about a place: how much crime happens here, of what type, and is it rising? The data sources, the coverage characteristics, and the legal obligations are unrelated. Getting the distinction right on day one saves a rebuild later.

Two different questions

Person-levelPlace-level
QuestionDoes this individual have a record?What is the crime profile of this area?
Typical useScreening, vetting, onboarding, complianceRisk scoring, site selection, research, underwriting
SourcesCourts, corrections, registries, exclusion listsFBI UCR/NIBRS, agency open-data portals
GranularityIndividual, jurisdiction by jurisdictionAgency, city, county, sometimes block
LatencyDays to months behind the eventMonths to over a year behind
RegulationFCRA, EEOC, state fair-chance lawGenerally none — it is aggregate public data

Person-level data is regulated the moment you use it to decide something about a person. Place-level data almost never is. Do not let one API surface both without separating the governance.

Criminal records APIs: where the data actually lives

The single most expensive misconception in this space is that there is a national criminal database you can query. There is not one available to you. The FBI maintains national systems, but access is restricted to law enforcement and to specifically authorized noncriminal-justice purposes, generally routed through approved channelers under statutory authority. If you are building a commercial product, you are not querying it.

What exists instead is a set of partial sources:

Court records APIs

Criminal cases are filed and disposed in county and state trial courts. This is the authoritative record, and it is also the most fragmented: thousands of courts, wildly varying online availability, and many jurisdictions still requiring in-person retrieval. Federal cases live in PACER, which is fee-based and offers no free bulk API; the Free Law Project's CourtListener and RECAP provide API access over the federal documents they have collected.

Serious screening providers run county-level searches precisely because the aggregated products miss cases. Depth costs money and time — that is the entire trade.

Inmate and corrections data

Most state departments of correction publish inmate and offender lookups covering current and former inmates, and the federal Bureau of Prisons publishes an inmate locator. Coverage is limited to people who were incarcerated in that system — no jail-only sentences, no probation-only dispositions, and typically no charges that did not result in a prison term.

Arrest and booking records

County sheriffs publish booking logs, and vendors aggregate them. This is the fastest-moving source and the most dangerous one to use naively: an arrest is not a conviction, booking records frequently never receive a disposition update, and reporting non-conviction information is restricted under the FCRA and prohibited outright for employment purposes in a number of states.

Registries and exclusion lists

Sex offender registries, state abuse and neglect registries, nurse aide registries, the OIG List of Excluded Individuals and Entities, and SAM.gov exclusions are all separate systems with separate rules. They are status lists, not criminal histories — presence means a specific administrative or judicial finding was made, and absence means very little. The registry layer is usually the easiest of these to cover well, because a single nationwide sex offender search API can replace fifty-odd separate state integrations — the criminal-history side has no equivalent shortcut. For how to evaluate that layer, see choosing a sex offender registry API.

The coverage math

A person can have a real conviction that appears in none of the sources you queried: wrong county, sealed record, name variant, aggregator snapshot predating the filing. Design your product so a clean result is reported as "no records found in the sources searched," and list the sources. It is more honest and it is a better legal position.

Crime data APIs: FBI, NIBRS and open data

If the question is about geography rather than a person, the sources are better structured and largely free.

  • FBI Crime Data Explorer. The FBI publishes national crime data through the Crime Data Explorer, which exposes an API for programmatic access using a key issued through the federal API key service. It covers agency-level offense, arrest, and related data drawn from the national collection program.
  • NIBRS. The FBI transitioned its national collection to the National Incident-Based Reporting System, which captures incident-level detail — multiple offenses per incident, victim and offender characteristics, relationships — rather than the older summary hierarchy. It is far richer than the legacy summary data.
  • Municipal open data. Many large cities publish incident-level feeds on Socrata or ArcGIS platforms, often updated daily and geocoded to block level. This is the only place to get genuinely recent, fine-grained data.

Two caveats that determine whether your analysis is sound:

  1. 1Reporting is voluntary and incomplete. Participation in national collection varies by agency and by year. The NIBRS transition in particular changed which agencies were reporting, so year-over-year comparisons across that boundary can show movement that is an artifact of participation rather than of crime.
  2. 2These are reported offenses. They measure what was reported to and recorded by police, which is not the same as what occurred. Categories with low reporting rates are systematically understated.

What an offender API actually returns

Whatever the source, expect to build a normalization layer. There is no shared schema across person-level providers, and the fields you most want are the ones most often missing:

  • No universal person identifier. Matching is name plus date of birth plus whatever else you have. Same problem as registry data, same mitigations.
  • Dispositions are frequently absent. A charge without an outcome is the most common defect in aggregated criminal data, and it is the field that determines whether the record is usable at all.
  • Offense descriptions are free text. "Theft," "larceny," "TOL," and a bare statute citation may all describe the same thing. If you need severity or category, you are building that mapping yourself.
  • Sealing and expungement lag. A record cleared by a court can persist in an aggregator's snapshot. Where you are acting as or through a consumer reporting agency, the FCRA requires reasonable procedures to assure maximum possible accuracy, and separately limits the reporting of certain non-conviction items after seven years.

Architecting a background screening pipeline

The shape that holds up in production, independent of which vendors you pick:

  1. 1Canonical subject record. One normalized identity — legal name, aliases, prior names, date of birth, address history — built once and reused for every query. Sources disagree; your representation should not.
  2. 2Fan out, don't chain. Registries, criminal search, exclusion lists and abuse registries are independent queries. Run them concurrently and collect results; sequencing them is the difference between seconds and minutes. Prefer sources that answer synchronously — a sex offender search API that returns scored, deduplicated results in one call keeps the whole fan-out inside a request cycle, while a county court search that takes days has to be modeled as an async step from the start.
  3. 3Score, don't decide. Every hit carries a confidence and the fields that produced it. The system's output is a reviewable finding, never an automated denial.
  4. 4Route to a named adjudicator. Hits go to a human with a defined SLA and a documented standard. Who reviewed it and on what basis is the record that matters if the decision is ever challenged.
  5. 5Retain the raw response. Store what each source returned, with timestamps and source identity. Disputes are unwinnable without it.
  6. 6Re-screen on a schedule. A check is a point-in-time snapshot. Exclusion lists in particular are updated on a regular cadence and are commonly re-screened monthly; a single pre-hire check leaves the rest of the employment relationship uncovered.

FCRA and fair-chance compliance

If any part of this influences a decision about employment, housing, credit, or insurance, you are in FCRA territory and the obligations are procedural and specific: permissible purpose, standalone disclosure and written authorization, pre-adverse action notice with a copy of the report and the summary of rights, a reasonable waiting period, and a final adverse action notice. Separately, EEOC guidance disfavors blanket criminal-history exclusions and expects an individualized assessment weighing the offense, the time elapsed, and its relevance to the job. State and local fair-chance laws add timing rules, lookback limits, and restrictions on non-conviction data that vary by the location of the role.

None of that is optional because you built the integration yourself rather than buying a screening product. The obligations attach to the use, not to the architecture.

The healthcare application

In post-acute care this stops being theoretical. Facilities screen employees, contract and agency staff, and vendors — and they also need screening at resident intake, where a referral must be checked against registries and exclusion lists before a bed is offered. The two flows use overlapping data sources under different legal frameworks, which is exactly the distinction this article opened with.

The operational failure mode is not usually a missing data source. It is inconsistency: the check that got skipped on a busy Friday, the agency nurse nobody screened, the annual re-screen that slipped to eighteen months. Running the full set automatically on every referral and every worker, with a retained audit trail, is what automated compliance screening is for — and it is the part that survives an audit.

Frequently asked questions

Is there a national criminal records API?

Not one available commercially. The FBI maintains national systems, but access is limited to law enforcement and to specifically authorized noncriminal-justice purposes, generally through approved channelers. Products marketed as a "national criminal database" are aggregations of court, corrections, and booking sources with real coverage gaps — which is why thorough screens still run county-level searches.

Where can I get free crime data?

The FBI Crime Data Explorer exposes an API for national offense and arrest data using a federal API key, and it is built on incident-level NIBRS reporting. Many large cities also publish geocoded, incident-level feeds through open-data platforms like Socrata and ArcGIS, usually far more current than the national datasets.

Why does crime data lag by a year or more?

National data is compiled from voluntary agency submissions, validated, and published on an annual cycle. Agency participation also changes year to year — the transition to NIBRS-only collection shifted which agencies reported — so apparent trends across that boundary can reflect participation changes rather than actual crime changes.

Do FCRA rules apply if we build the integration ourselves?

The obligations attach to the use, not the architecture. If results influence decisions about employment, housing, credit, or insurance, FCRA requirements around permissible purpose, disclosure and authorization, and the adverse action sequence apply — along with EEOC guidance and state and local fair-chance laws.

What is NIBRS?

The National Incident-Based Reporting System, the FBI’s incident-level crime reporting standard. Unlike the older summary reporting it replaced, NIBRS captures multiple offenses per incident along with victim, offender, property and relationship detail — which makes it far more useful analytically, but also means data before and after the transition is not directly comparable.

Is there a free inmate search API?

Most state departments of correction publish inmate lookups and the federal Bureau of Prisons publishes an inmate locator, but these are search interfaces rather than documented developer APIs, and formats differ by state. Coverage is also narrow by definition: only people incarcerated in that system, so jail-only sentences and probation-only dispositions do not appear.

See how MedFlo AI automates admissions

Referral intake, clinical extraction, insurance verification and compliance screening — running on every referral, automatically.

Keep reading