{"service": "Cook County (Chicago) property records API", "description": "Pay-per-call property-records API for Cook County, Illinois \u2014 including the City of Chicago. Look up any property by street ADDRESS or 14-digit PIN and get parcel details, recorded sales & deed history, building permits, and property-tax assessment history, joined and normalized into one answer. Returns finished, joined answers the raw county open-data APIs can't: building permits LINKED to the PIN (the permits feed has no PIN \u2014 links are derived here by address + geo match), street addresses joined to parcels (the parcel dataset has none), and comparable-sales valuation. You get the answer, not rows to query, stitch, and derive yourself. Use for real-estate due diligence, automated valuation / comparable-sales (comps), title and lien research prep, lead enrichment, and market analysis. ~1.9M parcels, refreshed nightly, property-keyed (public records only \u2014 no personal data). No signup and no API key. Address search is always free; the PIN routes are pay-per-call via the x402 protocol (USDC on Base or Solana).", "coverage": "Cook County, Illinois incl. City of Chicago (~1.9M parcels; recorded sales, building permits, assessments)", "keywords": ["cook county", "chicago", "illinois", "property records", "real estate", "parcel", "PIN", "address lookup", "address to PIN", "property tax", "assessment", "recorded sales", "deed history", "building permits", "comparable sales", "comps", "automated valuation", "due diligence", "lead enrichment", "title research", "open data", "x402", "pay per call", "evanston", "oak park", "cicero", "skokie", "berwyn", "des plaines", "arlington heights", "palatine", "schaumburg", "orland park", "tinley park", "oak lawn", "suburban cook county", "assessed value", "assessor", "cook county assessor", "board of review", "AVM", "home value", "last sold price", "sale history", "permit history", "building permit lookup", "renovation history", "pin lookup", "cook county pin", "geocode", "latitude longitude", "property research", "real estate investor", "underwriting", "ward", "census tract"], "auth": "none \u2014 no signup, no API key, and no wallet needed to start: address search is always free and the first 25 calls per client per day to the PIN routes return real data free. x402 (USDC) covers anything past that.", "payment": {"protocol": "x402", "facilitator": "https://facilitator.payai.network", "enforced": true, "enabled": true, "asset": "USDC", "free_allowance": {"calls_per_day": 25, "note": "The first 25 paid-route calls per client per day return real data with NO payment \u2014 just call them. Past that you get the normal 402 and can pay with x402. See headers X-Free-Tier-Remaining / X-Free-Tier."}, "rails": [{"network": "eip155:8453", "pay_to": "0x98D530C0667A4B18e692F182DdCAb1c2bECb5B9B"}, {"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "pay_to": "G3qr8ahZnuFSYjvrCYM4LLDdoLzFq8Boq9XrURVcA9YF"}]}, "endpoints": {"/v1/search": {"price": "$0.00", "description": "Address \u2192 PIN lookup for Cook County / Chicago. Resolve a full or partial STREET ADDRESS to its parcel PIN(s): ranked candidate parcels with address, city, ZIP, a match score and a match_quality flag (exact | likely | weak | none) \u2014 resolving the address-to-parcel gap (the raw parcel dataset has no address). The entry point when you have an address but not a PIN \u2014 call this before /v1/dossier, /v1/parcel, or /v1/comps. Public assessor records. FREE \u2014 no payment required (the PIN routes are pay-per-call).", "input_schema": {"type": "object", "required": ["q"], "properties": {"q": {"type": "string", "description": "Street address or partial (4+ chars), e.g. '1 E 113th St'. A trailing city/state/ZIP is fine and is stripped ('1 E 113th St, Chicago, IL 60628')."}}}, "output_schema": {"type": "object", "properties": {"query": {"type": "string"}, "normalized": {"type": "string", "description": "the street portion actually matched"}, "match_quality": {"type": "string", "description": "exact | likely | weak | none. Only 'exact' is certain; 'weak' means no candidate shares the house number - do not rely on it"}, "matches": {"type": "array", "items": {"type": "object", "properties": {"pin": {"type": "string"}, "prop_address": {"type": "string"}, "prop_city": {"type": "string"}, "prop_zip": {"type": "string"}, "exact": {"type": "boolean"}, "score": {"type": "number", "description": "0-1 address similarity"}}}}}}}, "/v1/parcel": {"price": "$0.01", "description": "Single Cook County, IL parcel record by PIN: street address, city, ZIP, assessor property class, township, neighborhood, ward/municipality, census tract, school districts, walkability and airport-noise context, and lat/lon \u2014 with the street address joined in (the raw parcel dataset has none). The cheap single-property lookup. Source: Cook County Assessor, refreshed nightly.", "input_schema": {"type": "object", "required": ["pin"], "properties": {"pin": {"type": "string", "description": "Cook County PIN, 10 or 14 digits, dashes ok (14-08-120-017-0000). Only have an address? /v1/search first."}}}, "output_schema": {"type": "object", "properties": {"pin": {"type": "string"}, "prop_address": {"type": "string"}, "prop_city": {"type": "string"}, "prop_zip": {"type": "string"}, "class": {"type": "string"}, "township_name": {"type": "string"}, "nbhd_code": {"type": "string"}, "tax_year": {"type": "integer"}, "lat": {"type": "number"}, "lon": {"type": "number"}, "municipality": {"type": "string"}, "ward": {"type": "string"}, "police_district": {"type": "string"}, "census_tract_geoid": {"type": "string"}, "school_elementary_district": {"type": "string"}, "school_secondary_district": {"type": "string"}, "walk_score_cmap": {"type": "number"}, "airport_noise_dnl": {"type": "number"}}}}, "/v1/dossier": {"price": "$0.03", "description": "Complete Cook County / Chicago property record in one call: parcel basics PLUS recorded sales & deed history, building permits, and property-tax assessment history, joined and normalized, with neighborhood/ward/school/walkability context. Permits are LINKED to the PIN (the raw permit feed has none) \u2014 one finished record, not raw rows to stitch. For due diligence, valuation, underwriting. Nightly-fresh; no personal data.", "input_schema": {"type": "object", "required": ["pin"], "properties": {"pin": {"type": "string", "description": "Cook County PIN, 10 or 14 digits, dashes ok (14-08-120-017-0000). Only have an address? /v1/search first."}}}, "output_schema": {"type": "object", "properties": {"pin": {"type": "string"}, "prop_address": {"type": "string"}, "class": {"type": "string"}, "municipality": {"type": "string"}, "ward": {"type": "string"}, "sales_history": {"type": "array", "items": {"type": "object", "properties": {"date": {"type": "string"}, "price": {"type": "number"}, "doc_no": {"type": "string"}, "deed_type": {"type": "string"}}}}, "permits": {"type": "array", "items": {"type": "object", "properties": {"issued": {"type": "string"}, "type": {"type": "string"}, "cost": {"type": "number"}, "desc": {"type": "string"}}}}, "assessment_history": {"type": "array", "items": {"type": "object", "properties": {"year": {"type": "integer"}, "certified": {"type": "number"}, "board": {"type": "number"}, "mailed": {"type": "number"}, "stage": {"type": "string", "description": "pending|mailed|certified|board"}}}}, "assessment_note": {"type": "string", "description": "ASSESSED values, not market value or tax owed"}}}}, "/v1/comps": {"price": "$0.10", "description": "Comparable sales (comps) and a lightweight automated valuation for a Cook County / Chicago property: recent arm's-length sales in the same assessor neighborhood and property class over the last 18 months, with an implied low/median/high price range, each comp carrying its distance in metres from the subject. Thin markets widen automatically (36 months, then the property-class group) and the response reports which rung was used. Non-arm's-length and multi-parcel deeds are filtered out \u2014 a derived valuation you won't get from a raw open-data query. For valuation, underwriting, investment screening, and due diligence.", "input_schema": {"type": "object", "required": ["pin"], "properties": {"pin": {"type": "string", "description": "Cook County PIN, 10 or 14 digits, dashes ok (14-08-120-017-0000). Only have an address? /v1/search first."}}}, "output_schema": {"type": "object", "properties": {"pin": {"type": "string"}, "comps": {"type": "array", "items": {"type": "object", "properties": {"pin": {"type": "string"}, "prop_address": {"type": "string"}, "sale_date": {"type": "string"}, "sale_price": {"type": "number"}, "deed_type": {"type": "string"}, "comp_class": {"type": "string"}, "distance_m": {"type": "number", "description": "metres from the subject parcel"}}}}, "method": {"type": "string", "description": "which matching rung produced these comps"}, "implied_range": {"type": "object", "properties": {"low": {"type": "number"}, "median": {"type": "number"}, "high": {"type": "number"}, "n": {"type": "integer"}}}}}}}, "example": {"goal": "property report from a street address", "steps": ["GET /v1/search/1%20E%20113th%20St  -> candidate PINs", "GET /v1/dossier/<pin>  -> full record"]}, "mcp": {"url": "https://api.ingest0r.com/mcp", "transport": "streamable-http", "note": "Zero-install remote MCP \u2014 add the URL, no npx or pip step.", "tools": ["get_free_sample", "search_chicago_property_by_address", "get_cook_county_parcel", "get_cook_county_property_dossier", "find_chicago_comparable_sales"]}, "links": {"llms": "https://api.ingest0r.com/llms.txt", "llms_full": "https://api.ingest0r.com/llms-full.txt", "openapi": "https://api.ingest0r.com/openapi.json", "agent_card": "https://api.ingest0r.com/.well-known/agent-card.json", "x402_resources": "https://api.ingest0r.com/.well-known/x402", "pricing": "https://api.ingest0r.com/pricing", "changelog": "https://api.ingest0r.com/changelog.json", "health": "https://api.ingest0r.com/healthz"}, "terms": {"license": "Underlying records are Cook County / City of Chicago public open data. Responses may be stored, cached and redistributed by the caller; attribution to the Cook County Assessor/Recorder and City of Chicago open data is requested, not required.", "warranty": "Provided as-is from public records. No warranty of accuracy, completeness or fitness for a particular purpose. Not affiliated with or endorsed by any government body. Not an appraisal, title report, or legal advice.", "sla": "Best-effort, single region. No uptime guarantee. Liveness: GET /healthz. Data refreshed nightly; every answer carries as_of.", "privacy": "Property-keyed only. No owner, buyer, seller or occupant names are stored on any serving path or logged."}, "free_sample": "/v1/sample", "free_examples": ["https://api.ingest0r.com/v1/dossier/09253050270000", "https://api.ingest0r.com/v1/dossier/09253060510000", "https://api.ingest0r.com/v1/dossier/09253140190000"], "pricing_url": "/pricing", "changelog": "/changelog.json", "version": "0.4.2", "as_of": "2026-09-17T03:33:14.892495-05:00", "scope": "Cook County, Illinois (incl. City of Chicago) ONLY \u2014 not nationwide. Property-keyed public records; no personal, owner, or occupant data.", "not_covered": {"geographies": ["anywhere outside Cook County, Illinois, USA (no other counties, states, or countries)"], "data": ["owner or occupant names", "mortgages and liens", "nationwide search", "interior details or photos", "MLS listings or asking prices", "property tax BILL amounts or taxes owed (assessed values only)", "building square footage, bedrooms, bathrooms, or year built", "zoning and land-use designations", "foreclosure, eviction, or code-violation filings", "rental, tenancy, or Section 8 data"]}, "freshness": "refreshed nightly from county/city open-data portals", "data_policy": "public records only; property-keyed, no personal data"}