---
title: "Retrieve known sex offender history by exact identifier"
method: GET
path: "/sexoffender/history"
---

# Retrieve known sex offender history by exact identifier

`GET /sexoffender/history`

History is available to all API accounts; normal authentication and usage rules apply. Send either uuid or personUuid. Results are returned from newest to oldest, with up to 50 records per page. Record links do not confirm identity; verify important details with the official registry. For a printable PDF of available History, use /sexoffender/report/history with the same identifier and API key.

## Query parameters

- `key` string
- `uuid` string, uuid
- `personUuid` string, uuid
- `page` integer

## Headers

- `X-Request-Id` string

## Response `200`

Known records connected to the exact identifier

- HistoryResponse
  - `offenders` Offender[], required
    - `name` string — Full name
    - `firstName` string
    - `lastName` string
    - `middleName` string
    - `aliases` Alias[] — Known aliases (Extensive Mode only)
      - `prefix` string, nullable
      - `givenName` string
      - `middleName` string, nullable
      - `surName` string
      - `suffix` string, nullable
    - `dob` string, date-time, nullable — Normalized date of birth in UTC when available. Use dobPrecision to distinguish a full date from source-reported year-month, year-only, or unknown values.
    - `dobPrecision` 'exact' | 'year' | 'year_month' | 'unknown' — Source precision of the dob field: exact, year_month, year, or unknown.
    - `address` string
    - `city` string
    - `county` string — Residence county when available.
    - `state` string
    - `zipcode` string
    - `locations` Location[] — All official addresses (Extensive Mode only)
      - `type` string
      - `streetAddress` string
      - `city` string
      - `county` string
      - `state` string
      - `zipCode` string
      - `fromDate` string
      - `toDate` string
      - `latitude` number, double
      - `longitude` number, double
    - `sex` string
    - `age` string
    - `eyeColor` string
    - `hairColor` string
    - `height` string
    - `weight` string
    - `race` string
    - `ethnicity` string
    - `marks` string — Formatted tattoos, scars, and marks. Multiple source entries are newline-delimited.
    - `riskLevel` string
    - `crime` string — Newline-delimited public summaries derived from validated official offense records.
    - `content` string — Pre-formatted HTML summary when provided by the source response.
    - `registrationDate` string, date-time, nullable
    - `offenderUrl` string, uri — URL to source state registry page
    - `offenderImageUrl` string, uri — Profile image URL from state registry
    - `offenderImageUrlR2` string, uri — Cached profile image URL
    - `lat` number — Latitude (-1 if unknown)
    - `lng` number — Longitude (-1 if unknown)
    - `jurisdiction` string — State/jurisdiction code
    - `isAbsconder` boolean, nullable
    - `isPredator` boolean, nullable
    - `updatedAt` string, date-time
    - `createdAt` string, date-time, nullable
    - `uuid` string, uuid — Unique identifier for this record.
    - `personUuid` string, uuid — Identifier used to connect known records for the same person.
    - `locationHistory` LocationHistoryEpisode[] — Available address history for this record. Returned by Sex Offender History only.
      - `address` string — Street address.
      - `addressFull` string — Full formatted address, when available.
      - `city` string
      - `state` string
      - `zipcode` string
      - `lat` number, double
      - `lng` number, double
      - `observedAt` string, date-time
      - `basis` 'source' | 'vendor' | 'legacy' | 'synthetic' — Address reference category: source means it came from a public registry record; vendor means an address reference; legacy means an earlier saved address record; synthetic means fake testing-key data.
    - `sources` Source[]
      - `id` string
      - `name` string
      - `url` string, uri
    - `stateData` StateData — Allowlisted jurisdiction-specific registry data (Extensive Mode only). Availability varies by jurisdiction. Repeated entities such as offenses and photos are object arrays; marks is one formatted string with multiple source entries newline-delimited.
      - `stateOffenderId` string
      - `status` string
      - `designation` string
      - `complianceStatus` string
      - `aliases` string[]
      - `initialRegistrationDate` string
      - `lastVerificationDate` string
      - `addressVerificationDate` string
      - `registrationEnds` string
      - `isLifetimeRegistration` boolean
      - `marks` string — Formatted scars, marks, and tattoos. Multiple source entries are newline-delimited.
      - `verificationRequirement` string
      - `lawAgency` string
      - `ethnicity` string
      - `incarcerationStatus` string
      - `school` string
      - `employer` string
      - `registrationStartDate` string — Official registration start date, when published by the jurisdiction
      - `sourceModifiedAt` string — Official source-system modification value in the jurisdiction's native precision and format; not a registration, verification, conviction, release, or other offender business-event date
      - `registrationEndDate` string
      - `registrationDuration` string
      - `comments` string
      - `judgmentOfConvictionUrl` string, uri
      - `locations` Location[]
        - `type` string
        - `streetAddress` string
        - `city` string
        - `county` string
        - `state` string
        - `zipCode` string
        - `fromDate` string
        - `toDate` string
        - `latitude` number, double
        - `longitude` number, double
      - `offenses` object[]
        - `offense` string
        - `convictionDate` string
        - `releaseDate` string
        - `statute` string
        - `victimAge` string
        - `victimSex` string
        - `jurisdiction` string
        - `caseNumber` string
        - `adjudication` string
      - `vehicles` object[]
        - `type` string
        - `make` string
        - `model` string
        - `plate` string
        - `state` string
        - `color` string
        - `year` string
        - `hullNumber` string — Official vessel hull identifier, when published by the jurisdiction
      - `photos` object[]
        - `photoId` string
        - `isCurrent` boolean
        - `datePosted` string
        - `date` string
        - `url` string, uri
      - `victimInfo` object[]
        - `gender` string
        - `sex` string
        - `age` string
        - `minor` boolean
        - `classification` string
        - `race` string
      - `criminalHistory` object[]
        - `offense` string
        - `date` string
        - `charge` string
        - `arrestDate` string
        - `disposition` string
        - `dispositionDate` string
  - `page` integer, required
  - `totalPages` integer, required

## Other responses

- `400` — Exactly one valid uuid or personUuid is required; page must be a positive integer.
- `401` — Missing or invalid API key.
- `403` — Account or environment restrictions prevent this request.
- `405` — Method not allowed.
- `429` — Rate limit exceeded.
- `502` — The History lookup backend is temporarily unavailable.
- `503` — History or required audit infrastructure is temporarily unavailable.

## Changes

- **2026-09-01** `0c8be8ca6bda` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/offenders/apis/offenders-io-sex-offender-registry-api/changes/sexoffender/history/get.md)

---

[API](https://skmtc.dev/offenders/apis/offenders-io-sex-offender-registry-api.md) · [All operations](https://skmtc.dev/offenders/apis/offenders-io-sex-offender-registry-api/llms.txt) · [OpenAPI document](https://skmtc.dev/offenders/apis/offenders-io-sex-offender-registry-api/revisions/d7031a573a8d?raw)
