Normalized fields reference
Every outcome, severity, category, NCIC code, custody event and case class, with the source's own text served beside it.
Livehttps://api.offendersearch.appSandboxhttps://sandbox.offendersearch.appNormalized criminal record fields beside the source’s words
Courts, jails and prisons describe the same facts in different words: “GUILTY”, “CONVICTED”, “Judgment and sentence”. Every record therefore carries a normalized object with one closed set of classes for category, severity, outcome, custody, person codes, places and dates. They are what search filters test.
unknown or null, never a guess.normalizedis on every record, in search, batch and the record lookup. It isnullwhen a record could not be classified.rulesVersionnames the version of the rules that produced the values, andqualityisquarantinedwhen a source’s normalized values are withheld (its own fields are unaffected).include: ["normalizedDetail"]on a search addsruleto every charge: which rule decided its outcome.normalized.cases[]and each case’scharges[]follow the order of the record’s owncases[]andcharges[].
{
"recordType": "court_case",
"sex": "Male", "race": "White",
"cases": [ { "caseNumber": "201944871", "status": "Disposed", "caseType": "Felony",
"charges": [ { "statute": "PC 22.02", "description": "AGG ASSAULT W/DEADLY WEAPON",
"severity": "felony", "disposition": "GUILTY", "plea": "GUILTY" } ] } ],
"normalized": {
"rulesVersion": 1, "quality": "ok",
"recordCategory": "court", "custodyStatus": "disposed",
"sex": "M", "race": "W", "hair": null, "eyes": null,
"residence": null,
"jurisdiction": { "line1": null, "city": null, "county": "Harris", "countyFips": "48201",
"state": "TX", "zip5": null, "lat": null, "lng": null, "geoPrecision": "none" },
"topSeverity": "felony", "hasConviction": true, "convictionCount": 1,
"chargeCategories": ["assault"], "outcomes": ["convicted"],
"latestOffenseDate": "2019-05-01", "latestDispositionDate": "2019-11-15",
"latestFiledDate": "2019-05-03",
"hasPhoto": false, "vacatedOrSealed": false,
"cases": [ { "stage": "closed", "caseClass": "felony",
"charges": [ { "category": "assault", "notACharge": false,
"severity": "felony", "severityBasis": "published", "degree": null,
"outcome": "convicted", "convicted": true, "custodyEvent": null } ] } ]
}
}| Normalized value | The source’s words, on the same record |
|---|---|
| normalized.sex / race | sex and race on the record, as published. |
| normalized.hair / eyes | physical on the record, as published. |
| normalized.custodyStatus | custodyStatus (the source's wording) and currentStatus on the record. |
| normalized.residence | address on the record. |
| charges[].severity / degree | cases[].charges[].severity and statute on the record. |
| charges[].outcome / convicted | cases[].charges[].disposition and plea on the record. |
| cases[].stage / caseClass | cases[].status and caseType on the record. |
Criminal charge outcome classes
outcome on each charge, and outcomes on the record (every class present). convicted is true only for convicted.
| outcome | Meaning | convicted |
|---|---|---|
| convicted | The charge ended in a conviction: a guilty plea, a guilty finding or a sentence, as the source records it. | true |
| pending | The charge is open and not yet decided. A hearing or motion about vacating a conviction is also pending. | null |
| dismissed | The court dismissed the charge. | false |
| nolle_prosequi | The prosecutor dropped the charge. | false |
| acquitted | The person was found not guilty. | false |
| deferred_or_diverted | Deferred adjudication, diversion or a similar program in which no conviction is entered. | false |
| vacated | The conviction was vacated, expunged, sealed, set aside or pardoned. | false |
| warrant | The charge is tied to an outstanding warrant. | null |
| transferred | The charge moved to another court or jurisdiction. | null |
| closed_unspecified | The charge is closed, and the source does not say how. | null |
| administrative | An administrative entry, not a decision on the charge. | null |
| unknown | The outcome cannot be decided from what the source published. | null |
Criminal charge severity and severityBasis
severity on each charge, and topSeverity (the highest) on the record. degree carries the source’s class or degree text, such as F3 or Class A, when stated.
| severity | Meaning |
|---|---|
| felony | A felony. |
| misdemeanor | A misdemeanor. |
| infraction | An infraction or violation below a misdemeanor. |
| unknown | The severity cannot be decided from what was published. Never read it as minor. |
severityBasis says what decided it, and is null when the severity is unknown. Filter with "severityBasis": ["published"] (together with severity) to trust only the source’s own label.
| severityBasis | Decided by |
|---|---|
| published | The source states the severity itself. |
| statute_code | A class code in the statute or charge (for example F3 or M1). |
| statute_table | An official table of the state's statutes. |
| case_type | The type of case the charge was filed under. |
| charge_text | Words in the published charge description. |
Criminal record and charge categories
recordCategory is the kind of record.
| recordCategory | Meaning |
|---|---|
| court | A court case. |
| jail | A jail booking. |
| prison | A state or federal prison record. |
| warrant | A warrant or a wanted-person notice. |
| registry | An offender registry entry. |
| exclusion | A government health-program or federal award exclusion. |
| other | Any other kind of record. |
category on each charge says what it is about, and chargeCategories on the record lists every one present. notACharge: true marks text in a charge slot that is not an offense, such as a custody, supervision or caption entry.
| category | Meaning |
|---|---|
| homicide | Homicide and manslaughter. |
| sex_offense | Sex offenses. |
| robbery | Robbery. |
| domestic_violence | Domestic violence, including protective-order violations. |
| assault | Assault, battery and threats. |
| weapons | Weapons offenses. |
| burglary | Burglary and breaking and entering. |
| theft | Theft, larceny and stolen property. |
| fraud | Fraud, forgery and identity theft. |
| drug_distribution | Drug manufacture, delivery and trafficking. |
| drug_possession | Drug possession. |
| dui | DUI and DWI. |
| traffic | Traffic offenses other than DUI. |
| public_order | Public order, trespass and property damage. |
| supervision | Probation and parole violations and failure to appear. |
| other | Other or unclear. |
Criminal custody status and custody events
custodyStatus is the person’s status on the record.
| custodyStatus | Meaning |
|---|---|
| in_custody | In jail or prison now. |
| released | Released. |
| on_parole | On parole. |
| on_probation | On probation. |
| active_warrant | An active warrant is out. |
| wanted | Wanted. |
| registered | On an offender registry. |
| disposed | The matter is disposed. |
| absconder | Absconded from supervision. |
| deceased | Deceased. |
| excluded | On a health-program or federal award exclusion list. |
| unknown | Not known. |
custodyEvent is a jail event listed against one charge. It is not a court outcome; the court outcome is outcome.
| custodyEvent | Meaning |
|---|---|
| booked | The person was booked on the charge. |
| released | The person was released on the charge. |
| bonded | Bond was posted on the charge. |
| held | The person is held on the charge. |
| transferred | The person was transferred on the charge. |
| null | No jail event is listed against the charge. |
Criminal case stages and case classes
| stage | Meaning |
|---|---|
| open | The case is open. |
| closed | The case is closed. |
| warrant | The case has an outstanding warrant. |
| unknown | The stage cannot be decided. |
| caseClass | Meaning |
|---|---|
| felony | A felony case. |
| misdemeanor | A misdemeanor case. |
| traffic | A traffic case. |
| infraction | An infraction case. |
| civil | A civil case. |
| unknown | The class cannot be decided. |
NCIC person codes on criminal records
sex, race, hair and eyes use the codes police systems use (NCIC). Each is null when the source publishes nothing, and the published words stay in the record’s own sex, race and physical.
| sex | Meaning |
|---|---|
| M | Male |
| F | Female |
| X | Another marker the source publishes |
| U | Unknown |
| race | Meaning |
|---|---|
| W | White |
| B | Black |
| I | American Indian or Alaska Native |
| A | Asian or Pacific Islander |
| H | Hispanic, only where the source publishes it as a race |
| U | Unknown |
| hair | Meaning |
|---|---|
| BLK | Black |
| BRO | Brown |
| BLN | Blond |
| RED | Red |
| GRY | Gray |
| WHI | White |
| SDY | Sandy |
| BLD | Bald |
| XXX | Unknown |
| eyes | Meaning |
|---|---|
| BLK | Black |
| BLU | Blue |
| BRO | Brown |
| GRN | Green |
| GRY | Gray |
| HAZ | Hazel |
| MAR | Maroon |
| PNK | Pink |
| MUL | Multicolored |
| XXX | Unknown |
Vacated and sealed criminal records: vacatedOrSealed
vacatedOrSealed is true when the source marks the record or a charge vacated, expunged or sealed. Such a record is marked and always returned; a vacated charge has the outcome vacated and convicted: false. A search leaves it out only when it sends excludeVacatedOrSealed: true.
The record also carries hasConviction, convictionCount, hasPhoto and its latest offense, filing and disposition dates, which the date filters and lookbackYears test.
The Normalized object — normalized criminal record fields
A record's normalized classes. Every value is our classification of a published fact; the fact itself stays in the record's own fields beside it. A value that cannot be decided from what was published is unknown or null, never a guess.
Returned or accepted by POST /v1/criminal/search, GET /v1/criminal/searches/{searchId}, POST /v1/criminal/batch, GET /v1/criminal/records/{recordId}.
| Field | Type | Description |
|---|---|---|
| rulesVersion | integer | Version of the classification rules that produced these values. Example 1 |
| quality | string one of "ok", "quarantined" | quarantined when this source's normalized values are withheld; the record's own fields are unaffected. |
| recordCategory | string one of "court", "jail", "prison", "warrant", "registry", "exclusion", "other" | The kind of record. |
| custodyStatus | string one of "in_custody", "released", "on_parole", "on_probation", "active_warrant", "wanted", "registered", "disposed", "absconder", "deceased", "excluded", "unknown" | The person's custody status on this record. |
| sex | string or null one of "M", "F", "X", "U" | NCIC sex code. null when the source publishes none; its own text stays in sex. |
| race | string or null one of "W", "B", "I", "A", "H", "U" | NCIC race code. H only where the source publishes Hispanic as a race. Its own text stays in race. |
| hair | string or null one of "BLK", "BRO", "BLN", "RED", "GRY", "WHI", "SDY", "BLD", "XXX" | NCIC hair-color code. |
| eyes | string or null one of "BLK", "BLU", "BRO", "GRN", "GRY", "HAZ", "MAR", "PNK", "MUL", "XXX" | NCIC eye-color code. |
| residence | NormalizedPlace or null | Where the person lives, from the published address. null when none is published. |
| jurisdiction | NormalizedPlace | Where the record is: the state and county of the court, jail or agency. |
| topSeverity | string one of "felony", "misdemeanor", "infraction", "unknown" | The highest severity of any charge on the record. |
| hasConviction | boolean | true when any charge's outcome is convicted. |
| convictionCount | integer | Charges whose outcome is convicted. |
| chargeCategories | array of string one of "supervision", "homicide", "sex_offense", "robbery", "domestic_violence", "dui", "assault", "weapons", "burglary", "fraud", "theft", "drug_distribution", "drug_possession", "traffic", "public_order", "other" | Every charge category on the record. |
| outcomes | array of string one of "convicted", "pending", "dismissed", "nolle_prosequi", "acquitted", "deferred_or_diverted", "vacated", "warrant", "transferred", "closed_unspecified", "administrative", "unknown" | Every outcome class on the record. |
| latestOffenseDate | string (date) or null | The latest offense date on the record. |
| latestDispositionDate | string (date) or null | The latest disposition date on the record. |
| latestFiledDate | string (date) or null | The latest filing date on the record. |
| hasPhoto | boolean | true when the record has a published photograph. |
| vacatedOrSealed | boolean | true when the source marks the record or a charge vacated, expunged or sealed. Such records are returned, marked, unless the search sends excludeVacatedOrSealed: true. |
| cases | array of NormalizedCase | One entry per case, in the order of the record's cases[]. |
The NormalizedPlace object — residence and jurisdiction
A place, normalized. Every text key is null when not known.
Returned or accepted by POST /v1/criminal/search, GET /v1/criminal/searches/{searchId}, POST /v1/criminal/batch, GET /v1/criminal/records/{recordId}.
| Field | Type | Description |
|---|---|---|
| line1 | string or null | Street line. Example "16966 NORTHCHASE DR APT 313" |
| city | string or null | City. Example "HOUSTON" |
| county | string or null | County. Example "Harris" |
| countyFips | string or null | Five-digit county FIPS code. Example "48201" |
| state | string or null | Two-letter state code. Example "TX" |
| zip5 | string or null | Five-digit ZIP. Example "77060" |
| lat | number or null | Latitude. |
| lng | number or null | Longitude. |
| geoPrecision | string one of "rooftop", "street", "zip", "none" | How precise lat/lng are; none when there are no coordinates. |
The NormalizedCase object — case stage and class
One case, normalized, in the order of the record's cases[].
Returned or accepted by POST /v1/criminal/search, GET /v1/criminal/searches/{searchId}, POST /v1/criminal/batch, GET /v1/criminal/records/{recordId}.
| Field | Type | Description |
|---|---|---|
| stage | string one of "open", "closed", "warrant", "unknown" | Where the case stands. |
| caseClass | string one of "felony", "misdemeanor", "traffic", "infraction", "civil", "unknown" | The class of case. |
| charges | array of NormalizedCharge | One entry per charge, in the order of the case's charges[]. |
The NormalizedCharge object — charge severity and outcome
One charge, normalized. The published statute, description, severity and disposition stay on the case's own charges[].
Returned or accepted by POST /v1/criminal/search, GET /v1/criminal/searches/{searchId}, POST /v1/criminal/batch, GET /v1/criminal/records/{recordId}.
| Field | Type | Description |
|---|---|---|
| category | string one of "supervision", "homicide", "sex_offense", "robbery", "domestic_violence", "dui", "assault", "weapons", "burglary", "fraud", "theft", "drug_distribution", "drug_possession", "traffic", "public_order", "other" | What the charge is about. other when no category fits. |
| notACharge | boolean | true when the text in the charge slot is not an offense (a custody, supervision or caption entry). |
| severity | string one of "felony", "misdemeanor", "infraction", "unknown" | Felony, misdemeanor or infraction; unknown when it cannot be decided. |
| severityBasis | string or null one of "published", "statute_code", "statute_table", "case_type", "charge_text" | What decided severity. null when severity is unknown. |
| degree | string or null | The source's class or degree text (F3, Class A), when stated.Example "Class A" |
| outcome | string one of "convicted", "pending", "dismissed", "nolle_prosequi", "acquitted", "deferred_or_diverted", "vacated", "warrant", "transferred", "closed_unspecified", "administrative", "unknown" | The outcome class. |
| convicted | boolean or null | true for convicted; false for acquitted, dismissed, nolle_prosequi, deferred_or_diverted and vacated; null otherwise. |
| custodyEvent | string or null one of "booked", "released", "bonded", "held", "transferred" | A jail event listed against the charge (not a court outcome). null when none. |
| rule | string | Only with include: ["normalizedDetail"]. Which rule decided outcome, for audits. |