Cook County Assessor Property Scraper
parseforge/cookcountyassessor-scraper
Real estateDeveloper toolsAutomation
Scrapes Cook County Assessor property records by PIN, address, township, or municipality. Returns assessed values, characteristics, sales, and appeals as flat rows.
- Total users
- 4
- Monthly active
- 0
- Total runs
- 184
- Bookmarked
- 1
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
Cook County Assessor Property Scraper
Scrape Cook County property records by PIN, address, township, or municipality. Get assessed values, characteristics, sales, and appeals for any property in Cook County, Illinois. No login or API key. Export to CSV, JSON, Excel, or XML.
The Cook County Assessor's website lets you look up one property at a time, but pulling data for hundreds of PINs or an entire township means clicking through pages by hand. This Actor reads the public property search directly and returns each parcel as a flat row with assessed values, characteristics, sales history, and appeals when you ask for them. Feed it 14-digit PINs, street addresses, townships, or municipalities like Chicago, and it collects up to a million records per run.
| Who uses it | What they scrape Cook County Assessor for |
|---|---|
| Real estate investors | Pull assessed values and sales history for a list of PINs to compare deals. |
| Property tax consultants | Gather assessment and appeals data for entire townships to spot over-assessed parcels. |
| Data journalists | Download property characteristics and sales for a municipality to analyze housing trends. |
| Insurance underwriters | Collect property characteristics and values for risk assessment across Cook County. |
| Academic researchers | Build a dataset of assessed values and appeals for urban policy studies. |
What it does
This Actor collects Cook County property records by PIN, address, township, or municipality, and returns each parcel as one flat row with assessed values, characteristics, sales, and appeals.
- ๐ Four search modes: by PIN, street address, township, or municipality, so you can target one parcel or an entire area.
- ๐ Optional data layers: include assessed values, characteristics, sales, and appeals independently, so you only pay for the fields you need.
- ๐๏ธ Flat row output: every property comes back as one record with a fixed schema, ready for CSV, JSON, Excel, or XML.
- โก Bulk collection: up to 1,000,000 properties per run, with no per-record API limits.
- ๐๏ธ Official source: data comes straight from the Cook County Assessor's public search, no third-party database.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Cook County Assessor data
๐ Build a comps list for investment.
A real estate investor enters a list of PINs for properties they are considering and gets assessed values and sales history to compare against asking prices.
๐ Find over-assessed parcels for appeals.
A tax consultant searches an entire township, includes appeals data, and filters for properties where the assessed value rose sharply, then prepares appeal cases.
๐ฐ Analyze neighborhood housing stock.
A journalist scrapes all properties in a Chicago municipality with characteristics included, then maps building age, size, and type for a story on housing quality.
๐๏ธ Monitor assessment equity.
A researcher pulls assessed values and characteristics for multiple townships and compares assessment ratios across neighborhoods to study fairness.
๐ Verify property details for underwriting.
An insurance underwriter enters addresses for a portfolio of homes and collects characteristics like square footage and construction type to validate policy data.
Why choose this scraper
| What you get | |
|---|---|
| No manual clicking | Collect hundreds or thousands of property records in one run instead of looking them up one by one. |
| Flexible targeting | Use exact PINs for a known list, or search by address, township, or municipality to discover properties. |
| Complete data | Get assessed values, characteristics, sales, and appeals in one dataset, not separate exports. |
| Clean output | Every property is a flat row with consistent fields, so you can load it into a spreadsheet or database immediately. |
How it compares
This Actor focuses on Cook County Assessor data with four search modes and optional data layers, while the competitors below cover multiple counties or a narrower address-to-owner lookup.
| Feature | ParseForge | Parcel Owner Lookup | Property Tax Scraper |
|---|---|---|---|
| Search by PIN | Yes | Not listed | Not listed |
| Search by address | Yes | Yes | Not listed |
| Search by township | Yes | Not listed | Not listed |
| Search by municipality | Yes | Not listed | Not listed |
| Assessed values | Yes | Yes | Yes |
| Sales history | Yes | Not listed | Yes |
| Appeals history | Yes | Not listed | Not listed |
Configure the run
Drive the Actor from start URLs or search filters, not both. Start URLs accept direct property URLs or 14-digit PINs. Search filters let you pick a mode and enter PINs, an address, a township, or a municipality, with an optional assessment year. Data options toggle assessed values, characteristics, sales, and appeals per property. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"searchMode": "municipality",
"municipality": "Chicago"
}
A larger pull:
{
"maxItems": 200,
"searchMode": "municipality",
"municipality": "Chicago"
}
Pricing
Pay-per-result: $0.03199 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $3.20 |
| 1,000 results | $31.99 |
| 10,000 results | $319.90 |
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 Cook County Assessor Property 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 Cook County Assessor 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/cookcountyassessor-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that you are using either start URLs or search filters, not both. If using search filters, make sure the mode matches the input: for PIN mode, enter 14-digit PINs; for address mode, enter a street address; for township or municipality, use the exact name from the dropdown or a valid municipality like Chicago.
Why are some properties missing data?
Not every property has sales or appeals history. If includeSales or includeAppeals is on and a property has none, those fields will be empty. Also check the assessment year: older years may have less data.
Why is the run slow?
Scraping thousands of properties takes time because the Actor must request each property page. Reduce maxItems, narrow your search to a smaller township or municipality, or turn off data options you do not need.
Why did I get an error about start URLs?
Start URLs must be direct property URLs from the Cook County Assessor site or 14-digit PINs. If you paste a search results URL, it will not work. Use search filters instead.
Can I search by owner name?
No, the Cook County Assessor's public search does not support owner name search. You can search by PIN, address, township, or municipality only.
FAQ
| Question | Answer |
|---|---|
| What is a PIN and where do I find it? | A PIN is the 14-digit Property Index Number used by the Cook County Assessor. You can find it on your property tax bill, the Assessor's website, or by searching by address first and then using the PIN from the result. |
| Can I scrape all properties in Chicago? | Yes. Set search mode to municipality and enter 'Chicago' as the municipality. The Actor will collect every property record it can find, up to the maxItems limit you set. |
| Does this include current year assessed values? | The Actor returns the assessed values that the Cook County Assessor's website shows for the property. You can set an optional assessment year to target a specific year, but availability depends on the source. |
| What is the difference between start URLs and search filters? | Start URLs let you paste direct property URLs or PINs for a known list. Search filters let you discover properties by address, township, or municipality. Use one or the other, not both. |
| Can I get sales history and appeals data? | Yes. Turn on includeSales and includeAppeals in the Data Options section. They are off by default to keep runs fast and cheap, but you can enable them for any run. |
| How many properties can I scrape in one run? | You can set maxItems up to 1,000,000. The actual number depends on how many properties match your search and how long the run takes. |
| Is this legal to scrape? | The Cook County Assessor's property search is public data. You should review the website's terms of use and comply with any applicable laws and regulations for your use case. |
| What output formats are supported? | The Actor returns data in a standard Apify dataset, which you can export to CSV, JSON, Excel, or XML from the Apify platform. |
| Can I run this on a schedule? | Yes. You can set up a scheduled run in Apify to collect property data daily, weekly, or monthly, which is useful for tracking assessment changes. |
| Does this work for other counties? | No, this Actor is specific to Cook County, Illinois. For other counties, check the Apify Store for county property record scrapers. |
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 Cook County Assessor's Office. 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.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| startUrls | array | Direct property URLs or 14-digit PIN values. Use this OR search filters below, not both. | not set |
| maxItems | integer | How many property records to collect per run. | 10 |
| searchMode | string (4 options) | How to search for properties. Use only when Start URLs is empty. | municipality |
| pins | array | One or more 14-digit PIN values for search mode 'pin'. | not set |
| pin | string | Single 14-digit PIN for search mode 'pin'. | not set |
| address | string | Street address text for search mode 'address'. | not set |
| city | string | Optional city filter for address search. | not set |
| township | string (38 options) | Cook County township name for search mode 'township'. | not set |
| municipality | string | Municipality name for search mode 'municipality' (example: Chicago). | Chicago |
| year | integer | Optional year for assessed values and characteristics. | not set |
| includeAssessedValues | boolean | Include assessed value history records. | true |
| includeCharacteristics | boolean | Include property characteristics records. | true |
| includeSales | boolean | Include parcel sales history records. | false |
| includeAppeals | boolean | Include Board of Review appeals history records. | false |
Pricing
from $23.99 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged once when the run starts. | $0.005 |
| Result Item | Charged once per result collected. | $0.02399 to $0.03199 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~cookcountyassessor-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run Cook County Assessor Property Scraper on Apify All scrapers
