Chicago 311 Complaints Scraper
Pricing
from $19.00 / 1,000 results
Chicago 311 Complaints Scraper
Scrapes Chicago 311 service requests filtered by type and status. Returns each complaint as a flat row with creation date, status, and location. Export to CSV, JSON, Excel, or XML.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Chicago 311 Complaints Scraper
Scrape Chicago 311 service requests by type and status, up to a million per run. Each complaint comes with its creation date, current status, and location details. No API key or city registration required. Export to CSV, JSON, Excel, or XML.
Chicago's open data portal lets you download bulk 311 data, but the files are massive, stale, and hard to filter before you download. This Actor reads the live 311 service request feed directly, applies your type and status filters on the fly, and returns only the matching complaints in a clean, flat dataset. You get fresh, targeted data without wrangling multi-gigabyte CSV dumps.
| Who uses it | What they scrape Chicago 311 for |
|---|---|
| City contractors | Monitor new pothole or graffiti complaints in their service area each morning. |
| Journalists | Track which wards have the most open sanitation or rodent complaints this month. |
| Real estate investors | Identify blocks with repeated vacant building or code violation complaints. |
| Civic hackers | Feed a live dashboard of unresolved infrastructure requests by neighborhood. |
What it does
This Actor collects Chicago 311 service requests filtered by request type and status, and returns each complaint as a flat row.
- ๐ Request type filter: narrow the run to a single complaint type, such as Pothole in Street Complaint or Rodent Baiting/Rat Complaint.
- ๐ Status filter: collect only Open, Completed, or Canceled requests, or leave it blank to get all statuses.
- ๐ฆ Volume control: set a hard cap from 1 to 1,000,000 complaints per run so you never overshoot your storage or compute budget.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Chicago 311 data
๐ณ๏ธ Monitor pothole backlogs.
A city contractor runs the Actor daily with request type set to Pothole in Street Complaint and status Open, then dispatches crews to the wards with the highest counts.
๐ Track rodent complaints by ward.
A journalist filters for Rodent Baiting/Rat Complaint, groups the output by ward, and publishes a story on which neighborhoods are seeing the fastest rise in rat reports.
๐๏ธ Find distressed blocks.
A real estate investor filters for Vacant Building Complaint and Open status, then maps the results to spot clusters of neglected properties before they hit the MLS.
๐ Feed a civic dashboard.
A civic hacker schedules the Actor to pull all open requests every hour and pipes the flat dataset into a neighborhood-level dashboard of unresolved city services.
Why choose this scraper
| What you get | |
|---|---|
| Fresh data | Reads the live 311 feed, not a stale monthly export. |
| Targeted output | Filters by type and status before the row hits your dataset. |
| Flat schema | Every complaint arrives as one row, ready for spreadsheets or databases. |
| No auth | Uses the public feed. No API key, no city account, no OAuth. |
How it compares
This Actor targets fresh, filtered 311 complaint data for Chicago only, while the competitor below stacks multiple lead signals across several cities for real estate prospecting.
| Feature | ParseForge | Distressed Property Leads - NYC, Detroit, Philly & Chicago |
|---|---|---|
| Fresh 311-only data | Yes, reads the live Chicago 311 feed | Not listed |
| Filter by request type | Yes, exact match on complaint type | Not listed |
| Filter by status | Yes, Open, Completed, or Canceled | Not listed |
| Multi-city coverage | Chicago only | Yes, NYC, Detroit, Philly, and Chicago |
| Stacks code violations and tax liens | No, 311 complaints only | Yes, per-property lead scoring |
Configure the run
Drive the Actor from a request type and a status, alone or together, and filters run as each complaint is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10}
A larger pull:
{"maxItems": 200}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Chicago 311 Complaints Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Chicago 311 through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/chicago-311-complaints-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your request type spelling. The filter is an exact match, so 'Pothole' will not match 'Pothole in Street Complaint'. Try running without the request type filter first to see the exact names used in the feed.
The run finished but I expected more complaints.
Your status filter may be too narrow. If you set status to Completed, you will only see closed requests. Set it to Open or leave it blank to get a broader set.
The Actor is taking a long time to finish.
A high maxItems value with no filters will pull a large volume of data. Lower the maxItems cap or add a request type filter to narrow the run.
I got an error about the input schema.
Make sure maxItems is an integer between 1 and 1,000,000. The status field must be one of the three listed values or left blank. The request type field accepts any string.
FAQ
| Question | Answer |
|---|---|
| Do I need a City of Chicago API key? | No. The Actor reads the public 311 service request feed. You do not need to register an app, get a token, or sign any data-sharing agreement. |
| How fresh is the data? | The Actor reads the live feed on each run. You get the complaints that are publicly available at that moment, not a batch export from last week. |
| Can I filter by ward or community area? | The input schema exposes request type and status filters. Ward and community area are available in the output fields, so you can filter them in your spreadsheet or database after the run. |
| What is the maximum number of complaints I can collect? | You can set the maximum up to 1,000,000 complaints per run. Set a lower cap if you want a quick sample or need to stay within a storage budget. |
| Does this Actor get historical 311 data? | It reads the current public feed. For bulk historical data, the City of Chicago data portal offers full CSV exports, but this Actor is built for targeted, fresh pulls. |
| Can I run this on a schedule? | Yes. Apify schedules let you run the Actor every hour, day, or week. Set the filters once and each scheduled run will pull the latest matching complaints. |
| What export formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Does the Actor handle pagination automatically? | Yes. It follows the feed's pagination until it hits your maxItems cap or runs out of matching complaints. |
| Can I filter by date range? | The input filters are request type and status. The output includes creation and completion dates, so you can filter by date in your analysis tool after the run. |
| Is this an official City of Chicago tool? | No. This is an independent Actor built on the public data feed. It is not affiliated with or endorsed by the City of Chicago. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by City of Chicago. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
