All datasets Property records

Cook County Property Sales & Assessed Values (Chicago)

We turn the Cook County Assessor's open data into clean JSON: every recorded parcel sale, assessed value, building permit and assessment appeal in Cook County, Illinois, all keyed on the parcel's 14-digit PIN. One record is a single Assessor row from whichever of the four datasets you choose, for example one recorded sale with buyer, seller, price and deed type.

Size
2,686,366 sales
Refresh
Bi-weekly
Price
$3 per 1,000 records

This listing is being published to the Apify Store. If the link is not live yet, contact us and we will run it for you.

Who uses this

Chicago real estate investors and wholesalers

Pull every sale over a price in a township, or every sale to an LLC, as a weekly feed.

Appraisers

Assemble comparable sales by township, class and date window, with deed type and the Assessor's own arms-length flags on each.

Property tax appeal firms

Read a parcel's mailed vs certified values, the appeal history and outcomes in a township, and which agents are filing.

Lenders and title researchers

Check a PIN list's sale history and current assessed values in one call.

Contractors and suppliers

Watch permits by township and estimated job amount.

Sample records

Real records from the source, shown with a subset of the fields. Every run returns the full field set below.

pinFormattedtownshipNamesaleDatesalePricedeedTypeclassCode
17-04-207-086-1145North Chicago2026-07-14162000Other299
04-33-112-007-0000Northfield2026-07-13550000Trustee234
17-22-110-100-1199South Chicago2026-07-13535000Warranty299

Sales fixture rows (3 of the 10 committed in tests/fixtures/sales.sample.js, unmodified Socrata rows fetched 2026-08-23) run through the actor's own normalizeRow('sales', ...) in src/parse.js. Buyer and seller names that are natural persons are withheld per this catalogue's policy; organization names are kept.

Fields

The most used fields in each record. The Apify listing documents the full output schema.

pin
14-digit Cook County Parcel Index Number, zero-padded
townshipName
Township name; the eight Chicago townships are coded 70 to 77
saleDate
Recorded sale date
salePrice
Sale price as recorded on the deed
deedType
Deed type recorded on the sale
buyerName
Buyer name as recorded on the deed; absent on about 19% of the default window
sellerName
Seller name as recorded on the deed; absent on about 33% of the default window
ccaoFilters
The Assessor's own three non-market-sale flags: same PIN sold again within 365 days, price under $10,000, and a non-arms-length deed type
documentNumber
Cook County Clerk's recording number, lookup-able on the Clerk's site

How it works

1

Run it on Apify

Open the listing, sign in to Apify, and press Start. The actor reads the public source directly, normalizes each record, and writes the results to your Apify dataset. You can also schedule it to run on a cadence.

2

Filter to what you need

  • mode: which of the four datasets to read, sales, assessedValues, permits or appeals; defaults to sales
  • pins: up to 500 PINs, dashes allowed; switches off the default date/tax-year window so you get the full parcel history; lists over 100 are queried in chunks of 100 and merged
  • township: name or two-digit code, any case, e.g. Lake View, 73, Evanston; 38 townships, Chicago is 70 to 77
  • classCodes: Assessor class codes such as 211, 203, 299; applies to sales, assessed values and appeals, ignored for permits
  • taxYear: four-digit year; main selector for assessed values and appeals (defaults to the newest year), restricts sales and permits and turns off the default date window
  • dateFrom, dateTo: sale date (sales) or issue date (permits) range; ignored for assessed values and appeals
  • minPrice, maxPrice: sale price or permit estimated amount; ignored for assessed values and appeals
  • buyerName, sellerName: case-insensitive substring match on the deed name; sales only
  • saleFilter: under10k (default) drops sales flagged under $10,000; strict also drops repeat same-price sales within a year and quit claim, executor and beneficiary deeds; none delivers every recorded sale
  • maxResults: cap on delivered records and your cost cap, default 100, up to 50,000
  • includeRaw: attach the untouched source row as raw, default false

3

Export or connect

Download the dataset as CSV, JSON, or Excel from the Apify console, or pull it straight into your own system through the Apify API and integrations.

Default input with no fields set returns the 100 newest sales (price $10,000 or more) from the 60 days ending at the most recently published sale date, not today; the newest published sale lags real time by weeks (on 23 August 2026 the newest sale was dated 14 July 2026). The platform smoke run on the default input completed in 9.14s for 100 items. Three other modes read separate CCAO tables on the same PIN: assessedValues reads Assessor - Assessed Values (uzyt-m557, 50,670,538 rows, about 1.86 million parcels a year, 1999 to present), delivering mailed, certified and Board of Review value triplets per parcel-year, skipping parcel-years with no mailed value yet; permits reads Assessor - Permits (6yjf-dfxs, 726,959 rows); appeals reads Assessor - Appeals (y282-6ig3, 2,615,003 rows, agent named on 81% of 2025 appeals). Buyer name is present on 81% and seller name on 67% of the default sales window (90%/87% across all of 2025).

Pricing

$3 per 1,000 records

Pay per result, billed through your Apify account at $0.003 per record. You are charged only for the records the run delivers to your dataset, so a filtered run that matches nothing costs nothing. No subscription, no minimum.

Source, refresh, and licence

Source
Cook County Assessor's Office: Assessor - Parcel Sales
Size
Sales 2,686,366 rows, 1971 to the newest published date, 79,257 dated 2025. Assessed values about 1.86 million parcels per tax year, 1999 to present (50,670,538 rows total). Permits 726,959 rows, 10,480 issued in the 90 days to 23 August 2026. Appeals 2,615,003 rows, 362,530 for tax year 2025. Figures read live 2026-08-23.
Refresh
The Cook County open data portal lists all four datasets as updated bi-weekly ("semi-monthly" in the dataset notes). Each record carries its own dataset's sourcePublishedAt, the portal's last-updated stamp (sales 2026-08-19T19:36:06Z, values 2026-08-15T11:29:19Z, permits 2026-08-20T14:35:44Z, appeals 2026-08-15T11:04:54Z, read 2026-08-23).
Licence
The datasets carry no licence field. The portal's "About Open Data" page describes the data as free public data published by Cook County agencies under the County's Open Government Plan, and lists among its principles "Non-discriminatory: Data is available to anyone, with no registration requirement" and "License-free: Data is not subject to copyright, patent, trademark, or trade secret regulation where reasonable." The County's Terms of Use disclaim warranty and accuracy. This Actor is not affiliated with or endorsed by the Cook County Assessor's Office or Cook County Government.
Attribution
Cook County Assessor's Office

Questions buyers ask

How do I get Cook County property sales by township or neighborhood?

Set township (for example Lake View or 73) and optionally classCodes and a date window. Neighborhood is delivered on each record as neighborhoodCode (township plus Assessor neighborhood), so you can filter on it after the fact.

Can I search Cook County property records by owner or buyer name?

Sales records carry buyer and seller names as recorded on the deed, and buyerName and sellerName do a case-insensitive contains match. The Assessor's datasets do not publish a current-owner column, so the buyer on the most recent sale is a useful lead, not a current-owner or title determination. We recommend verifying ownership with the Assessor, the Clerk's Recordings office, or a title source.

How do I look up assessed values and appeals for a list of PINs?

Put the PINs in pins (any format, up to 500 per run) and choose assessedValues or appeals. With a PIN list the actor returns the full history, every tax year, for those parcels.

Pull the data you need

Run it yourself on Apify, or ask us for a custom extract, a join against another dataset, or a scheduled delivery.

We are not affiliated with or endorsed by Cook County Assessor's Office. The actor reads the public dataset linked above and adds no data of its own.