Offendersearch
The database

A registered offender database you can audit.

58 US registries read at source, normalized into one schema, refreshed daily, and returned with a citation on every record. Here is what is in it, how current it is, how each jurisdiction differs, and what the API guarantees short.

58
Registries, read at source
Nightly
Every registry, every night
Hours
Typical record age, not months
1
Normalized schema

Measured August 2026 against offenders.io’s live API: their records commonly ran more than six months old by their own timestamps, and more than a year and a half old in about half of all states. Method and caveats below — freshness is not completeness.

Sources

Where the records come from

Every record is read from an official public registry. We do not buy an aggregated feed, and we never use a competitor as a source.

50

State sex-offender registries, read at source rather than through an intermediary.

1

The District of Columbia registry.

5

US territory registries: Puerto Rico, Guam, US Virgin Islands, American Samoa and the Northern Mariana Islands.

1

NSOPW, the Department of Justice national public search, as a cross-check layer.

Schema

One record shape across every jurisdiction

Fifty-seven registries publish fifty-seven different formats. They arrive in your code as one shape. Not every field is populated everywhere — what a registry does not publish, we do not invent.

Identity

name.fullname.firstname.lastaliases[]dobbirthYeardobPrecisionagesexrace

Description

heightweighteyeColorhairColormarksphotos[]

Location

addresses[]addresses[].typeaddresses[].lataddresses[].lngjurisdiction

Offence & status

offense.statuteoffense.descriptionoffense.tieroffense.riskLevelregistrationDatestateData.statusflags.absconderflags.predator

Match & provenance

matchConfidencematchBasis[]matchStatesources[]sources[].jurisdictionsources[].registryNamesources[].recordUrlsources[].lastCheckedAt
Freshness

The one claim we will put a number on

Freshness is the property that decides whether a screening decision was made on a record that still reflects reality — and it is the one we measure, publish per source, and return on every response.

Ours, measured August 2026

  • All 58 registries refreshed daily — none on a weekly or probe-only cadence
  • Median record age measured in hours across the large majority of jurisdictions
  • Everywhere else, days — never months
  • A last-checked timestamp on every record, so you can see it for yourself

offenders.io, same run, their own timestamps

  • Records commonly over six months old, by their own timestamps
  • In about half of all states, over a year and a half old
  • Two jurisdictions (Northern Mariana Islands and US Virgin Islands) returned no rows at all; two more (American Samoa and Guam) returned too few for the comparison to mean anything, and both of those came back fresh

Read this before you quote the comparison above

How freshness is stated. Ours is the median of last_seen — the timestamp of the last sweep that actually re-observed that record at its source, which every response carries as lastCheckedAt so you can read it off the answer rather than take our word for it. Competitor figures are scored on the only freshness field their API exposes to a paying customer. We state these results in ranges rather than exact figures because the underlying numbers move every night, and a figure fixed into a web page stops being true quickly. Ask us for the current run — we will send you the exact per-jurisdiction numbers.

  • Their timestamp records a change, not a re-check. offenders.io’s updatedAt records when a row last changed, which is not the same as when it was last re-checked against the source. It is nonetheless the only freshness field their API exposes to a paying customer, so it is the only thing a buyer can actually measure them on — and a row whose updatedAt is years old is a row they cannot show has been re-checked since.
  • Freshness is a measured property. Freshness and coverage are two different measurements and a buyer should judge them separately. Offendersearch returns per-source status and a last-verified timestamp on every response, so freshness is something you read off the answer rather than something a vendor asserts about itself.
The honest part

What we measure, and what we will not claim

Every vendor in this category claims the most complete database. We measured ours against the live registries and against a competitor, and published the method.

We publish measured numbers, not superlatives

Every coverage figure on this site is measured against the live registries and against a competitor, and where a number moves we point you at the reference rather than freezing it in a headline. Anyone telling you their offender database is "the most complete" has not measured it against anybody.

Radius search is a locator, not a sweep

Radius search sees the records that carry latitude and longitude, and a registrant whose registry publishes only a residency status has no point on a map. Use a name or ZIP search when completeness is the requirement — those reach every record, mapped or not.

Depth varies by registry, because publication varies by registry

Georgia publishes a date of birth for every registrant; some registries publish none. Statute-level offence detail is close to universal in some states and partial in others. Every record reports its own source so you can see exactly what you got, and the per-jurisdiction rates are published in our field reference.

An incomplete search is never returned as an empty answer

If a registry cannot be searched to the end on your query, the response says so in a field you can branch on — status is partial, that registry is marked incomplete with a machine-readable reason, and the warning states in plain words that a zero is a lower bound and not evidence of no match. A silent zero is the most dangerous output a registry search can produce, and we do not emit one.

See the full head-to-head comparison

FAQ

Database questions

How many records are in the database?

We publish a floor rather than a headline. Our provable unique-person floor is over half a million registrants, established on unique first name, last name and date of birth, and the true figure is higher — cross-source de-duplication is DOB-gated and a substantial share of rows carry no DOB. We will not publish the raw row count, which is duplicated on its face and would overstate the database considerably. Ask us for the current measured figures and we will send them.

How current is the data?

All 58 registries are refreshed every night, so most records are hours old rather than months old. Every record carries its own lastCheckedAt — the moment we last re-checked it at the source — so you can see how current each result is instead of taking it on faith.

Where does the data come from?

It is first-party public-record data, collected and normalized by us across all 58 jurisdictions we cover. We do not license an aggregated feed and we never use a competitor as a source, which is why every record can be traced back to the specific public record it represents and carries its own lastCheckedAt.

What cohorts does the database distinguish?

Flags that most pipelines flatten away are preserved: absconder, predator, incarcerated status, and registrants with no publishable address — that last group being a cohort an address-keyed pipeline drops entirely, and it runs to tens of thousands of people. These flags overlap, so they are counts of records carrying each flag, not slices of a partition.

Can I get a bulk export of the database?

The product is a query API, not a bulk download. The asynchronous endpoint is built for high-volume work and supports large recurring pulls, and batch search takes up to 1,000 queries in one request. Use is subject to our acceptable-use terms, and some jurisdictions restrict commercial use of registry data.

Query the database in one call

Nationwide by default, scored, de-duplicated, and source-tagged. $0.15 per call, no seats and no minimums.