Chicago Building Violations Scraper
Pricing
from $1.60 / 1,000 violation record returneds
Chicago Building Violations Scraper
Query the official City of Chicago Building Violations dataset by address, status, violation code, inspection, date range, or advanced SoQL filters. Returns one normalized record per building violation.
Pricing
from $1.60 / 1,000 violation record returneds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Free-plan limit: Apify free-plan users receive at most 5 delivered records per run. Paid users may use the Actor’s configured result limit.
Query the official City of Chicago Building Violations dataset through its public Socrata API. The actor returns one normalized dataset item per violation and stores a run summary in the OUTPUT key-value record.
What it returns
Each result includes the City violation ID, violation and inspection details, address fields, property group, coordinates, computed community/ZIP/ward identifiers, the official API URL, and the UTC retrieval time. Null values are preserved when the City dataset does not provide a field.
The source dataset is Building Violations (22u3-xenr). It contains Department of Buildings violations from 2006 to the present. The City notes that the data is historical and informational; it should not be used as a substitute for title commitments, court records, or a current property-condition inspection.
Example input
The default query returns up to 100 OPEN violations:
{"violationStatus": "OPEN","maxResults": 100}
Find violations near an address over a date range:
{"address": "121 N LA SALLE","violationDateFrom": "2024-01-01","violationDateTo": "2024-12-31","maxResults": 250}
Filter an entire property group or inspection:
{"propertyGroup": "92840","inspectionNumber": "14930108","maxResults": 100}
For advanced use, where accepts one Socrata $where expression using the official field names, for example street_type = 'AVE' AND inspection_status = 'FAILED'. Do not include $where= in the value.
Inputs and limits
address: case-insensitive address substring.propertyGroup: exact Property Group identifier.violationStatus:OPEN,COMPLIED, orNO ENTRY; defaults toOPEN.violationCode: exact violation code.inspectionNumber: exact inspection number.inspectionCategory:COMPLAINT,PERIODIC,PERMIT, orREGISTRATION.violationDateFromandviolationDateTo: inclusiveYYYY-MM-DDdate range.where: optional advanced SoQL filter.order:newestoroldestviolation date.maxResults: 1–5,000 records; default 100.pageSize: 1–1,000 API rows per page; default 500.
The actor uses the public City endpoint directly, does not require an API key, and does not use browser automation or private data. API errors are reported honestly in OUTPUT; partial results remain available when a later page fails.
Pricing
This Actor uses pay-per-event pricing. These are the current Apify Store event prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
apify-default-dataset-item | $0.001 | Violation record returned — Charged once for each normalized Chicago building violation written to the default dataset. |
apify-actor-start | $0.00005 | Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). — Charged once per run. |
Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.
Local development
npm installnpm testnpm start
The start command expects Apify Actor input/storage environment variables. For a quick local API smoke test after building, use the Apify local runner or run the compiled code with a local INPUT.json/storage configuration.