cook countyrecords
Data access

Intelligence Desk & Commercial API

Use the published property-research feeds today. Programmatic access remains a separately described pre-sale until the API launches.
API in development · pre-sale open

Rates

Two ways in · billed monthly · cancel any time

01 · Web desk

Live now

Intelligence Desk

$100/ month

Every intelligence feed as a live sortable table — the same rows the API will serve, without writing code.

  • Six feeds, sortable tableslive
  • Raw trade signals — ages, statuses, model scoreslive
  • Filter any feed, sort any columnlive
  • CSV export on every tablelive
  • Refreshed with every data releaseauto

02 · REST API

Pre-sale

Commercial API

$200/ month$500/mo at launch for new subscribers

The full record set as JSON — parcels, sales, permits, appeals, the entity graph and every feed — documented below.

  • Rate locked at $200/mo — never riseslock
  • Everything in Pro, todaylive
  • Intelligence Desk includedlive
  • API keys on launch daylaunch
  • Licensed for commercial useterms

Billed monthly through Stripe. Cancel any time; pre-sale charges are not refundable. See the refund policy and terms.

Endpoint reference

This is the planned launch surface. The API opens at launch; the pre-sale locks your rate at $200/mo. The same data is browsable today — feed dashboards at /feeds, every record on the site itself. Request and response windows are illustrative; field shapes may change before launch.

  • JSON over HTTPS, key-based authentication
  • Source agency and as-of date on every record
  • Estimates and inferences labeled, never mixed with facts
  • Rate limits and bulk endpoints sized for commercial use

GET/v1/parcels/{pin}

The planned dossier response for one parcel: available characteristics, assessments, taxpayer of record, flood screening, schools and links to included records.

terminal
curl -s https://cookcountyrecords.com/api/v1/parcels/09131330320000 \
  -H "Authorization: Bearer ccr_live_4QxT…"
response.json — illustrative
{
  "pin": "09131330320000",
  "address": "123 S Prospect Ave, Park Ridge, IL 60068",
  "zoning": "R-2",
  "year_built": 1927,
  "bldg_sqft": 1840,
  "lot_sqft": 6250,
  "assessed_total": 48210,
  "assessed_prior": 43890,
  "estimated_value": 612000,
  "flood_zone": "X",
  "owner": {
    "owner_id": "own_9f21c3",
    "owner_name": "ANDERSON FAMILY TRUST",
    "owner_kind": "trust"
  },
  "sale_count": 3,
  "permit_count": 5,
  "appeal_count": 1,
  "last_sale": {
    "sale_date": "2021-06-14",
    "price": 612000,
    "doc_type": "WARRANTY DEED",
    "doc_no": "2116534082"
  },
  "schools": { "elem": "Franklin", "hs": "Maine South" },
  "links": {
    "sales": "/v1/parcels/09131330320000/sales",
    "permits": "/v1/parcels/09131330320000/permits",
    "appeals": "/v1/parcels/09131330320000/appeals"
  },
  "release": { "release_id": "2026-08-15", "agency": "Cook County Assessor" }
}

GET/v1/feeds/appeal-leads

Planned appeal-leads JSON: eligible residential parcels more than 10% above a peer assessment median, with no recorded appeal from 2024 onward. Full criteria are shown in the in-app feed.

terminal
curl -s "https://cookcountyrecords.com/api/v1/feeds/appeal-leads?limit=1" \
  -H "Authorization: Bearer ccr_live_4QxT…"
response.json — illustrative
{
  "feed": "appeal-leads",
  "release_id": "2026-08-15",
  "criteria": "eligible residential parcel over 10% above peer median; no recorded appeal from 2024 onward",
  "summary": {
    "qualified_leads": 214,
    "win_rate_represented": 0.54,
    "win_rate_unrepresented": 0.65,
    "avg_reduction_represented": 6529
  },
  "rows": [
    {
      "pin": "09271040180000",
      "address": "456 Courtland Ave, Park Ridge, IL 60068",
      "assessed_prior": 41120,
      "assessed_total": 52760,
      "delta": 11640,
      "jump_pct": 28,
      "appeal_count": 0
    }
  ],
  "next": "/v1/feeds/appeal-leads?cursor=eyJvZmZzZXQiOjF9"
}

GET/v1/sales?since=

Every recorded sale since a date, across the covered area: date, price, deed type, grantor, grantee and document number, in recording order.

terminal
curl -s "https://cookcountyrecords.com/api/v1/sales?since=2026-07-15" \
  -H "Authorization: Bearer ccr_live_4QxT…"
response.json — illustrative
{
  "since": "2026-07-15",
  "count": 38,
  "rows": [
    {
      "pin": "09262110340000",
      "address": "789 N Western Ave, Park Ridge, IL 60068",
      "sale_date": "2026-08-02",
      "price": 545000,
      "doc_type": "WARRANTY DEED",
      "grantor": "DOE, JANE",
      "grantee": "789 WESTERN LLC",
      "doc_no": "2621847093"
    }
  ],
  "next": "/v1/sales?since=2026-07-15&cursor=eyJvZmZzZXQiOjF9",
  "release_id": "2026-08-15"
}

GET/v1/owners/{id}/holdings

A planned entity response with parcels linked in the available records, assessed totals and latest recorded deed date. Administrative links are not a title search or proof of beneficial ownership.

terminal
curl -s https://cookcountyrecords.com/api/v1/owners/own_3d84a1/holdings \
  -H "Authorization: Bearer ccr_live_4QxT…"
response.json — illustrative
{
  "owner_id": "own_3d84a1",
  "owner_name": "OAKTON PARTNERS LLC",
  "owner_kind": "llc",
  "parcel_count": 6,
  "assessed_total": 291480,
  "latest_deed": "2025-11-03",
  "holdings": [
    {
      "pin": "09354070110000",
      "address": "12 Main St, Park Ridge, IL 60068",
      "assessed_total": 51240,
      "last_sale_date": "2023-04-12",
      "last_sale_price": 468000
    }
  ],
  "next": null
}

POST/v1/webhooks

Register a URL once and receive a POST each time a data release publishes, with counts of what changed and a cursor to pull the changes.

terminal — register once
curl -s -X POST https://cookcountyrecords.com/api/v1/webhooks \
  -H "Authorization: Bearer ccr_live_4QxT…" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/hooks/ccr", "events": ["release.published"]}'
delivery payload — POSTed to your URL, illustrative
{
  "event": "release.published",
  "release_id": "2026-08-15",
  "published_at": "2026-08-15T14:02:11Z",
  "changes": {
    "sales": 38,
    "permits": 61,
    "appeals": 12,
    "ownership_changes": 24
  },
  "cursor": "/v1/changes?since=2026-07-15"
}

Also planned for launch: /v1/search?q=, /v1/streets/{slug}, /v1/changes?since=, and per-parcel /sales, /permits and /appeals subresources.

Example workflows

1.Appeal-lead pull for a law firm

Turn the appeal-leads feed into a vetted outreach list.

  1. 1.1Pull the current list: GET /v1/feeds/appeal-leads. Each row is a parcel with a 10%+ assessment jump and appeal_count: 0.
  2. 1.2For each retained lead, fetch the dossier: GET /v1/parcels/{pin} — prior assessment, sale history and permit record in one call.
  3. 1.3Pull again after each data release. A lead whose appeal_count is no longer 0 has filed; drop it from the list.

2.Trade-lead sync into a CRM

Keep a contractor pipeline current without re-keying records.

  1. 2.1Pull GET /v1/feeds/trade-leads — pre-1985 homes with no building permit on record (the county's permit feed begins March 2018).
  2. 2.2Upsert into the CRM keyed on pin; map estimated_value and year_built to lead fields.
  3. 2.3On each release.published webhook, pull again and close leads that now show permit activity.

3.Portfolio monitoring by webhook

Watch specific owners and streets without polling.

  1. 3.1Register once: POST /v1/webhooks with "events": ["release.published"].
  2. 3.2On delivery, pull GET /v1/sales?since= the prior release date and match grantee against the entities you track.
  3. 3.3For each watched owner, GET /v1/owners/{id}/holdings and diff parcel_count against your stored copy.

API launch updates

Not ready to reserve?

Leave your email and what you'd build. We'll write once when the API opens.

cook countyrecords

Independent research into local decisions and property records, with links to official municipal, county, state and federal sources. Not affiliated with any government. Estimates and unresolved questions are labeled. Park Ridge property release: refreshed 2026-09-07 · assessor records 2026-09-01 · Board decisions through 2026-06-09.