Service Status: All Systems Operational — Safeguarded by our multi-cloud infrastructure.
📄 Download PDF Version
The PDF guide includes additional details, diagrams, and examples not covered on this page.

Unlike competitors with weekly updates, our Sex Offender Registry API features daily updates, sub-200ms response times, and an exclusive 99.9% Uptime SLA, making it the reliable choice for background checks, security platforms, and public safety applications.

All Systems Operational
Uptime: Avg Response:
On This Page

Base URL

https://api.offenders.io/sexoffender

Authentication

Pass your API key as a query parameter key on every request.

GET /sexoffender?key={YOUR_API_KEY}&firstName=Alice

Get a free API key at offenders.io/pricing. First 50 requests/month are free.

💡 Using an AI assistant? You can also access full records via our MCP server with the same API key — no code needed.

Search Modes

Regular Search

Targeted lookups by name, DOB, address, zip code, or any combination. At least one query param is required.

GET /sexoffender?key={KEY}&firstName=Alice&zipcode=12345

Extensive Mode +$0.05/call

Add &mode=extensive to search through all known aliases on file. Ideal for state-compliance visitor screening (e.g. healthcare facilities).

GET /sexoffender?key={KEY}&firstName=Alice&lastName=Smith&mode=extensive

⚠ Slower response (~2s+). Has rate limit — not for batch processing.

GIS / Geospatial Search EXCLUSIVE

Find offenders within a radius of any GPS coordinate. The only API with native geospatial search. Can combine with name/city filters.

GET /sexoffender?key={KEY}&lat=30.967&lng=-91.116&radius=2&page=1

Query Parameters

ParameterTypeDescriptionExample
keystringYour API key (required)YOUR_API_KEY
firstNamestringFirst name of offenderAlice
lastNamestringLast name of offenderSmith
dobstringDate of birth1990-01-15
citystringResidence citySan Francisco
statestringResidence state (full name)California
zipcodestringResidence zip code94104
latnumberLatitude (GIS search)30.967
lngnumberLongitude (GIS search)-91.116
radiusnumberRadius in miles (default 1, max 100)5
modestringSet to extensive for alias searchextensive
prefixMatchstringPrefix match on firstName or lastNamefirstName
createdAtStartstringFilter by when the registrant first appeared in our system. Use this to create alerts for new offenders (e.g., new registrants in a zip code this month).2026-01-01
createdAtEndstringFilter by first appearance in system2026-01-31
updatedAtStartstringFilter by last update in system2026-01-01
updatedAtEndstringFilter by last update in system2026-01-31
faceIdstringFace ID from Facial Search API4d8ade05...
uuidstringPull single record by UUID807ff46d...
personUuidstringPull single record by Person UUID83425e56...
pagenumberPage number for GIS search pagination. Each page is billed as a separate API call.3

Response Fields

Each offender object in the offenders array contains:

FieldTypeDescriptionExampleEmpty
namestringFull name including middle name"JOHN M DOE"""
firstNamestringFirst name"JOHN"""
lastNamestringLast name"DOE"""
aliasesarrayKnown aliases (Extensive Mode only)[{"givenName":"JAY","surName":"DOE"}][]
dobISO dateDate of birth in UTC. Some states report year only (defaults to YYYY-01-01)"1990-01-15T00:00:00.000Z"null
addressstringResidence street address"123 MAIN ST"""
citystringResidence city"RICHMOND"""
statestringResidence state (full name)"Virginia"""
zipcodestringResidence zip code"23219"""
locationsarrayAll official addresses (Extensive Mode only)see Location Object[]
sexstringRegistered sex"Male"""
agestringAge"35"""
eyeColorstringEye color"Brown"""
hairColorstringHair color"Black"""
heightstringHeight"5 ft 10 in"""
weightstringWeight"180 lbs."""
racestringRace"White"""
ethnicitystringEthnicity"Non-Hispanic"""
marksstringMarks, tattoos, scars"TAT R ARM, SC L KNEE"""
riskLevelstringRisk level"Tier 3"""
crimestringCrimes committed for registration"SEXUAL ASSAULT (01/15/2005)"""
registrationDateISO dateDate first registered"2005-03-01T00:00:00.000Z"null
offenderUrlstringURL to source state agency page"https://example.gov/offender/123"null
offenderImageUrlstringProfile image URL"https://example.gov/photo/123"null
latnumberLatitude of address37.5407-1
lngnumberLongitude of address-77.4360-1
jurisdictionstringJurisdiction code (e.g. CA, WV)"VA"null
isAbsconderbooleanKnown absconder statusfalsenull
updatedAtISO dateLast update timestamp"2026-03-31T12:00:00.000Z"null
uuidstringUnique record identifier"807ff46d-1234-5678-9abc-def012345678"""
contentstringPre-formatted HTML summary""
sourcesarrayData source references[{"id":"nsopw","name":"NSOPW"}][]
pagenumberCurrent page (GIS only)11
totalPagesnumberTotal pages (GIS only)31
stateData*objectRaw state agency data (Extensive Mode only, experimental)see stateData Schemanull

* Experimental fields are not guaranteed and may be removed without notice.

stateData Schema

The stateData object contains structured, state-specific data. Availability varies by state — not all fields are present for every offender.

FieldTypeDescriptionExample
stateOffenderIdstringState registry ID"SO-123456"
statusstringRegistration status"Active", "Incarcerated"
designationstringOffender classification"Sexually Violent Offender"
complianceStatusstringRegistration compliance"COMPLIANT", "NON-COMPLIANT"
offensesarrayCriminal convictions (see Offense Object below)see below
aliasesarrayKnown aliases["JOHN DOE", "J DOE"]
locationsarrayOfficial addresses (see Location Object below)see below
vehiclesarrayRegistered vehicles[{"plate":"ABC1234","make":"Toyota","model":"Camry","year":"2015","color":"White"}]
victimInfoarrayVictim information[{"gender":"Female","minor":true}]
initialRegistrationDatestringFirst registration date"2000-12-19"
registrationEndsstringRegistration end date"2030-12-31"
isLifetimeRegistrationbooleanLifetime registration flagtrue
lastVerificationDatestringLast verification date"2025-02-20"
addressVerificationDatestringLast address verification"2025-02-20"
marksstringScars, marks, tattoos"TAT R ARM, SC L KNEE"
ethnicitystringEthnicity"Hispanic", "Non-Hispanic"
lawAgencystringSupervising law enforcement"HOUSTON POLICE DEPT"
incarcerationStatusstringIncarceration/supervision status"On Parole"
verificationRequirementstringVerification frequency"QUARTERLY"
employerstringEmployer information"ACME CORP, CHARLESTON WV"
schoolstringSchool attendance"STATE UNIVERSITY"

Offense Object

FieldTypeExample
offensestring"LEWD,LASCIVIOUS CHILD U/16"
convictionDatestring"07/02/1998"
statutestring"F.S. 800.04"
victimAgestring"16"
victimSexstring"Female"
jurisdictionstring"Miami-Dade, FL"
caseNumberstring"CR-2024-0001"

Location Object

FieldTypeExample
typestring"RESIDENTIAL", "WORK"
streetAddressstring"123 MAIN ST"
citystring"RICHMOND"
statestring"VA"
zipCodestring"23221"
latitudenumber40.7128
longitudenumber-74.0060

* stateData availability varies by state. Not all fields are present for every record.

Full Example Response

//Response
{
  "offenders": [
    {
      "name": "First M Last",
      "firstName": "First",
      "firstName_nicknames": ["firsty", "firs", "1st"],
      "lastName": "Last",
      "aliases": [
        {
          "prefix": null,
          "givenName": "FIR",
          "middleName": null,
          "surName": "ST",
          "suffix": null
        },
        {
          "prefix": null,
          "givenName": "FIRST",
          "middleName": "M",
          "surName": "LA",
          "suffix": null
        },
        {
          "prefix": null,
          "givenName": "FIRST",
          "middleName": "NONAME",
          "surName": "LAST",
          "suffix": null
        },
        {
          "prefix": null,
          "givenName": "X",
          "middleName": null,
          "surName": "THE X",
          "suffix": null
        }
      ],
      "dob": "1900-10-01T00:00:00.000Z",
      "address": "10000 San Francisco Way",
      "city": "San Francisco",
      "state": "California",
      "zipcode": "94104",
      "locations": [
        {
          "name": null,
          "type": "R",
          "streetAddress": "10000 San Francisco Way",
          "city": "San Francisco",
          "county": "California",
          "state": "CA",
          "zipCode": "94104",
          "zipCodeExtension": null,
          "latitude": 50.12345,
          "longitude": -34.67890
        },
        {
          "name": null,
          "type": "E",
          "streetAddress": "200 FL DRIVE",
          "city": "Miami",
          "county": "Miami-Daide",
          "state": "FL",
          "zipCode": "33129",
          "zipCodeExtension": null,
          "latitude": 34.67890,
          "longitude": -50.12345
        }
      ],
      "sex": "Male",
      "age": "123",
      "offenderUrl": "https://meganslaw.ca.gov/OffenderDisplay.aspx?search...",
      "offenderImageUrl": "https://meganslaw.ca.gov/NSOPWPI.ashx?f=...&NSOPRFlag=True",
      "jurisdiction": "CA",
      "isAbsconder": false,
      "isPredator": true,
      "eyeColor": "Green",
      "hairColor": "Brown",
      "height": "5'11\"",
      "weight": "200 lbs.",
      "race": "White",
      "marks": "tattoo on r_arm (cross / cover the cross with tribal symbol); tattoo on l_arm (pic of a lady); tattoo on l_arm (something); ...",
      "riskLevel": "2",
      "crime": "Crime:  14:81 - Indecent Behavior with Juveniles; Juvenile victim, Conviction date:  2199-09-09, Jurisdiction:  California",
      "registrationDate": "2012-12-31T00:00:00.000Z",
      "content": "<br><b>Zip Code: </b>94104<br><b>Sex: </b>Male<br><b>Age: </b>123...",
      "lat": 50.12345,
      "lng": -34.67890,
      "sources": [
        {
          "name": "National Sex Offender Public Website",
          "id": "nsopw",
          "url": "https://www.nsopw.gov/"
        },
        {
          "name": "New York State Division of Criminal Justice Services",
          "id": "criminaljustice.ny.gov",
          "url": "https://www.criminaljustice.ny.gov/"
        }
      ],
      "updatedAt": "2026-03-05T21:35:42.936Z",
      "uuid": "5893a310-37ce-58d8-b101-39e76a60e94a",
      "stateData": {
        "stateOffenderId": "SO-123456",
        "status": "Active",
        "designation": "Sexually Violent Offender",
        "offenses": [
          {
            "offense": "AGGRAVATED SEXUAL BATTERY",
            "convictionDate": "11/04/1999",
            "statute": "18.2-67.3",
            "jurisdiction": "Richmond Circuit",
            "victimAge": "Unknown"
          }
        ],
        "aliases": ["JOHN A DOE", "JOHNNY DOE"],
        "initialRegistrationDate": "2000-12-19",
        "lastVerificationDate": "2026-02-20",
        "complianceStatus": "COMPLIANT",
        "isLifetimeRegistration": true,
        "incarcerationStatus": "On Parole",
        "lawAgency": "RICHMOND POLICE DEPT",
        "vehicles": [{"plate":"ABC1234","make":"Toyota","year":"2015"}],
        "victimInfo": [{"gender":"Female","minor":true}]
      }
    }
  ]
}

Result Limits

Error Handling

CodeMeaningExample Response
400Bad Request{"error":"Invalid input params","reason":"no query params presented"}
401Unauthorized — missing or invalid API key{"code":401,"message":"Missing API key"}
405Method Not Allowed

Code Examples

JavaScript / Node.js

const res = await fetch(
  `https://api.offenders.io/sexoffender?key=${API_KEY}&zipcode=94104`
)
const { offenders } = await res.json()
console.log(offenders[0].name, offenders[0].city)

Python

import requests

r = requests.get("https://api.offenders.io/sexoffender", params={
    "key": API_KEY,
    "firstName": "Alice",
    "zipcode": "94104"
})
offenders = r.json()["offenders"]

cURL

curl "https://api.offenders.io/sexoffender?key=YOUR_KEY&lat=30.967&lng=-91.116&radius=2"

Batch Processing

Need to process thousands of records? Use our web-based batch tool at batch.offenders.io — upload a CSV with First Name, Last Name, and optional DOB. See the Batch Processing Guide for details.

Ready to integrate?

Get your free API key and start making calls in minutes — via REST API or MCP server.

Get Free API Key →