New Orleans Code Enforcement - Cases, Violations, Hearings avatar

New Orleans Code Enforcement - Cases, Violations, Hearings

Pricing

from $0.03 / 1,000 code enforcement records

Go to Apify Store
New Orleans Code Enforcement - Cases, Violations, Hearings

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

Wenhao Yang

Maintained by Community

Actor 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"; stage and oC apply 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", or recentDays=90 for 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,762
4 - Judgment 23,254
3 - Hearing 4,551
2 - Title Research 2,662
5 - In Compliance 1,603
1 - Inspection 1,386
X - Processing 789

Notes on the data, from the source

  • Six corpora, one key. The numeric caseId ties them together; the human caseNumber (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.
  • judgment is a substring filter. judgment="Guilty" also matches Not 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 cases and pipeline but not yet in violations/hearings/inspections - a case id that misses one corpus is normal.
  • Filters and groupBy are per corpus. stage exists on cases and pipeline but not on violations; codeSection exists only on violations. A filter that does not apply to the chosen corpus is rejected rather than ignored.
  • Statuses are free text. The statusText field 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.