# Criminal Search API
> The Criminal Search API reference: the search, sources, jurisdictions and resolve endpoints for county, state and federal US criminal records in one call.
- **HTML:** https://offendersearch.app/docs/criminal

The Criminal Search API is a REST API for national criminal-records search. It lives
under `/v1/criminal/`, uses the **same API key** as the Sex Offender API, and returns
the same JSON envelope — a caller who knows one API knows both. Every match is a
normalized record with a `matchState`, and every response carries a `legal` notice.

**Not a consumer report.** This data may not be used for any purpose covered by the
FCRA (employment, tenant screening, credit, insurance). That restriction is a
condition of access and is stated in the `legal` block of every response.

## Access

Criminal Search is **available on every account automatically** — there is nothing to
enable and no entitlement to request. Any valid `X-API-Key` can call every
`/v1/criminal/*` endpoint immediately, and live verification works the same way with no
separate add-on (you pay only per live source you consult).

## Coverage today

Live today: the statewide DOC (state-prison) systems. The county jail and court layer
is expanding, added jurisdiction by jurisdiction, with the federal layer alongside it.
The always-current answer is `GET /v1/criminal/sources` (no key) — read it at
integration rather than hard-coding a list.

## Endpoints

- `POST /v1/criminal/search` — the primary endpoint. Cached by default (sub-second, no
  live source consulted); send a `live` block to re-check the jurisdiction(s) in-request,
  billed per completed source to a $2.00 ceiling. `query.lastName` is required; `page`
  and `perPage` are top-level.
- `GET /v1/criminal/sources` — coverage catalog plus per-jurisdiction currency (the
  timestamp of each jurisdiction’s last update). No API key required.
- `GET /v1/criminal/jurisdictions` — the coverage catalog as neutral codes, filterable
  by `state`, `recordKind` and `live`. Requires an API key.
- `POST /v1/criminal/resolve` — map a roster or court website you know to our neutral
  jurisdiction code. Entitlement-gated, consults no live source, not metered.

Jurisdiction codes are neutral handles: `<ST>-<COUNTY>` for a county, `<ST>-<RECORD-KIND>`
for a statewide or federal system (e.g. `TX-DOC`). A code names a state and a place, and
nothing else. The corpus is continuously updated.

HTML reference: https://offendersearch.app/docs/criminal

---

## Related

- Index: [Offendersearch API documentation](https://offendersearch.app/docs.md)
