Chicago 311 Complaints Scraper avatar

Chicago 311 Complaints Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Chicago 311 Complaints Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

ParseForge

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 itWhat they scrape Chicago 311 for
City contractorsMonitor new pothole or graffiti complaints in their service area each morning.
JournalistsTrack which wards have the most open sanitation or rodent complaints this month.
Real estate investorsIdentify blocks with repeated vacant building or code violation complaints.
Civic hackersFeed 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 dataReads the live 311 feed, not a stale monthly export.
Targeted outputFilters by type and status before the row hits your dataset.
Flat schemaEvery complaint arrives as one row, ready for spreadsheets or databases.
No authUses 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.

FeatureParseForgeDistressed Property Leads - NYC, Detroit, Philly & Chicago
Fresh 311-only dataYes, reads the live Chicago 311 feedNot listed
Filter by request typeYes, exact match on complaint typeNot listed
Filter by statusYes, Open, Completed, or CanceledNot listed
Multi-city coverageChicago onlyYes, NYC, Detroit, Philly, and Chicago
Stacks code violations and tax liensNo, 311 complaints onlyYes, 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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the Chicago 311 Complaints Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.

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.