New Orleans Code Enforcement - Cases, Violations, Hearings
Pricing
from $0.03 / 1,000 code enforcement records
New Orleans Code Enforcement - Cases, Violations, Hearings
New Orleans code enforcement (public open data, six linked corpora): cases, violations cited, inspections, hearings and judgments, abatements and the active pipeline, joined on the case id. Look up a property's case history, or filter by stage, status, code section, judgment or date.
Pricing
from $0.03 / 1,000 code enforcement records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
The City of New Orleans' code-enforcement system, straight from the City's open data. Six linked corpora - the cases, the violations cited, the inspections, the hearings and judgments, the abatements and the active pipeline - all joined on the case id. 855,000+ records across the system.
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Pay only for the records you actually receive - the whole system stays queryable, you are never billed for the scan behind it.
What you get
Pick a corpus and get its records, most recent first. Every record carries the case id, the case number, the property address and dates:
- cases (183k) - stage, open/closed, the compliance status text, the property location and coordinates
- violations (272k) - the code section cited and the violation text
- inspections (246k) - the inspection type, the result and the inspector
- hearings (103k) - the hearing date, the judgment and the property
- abatements (7.2k) - the City's abatement action, its status and exit reason
- pipeline (44k) - the active-pipeline table (it includes recently closed
cases; set
oC="Open"for live cases), with unpaid fees
Because every corpus carries caseId, the same case id can be looked up corpus
by corpus to assemble its violations, inspections and hearings.
Filter it
- One case -
caseId="292742"returns that case's record (and, corpus by corpus, its full history). - Property -
address="GENTILLY",caseNumber="23-09269". - Stage -
stage="4 - Judgment"for cases at the judgment stage. - Status -
oC="Open";stageandoCapply to cases and pipeline. - Code -
codeSection="26-157"on the violations corpus. - Judgment -
judgment="Guilty"on the hearings corpus. - Inspection -
inspectionType="Reinspection",inspectionResult="No Violation". - Period -
dateFrom="2024-01-01", orrecentDays=90for the last quarter.
Example inputs
The open, active cases - cases the City is still pursuing.
{ "corpus": "cases", "oC": "Open", "maxResults": 50 }
One property's case history - the key that joins every corpus.
{ "corpus": "violations", "caseId": "292742", "maxResults": 100 }
Hearings won by the City - a judgment on the hearings corpus.
{ "corpus": "hearings", "judgment": "Guilty", "maxResults": 50 }
How cases break down - mode=aggregate counts per stage.
{ "mode": "aggregate", "groupBy": "stage" }
Or roll it up
Set mode=aggregate and get a count by the dimension the corpus supports:
stage or oC (cases, pipeline), codeSection (violations),
inspectionType / inspectionResult (inspections), judgment or
councilDistrict (hearings), status / exitReason (abatements). Every group comes back.
Then use it
- Due diligence on a property - pull its case id and follow it across the violations, inspections and hearings.
- Blight tracking - the open pipeline, the abatements and the judgments.
- Watch the pipeline - cases moving from inspection to hearing to judgment.
Example output
One open case - filed 2026-10-06, awaiting inspection:
{"platform": "nola-code-enforcement","source": "new-orleans-code-enforcement","corpus": "cases","mode": "rows","groupKey": "","groupCount": "","groupBy": "","caseId": "337764","caseNumber": "26-11535-MPM","address": "2400 Gentilly Blvd","stage": "1 - Inspection","oC": "Open","statusText": "The case was filed on 10/06/2026 and the property is awaiting inspection to proceed further.","primaryDate": "2026-10-06T15:20:26.000","secondaryDate": "2026-10-06T15:20:26.000","code": "","description": "","judgment": "","inspectionType": "","inspectionResult": "","inspector": "","zip": "70122","councilDistrict": "","geopin": "41076537","xpos": "3681432.23","ypos": "544877.16","unpaidFees": "","sourceUpdatedAt": "2026-10-17"}
mode=aggregate, groupBy=stage, corpus=cases - the largest groups, e.g.:
6 - Case Closed 148,7624 - Judgment 23,2543 - Hearing 4,5512 - Title Research 2,6625 - In Compliance 1,6031 - Inspection 1,386X - Processing 789
Notes on the data, from the source
- Six corpora, one key. The numeric
caseIdties them together; the humancaseNumber(e.g.23-09269-MPM) is the string you see on a notice. Looking up a case id one corpus at a time returns that corpus's rows; run it per corpus to build the full history. judgmentis a substring filter.judgment="Guilty"also matchesNot Guilty(a small share of rows); use the exact hearing value when that distinction matters.- The sub-tables lag the cases table. A case filed today is in
casesandpipelinebut not yet in violations/hearings/inspections - a case id that misses one corpus is normal. - Filters and groupBy are per corpus.
stageexists on cases and pipeline but not on violations;codeSectionexists only on violations. A filter that does not apply to the chosen corpus is rejected rather than ignored. - Statuses are free text. The
statusTextfield is the City's own sentence describing where the case stands (and often embeds a date). It is carried as text and is not offered as a filter or a group-by dimension.