Cook County, IL Parcels & GIS Data

Cook County, IL parcel data: 1,885,498 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Cook County, Illinois parcel data covering 1,885,498 property records.

This page documents parcel-level coverage for Cook County, Illinois. Each parcel record carries its boundary polygon (GIS geometry) along with attributes such as the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and most recent sale price and date. Exact fill rates for Cook County are listed in the attribute-coverage table below. Preview the data in the interactive explorer, or download the complete Cook County property dataset.

Cook County is the most populous county in the U.S. state of Illinois and the second-most-populous county in the United States, after Los Angeles County, California. More than 40 percent of all residents of Illinois live within Cook County. As of 2020, the population was 5,275,541.

FIPS 17031

Official county website: http://www.cookcountygov.com

The FIPS code for Cook County is 17031.

DuPageKaneMcHenryBerrienLakeLakeWillCook
Hosted Web API$200/mo

Attribute coverage

Cook County contains 1,885,498 parcels in the current dataset. Column coverage is the percentage of those parcels for which the attribute is populated (non-NULL). For the LBCS columns, only real classifications count: the to-be-determined and not-applicable placeholder codes are excluded.

ColumnCoverageRecords populated
lrid100%1,885,498
parcelid100%1,885,496
parcelid290.5%1,706,419
ogparcelid100%1,885,496
ogparcelid276.4%1,440,358
parentid23.6%445,694
stackid24.5%462,809
geoid100%1,885,498
statefp100%1,885,498
countyfp100%1,885,498
countyname100%1,885,498
cousubfp100%1,885,498
cousubname100%1,885,498
tractce100%1,885,498
tractname100%1,885,498
taxacctnum<0.1%0
taxyear100%1,885,498
taxdistrict99.3%1,871,807
usecode99.0%1,867,009
usedesc99.8%1,881,193
zoningcode70.8%1,334,788
zoningdesc60.3%1,136,905
numbldgs97.7%1,843,033
numunits95.0%1,790,510
yearbuilt83.4%1,572,143
numfloors57.1%1,077,050
bldgsqft89.3%1,682,849
bedrooms<0.1%0
halfbaths<0.1%0
fullbaths<0.1%0
imprvalue99.0%1,866,368
landvalue99.0%1,866,368
agvalue42.3%798,415
totalvalue99.0%1,866,368
taxacres75.7%1,427,246
calcarea100%1,885,498
saleamt57.0%1,074,285
saledate13.8%260,238
ownertype66.8%1,260,232
ownername66.8%1,260,232
owneraddr24.5%462,139
ownercity24.5%462,146
ownerstate24.5%462,144
ownerzip24.4%459,805
parceladdr99.7%1,880,239
parcelcity100%1,885,498
parcelstate100%1,885,498
parcelzip100%1,885,498
legaldesc<0.1%0
township100%1,885,449
section100%1,885,449
qtrsection100%1,885,449
range100%1,885,449
plssdesc100%1,885,449
book<0.1%0
page<0.1%0
block<0.1%0
lot<0.1%0
parceltype0.4%7,233
accesstype1.0%18,148
iucnclass0.3%5,146
placename4.4%82,164
placetype4.3%80,987
firmid100%1,885,494
firmdate100%1,885,494
fldzone100%1,885,494
zonesubty98.7%1,861,413
staticbfe0.2%3,672
elevmin100%1,884,958
elevmax100%1,884,958
elevavg100%1,884,958
fireplaces<0.1%0
heating<0.1%0
heatfuel<0.1%0
cooling<0.1%0
foundation<0.1%0
roofcover<0.1%0
siding<0.1%0
bldgtype<0.1%0
naicscode17.3%325,976
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%1,885,498
centroidx100%1,885,498
centroidy100%1,885,498
surfpointx100%1,885,498
surfpointy100%1,885,498
geom100%1,885,498
extras100%1,885,498
ownerlist60.2%1,135,633
placefp98.0%1,846,975
zoningurl41.6%784,899
lbcsactivity95.7%1,804,270
lbcsfunction94.7%1,786,335
lbcstype95.5%1,801,172
lbcscharacter98.8%1,862,630
lbcsownership67.2%1,267,395
sourceurl<0.1%96

Schema mapping

How source columns from the acquired Cook County GIS layers map into the harmonized entity schemas and assemble into the published parcel table, alongside supplemented fields (elevation, flood zone) and deterministic columns.

Schema mapping — Cook County, Illinois (17031) 3 entities · most recent acquisition per entity · generated 2026-10-17 direct column transformed (expression) geometry extras json supplemented determined ALL ENTITIES → FINAL PARCEL SCHEMA Harmonized entity columns assemble into publish.parcel_layer — matched by column name. Supplemented fields show their fill rate in this county. SOURCE COLUMNS HARMONIZED ENTITIES PUBLISH.PARCEL_LAYER PARCEL pin14 pin10 taxyr bldgclass bldgsqft bldgvalue landvalue totalvalue landsqft sdate1 address city zip_code gis_twp last_edited_date geom taxcode objectid_1 geom_year townnum bldgconstnum nbhd townnum_1 mlt_ind per_ass houseno dir street suffix key_pin pro_ind cy_code town bldgconst townneighnum lanvalsqft bldgvalsqft value_description globalid totvalfp totvalcasr totvalcbrd summed record_count assessor_update_date parceltype bldgage parcelid parcelid2 taxyear usecode bldgsqft imprvalue landvalue totalvalue taxacres saledate parceladdr parcelcity parcelzip township updated geom taxdistrict extras REFTABLE pin14 pin10 assessment_overall_class assessment_improvement_value assessment_land_value assessment_total_value taxpayer_name taxpayer_address taxpayer_city taxpayer_state taxpayer_zip city_name state zip volume house_no street_name unit_apt_no apt_no neighborhood geom 12 cols ⇢ parcelid parcelid2 usecode imprvalue landvalue totalvalue ownername owneraddr ownercity ownerstate ownerzip parcelcity parcelstate parcelzip book house_number road unit suburb geom extras ZONING geom zoneid zonedesc zoneordinancename zonenotes 11 cols ⇢ geom zoningcode zoningdesc ordinance notes extras determined · ground truth 100% lrid 100% geoid 100% statefp 100% countyfp 100% countyname 100% cousubfp 100% cousubname 100% tractce 100% tractname geom · derived from geometry geom dem.us_1m · USGS 1m DEM 100% elevmin 100% elevmax 100% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 98.7% zonesubty 0.2% staticbfe 100% firmdate 100% firmid supplemented · derived / other pipelines 100% usedesc 97.7% numbldgs 95.0% numunits 83.4% yearbuilt 57.1% numfloors 57.0% saleamt 100% section 100% qtrsection 100% range 100% plssdesc 60.2% ownerlist 98.0% placefp 95.7% lbcsactivity 94.7% lbcsfunction 95.5% lbcstype 98.8% lbcscharacter 67.2% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxyear taxdistrict usecode usedesc zoningcode zoningdesc numbldgs numunits yearbuilt numfloors bldgsqft imprvalue landvalue totalvalue taxacres calcarea saleamt saledate ownertype ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip township section qtrsection range plssdesc book firmid firmdate fldzone zonesubty staticbfe elevmin elevmax elevavg updated centroidx centroidy surfpointx surfpointy geom extras ownerlist placefp lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership publish.parcel_layer columns not fed by these sources (32) — empty or below 50% fill in this county parentid, stackid, taxacctnum, bedrooms, halfbaths, fullbaths, agvalue, legaldesc, page, block, lot, parceltype, accesstype, iucnclass placename, placetype, fireplaces, heating, heatfuel, cooling, foundation, roofcover, siding, bldgtype, naicscode, frsid, dfrurl, caapermit cwapermit, rcrapermit, zoningurl, sourceurl PARCEL 18 mapped · 14 transformed · 37 unmapped (NULL) SOURCE COLUMNS HARMONIZED → PARCEL pin14 pin10 taxyr bldgclass bldgsqft bldgvalue landvalue totalvalue landsqft sdate1 address city zip_code gis_twp last_edited_date geom taxcode objectid_1 geom_year townnum bldgconstnum nbhd townnum_1 mlt_ind per_ass houseno dir street suffix key_pin pro_ind cy_code town bldgconst townneighnum lanvalsqft bldgvalsqft value_description globalid totvalfp totvalcasr totvalcbrd summed record_count assessor_update_date parceltype bldgage parcelid NULLIF(TRIM(pin14), '')::text parcelid2 NULLIF(TRIM(pin10), '')::text taxyear usecode NULLIF(TRIM(bldgclass), '')::text bldgsqft imprvalue NULLIF(TRIM(bldgvalue), '')::text landvalue NULLIF(TRIM(landvalue), '')::text totalvalue NULLIF(TRIM(totalvalue), '')::text taxacres CASE WHEN landsqft IS NULL THEN NULL::text ELSE (landsqft / 435… saledate parceladdr NULLIF(TRIM(address), '')::text parcelcity NULLIF(TRIM(city), '')::text parcelzip NULLIF(TRIM(zip_code), '')::text township NULLIF(TRIM(gis_twp), '')::text updated CASE WHEN last_edited_date IS NULL THEN NULL::text ELSE to_time… geom taxdistrict NULLIF(TRIM(taxcode), '')::text extras (json_build_object( 'objectid_1', objectid_1::text, 'geom_year'… not present in source — filled with NULL (37) taxacctnum, usedesc, zoningcode, zoningdesc, numbldgs, numunits, yearbuilt, numfloors, bedrooms, halfbaths, fullbaths, agvalue, saleamt ownername, owneraddr, ownercity, ownerstate, ownerzip, parcelstate, legaldesc, section, qtrsection, range, plssdesc, book, page, block, lot sourceurl, parentid, heatfuel, fireplaces, heating, cooling, foundation, roofcover, siding REFTABLE 20 mapped · 1 transformed · 12 kept in extras · 101 unmapped (NULL) SOURCE COLUMNS HARMONIZED → REFTABLE pin14 pin10 assessment_overall_class assessment_improvement_value assessment_land_value assessment_total_value taxpayer_name taxpayer_address taxpayer_city taxpayer_state taxpayer_zip city_name state zip volume house_no street_name unit_apt_no apt_no neighborhood geom parcelid parcelid2 usecode imprvalue landvalue totalvalue ownername owneraddr ownercity ownerstate ownerzip parcelcity parcelstate parcelzip book house_number road unit COALESCE(unit_apt_no::text, apt_no::text) suburb geom extras · 12 source columns preserved as json status, percent_ownership, exemption_code, exempt_agency_name street_direction, street_suffix, comment, previous_pin14 taxcode, assessment_status, job_no, parceltype extras not present in source — filled with NULL (101) taxacctnum, taxyear, usedesc, zoningcode, zoningdesc, numbldgs, numunits, yearbuilt, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue taxacres, saleamt, saledate, parceladdr, legaldesc, township, section, qtrsection, range, plssdesc, page, block, lot, zoningtype zoningordinance, zoningsetbacks, zoningrestrictions, landusecode, landusedesc, lbcsdimension, lbcscode, house, category, near, level, staircase entrance, po_box, postcode, city_district, city, island, state_district, state, country_region, country, world_region, bldgtype, numfloors yearremodel, livingarea, bldgquality, bldgcondition, architecture, totalrooms, fireplaces, heating, cooling, foundation, attic, atticsqft intwall, extwall, roofstyle, roofcover, roofheight, fsagpfeet, siding, framing, basementsqft, attgaragesqft, detgaragesqft, garagestalls situsaddress, appraisedvalue, assessedvalue, boatlift, boatdock, boathouse, pool, gazebo, irrigation, riprap, solarium, carport, greenhouse openporch, enclporch, sauna, wooddeck, hottub, patio, shed, workshop, sourceurl, taxdistrict, parentid, heatfuel ZONING 5 mapped · 11 kept in extras · 4 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING geom zoneid zonedesc zoneordinancename zonenotes geom zoningcode zoningdesc ordinance notes extras · 11 source columns preserved as json agencyid, agencydesc, zonepin14, zonelabel, zonedate zoneeditor, zonelegacy, commonid, globalid, created_user last_edited_user extras not present in source — filled with NULL (4) zoningtype, setbacks, restrictions, sourceurl

Neighboring counties

Parcel data for counties bordering Cook County:

Frequently asked questions

Where can I find Cook County, IL parcel and GIS data?

Land Records publishes a Cook County, IL parcel dataset in which every parcel carries its boundary polygon (GIS geometry) along with ownership, assessed value, land use, acreage, and sale history. Preview it in the interactive explorer on this page, or download the full Cook County, IL dataset as a GeoPackage or CSV.

How many parcels are in Cook County, IL?

The current dataset contains 1,885,498 parcel records for Cook County, IL, each with its boundary geometry and assessor attributes.

What is the FIPS code for Cook County, IL?

The FIPS code for Cook County, IL is 17031.

What information does each Cook County, IL parcel record include?

Each Cook County, IL parcel record includes the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and the most recent sale price and date — plus the parcel boundary polygon. Per-attribute fill rates are listed in the coverage table on this page.

Is Cook County, IL parcel data free?

You can preview Cook County, IL parcels for free in the interactive explorer. The complete dataset is available as a one-time download or through the nationwide parcel web service; see the download options on this page for current pricing.

Does Cook County, IL have an official GIS or property records website?

Yes — the official Cook County, IL government website is linked in the county details above. Land Records standardizes Cook County, IL assessor and recorder records into a single nationwide parcel schema with GIS boundary geometry.

On this page