Discover/Cook County IL API
live

Cook County IL APIcookcountyil.gov

Access Cook County public records via API: property tax lookups, court case search, code violations, and department contacts across 4 endpoints.

Endpoint health
verified 2d ago
get_department_contacts
search_code_violations
2/2 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the Cook County IL API?

The Cook County IL API provides 4 endpoints covering public records from Cook County government, including property tax records, civil and domestic court cases, code violation lookups, and department contact information. The get_department_contacts endpoint returns agency names, URLs, phone numbers, email addresses, and director details, while search_court_cases lets you query civil, law, chancery, and domestic relations divisions by case number.

Try it

No input parameters required.

api.parse.bot/scraper/fcccad62-6195-4b66-9155-4f33b8c3c34e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/fcccad62-6195-4b66-9155-4f33b8c3c34e/get_department_contacts' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace cookcountyil-gov-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Cook County IL API — bounded walkthrough of department contacts and violations lookup."""
from parse_apis.cook_county_il_api import CookCounty, TicketInvalid

client = CookCounty()

# List agencies with enriched contact details; limit caps total items fetched.
for agency in client.agencies.list(limit=5):
    print(agency.name, agency.url, agency.phone)

# Drill into the first agency for detail fields.
first_agency = client.agencies.list(limit=1).first()
if first_agency:
    print(first_agency.name, first_agency.email, first_agency.address, first_agency.director)

# Look up a code-violation ticket on the DACRA portal.
try:
    result = client.violationlookups.lookup(ticket_number="123456")
    print(result.portal, result.ticket)
except TicketInvalid as exc:
    print(f"Invalid ticket: {exc}")

print("exercised: agencies.list / violationlookups.lookup")
All endpoints · 4 totalmissing one? ·

Fetch contact information for all Cook County departments and agencies. Returns a list of agencies with names and URLs. The first three agencies are enriched with phone, email, address, and director details where available from their detail pages.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "agencies": "array of agency objects with name, url, and optionally phone, email, address, director"
  },
  "sample": {
    "data": {
      "agencies": [
        {
          "url": "https://www.cookcountyil.gov/agency/office-president",
          "name": "Office of the President",
          "email": null,
          "phone": null,
          "address": null,
          "director": null
        },
        {
          "url": "https://www.cookcountyil.gov/agency/secretary-board-commissioners",
          "name": "Secretary to the Board of Commissioners",
          "email": null,
          "phone": "Phone Number+1 (555) 012-3456",
          "address": null,
          "director": null
        },
        {
          "url": "https://www.cookcountyil.gov/agency/assessor",
          "name": "Assessor",
          "email": null,
          "phone": "Phone Number+1 (555) 012-3456",
          "address": null,
          "director": null
        },
        {
          "url": "https://www.cookcountyil.gov/agency/board-review",
          "name": "Board of Review"
        },
        {
          "url": "https://www.cookcountyil.gov/agency/clerk-circuit-court",
          "name": "Clerk of the Circuit Court"
        }
      ]
    },
    "status": "success"
  }
}

About the Cook County IL API

Department Contacts and Property Tax

The get_department_contacts endpoint returns an array of Cook County agencies, each with name and url fields. The first three results are enriched with phone, email, address, and director fields where available, making it useful for building contact directories or routing inquiries to the correct agency. The search_property_tax endpoint accepts a pin parameter (Property Index Number, e.g. 17321100010000) and returns city, address, total_tax, and assessed_value for the matched parcel. Note that this endpoint is currently unavailable due to an upstream TLS certificate issue on the source site.

Court Cases and Code Violations

The search_court_cases endpoint accepts a required case_number string and an optional division code: 1 for Civil, 2 for Law, 3 for Chancery, and 4 for Domestic Relations. It returns an array of matching case objects, allowing you to narrow searches to a specific division of the Cook County court system. The search_code_violations endpoint takes a ticket_number and returns the Cook County DACRA violations portal URL alongside the submitted ticket number, directing you to the authoritative portal for full violation details.

Coverage and Limitations

All data reflects publicly available Cook County government records. The get_department_contacts endpoint enriches only the first three agency results with full contact details. Property tax lookups are blocked by an ongoing upstream TLS issue. Code violation results surface the portal URL rather than inline violation data, so full ticket details require a follow-up visit to the DACRA portal.

Reliability & maintenanceVerified

The Cook County IL API is a managed, monitored endpoint for cookcountyil.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cookcountyil.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official cookcountyil.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Look up assessed property values and total tax owed using a Cook County PIN for real estate due diligence
  • Search civil or domestic relations court cases by case number to track litigation status
  • Retrieve Cook County department director names and contact details for government outreach or compliance workflows
  • Resolve a code violation ticket number to the DACRA portal for enforcement or property research
  • Build a Cook County agency directory using agency names, URLs, and phone numbers from get_department_contacts
  • Cross-reference property PINs with court cases to identify liens or contested ownership
  • Automate lookups across court divisions by filtering search_court_cases with division codes
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Cook County have an official developer API?+
Cook County does not publish a unified developer API. Various data portals exist, such as the Cook County Open Data portal at datacatalog.cookcountyil.gov, but they are fragmented across departments and lack consistent programmatic access.
What does search_court_cases return, and can I filter by case type?+
It returns an array of case objects matching the supplied case_number. You can narrow results by passing a division code: 1 for Civil, 2 for Law, 3 for Chancery, or 4 for Domestic Relations. If no division is specified, the search runs across all divisions.
Why does search_code_violations return a portal URL instead of violation details?+
The endpoint returns the DACRA violations portal URL and the ticket number you submitted. Full violation details — such as violation type, status, and fine amounts — are available on the portal itself rather than returned inline by the endpoint.
Is criminal court case data available through this API?+
Not currently. The API covers civil, law, chancery, and domestic relations divisions via search_court_cases. Criminal case lookups are not included. You can fork this API on Parse and revise it to add an endpoint targeting criminal case records.
Does the property tax endpoint return historical tax records or only the current year?+
The endpoint returns a single record per PIN with current total_tax and assessed_value fields. Historical year-over-year tax data is not part of the response. You can fork this API on Parse and revise it to pull additional historical assessment data if available from the source.
Page content last updated . Spec covers 4 endpoints from cookcountyil.gov.
Related APIs in Government PublicSee all →
losangelescounty.gov API
Search Los Angeles County public records, code violations, and department information, while accessing board meeting minutes, transcripts, and agendas all in one place. Quickly find contact details for county departments and stay informed on official meetings without navigating multiple county websites.
naco.org API
Search and explore detailed U.S. county government information, including profiles, economic indicators, funding data, and research resources all in one place. Quickly access bulk county statistics and NACo insights to support planning, analysis, and decision-making at the local government level.
harriscountytx.gov API
Access official Harris County government data including election results, county services and facilities like parks and libraries, public notices, and Commissioners Court meeting schedules. Stay informed about local government activities and find information about Harris County services all in one place.
qPublic Property Records API
Search for properties on qPublic and access comprehensive details including owner information, valuations, building and land characteristics, sales history, tax exemptions, and fees. Retrieve complete property records to research real estate, verify ownership, or analyze property values.
sc-charleston.publicaccessnow.com API
Look up property assessment data from Charleston County, SC by PIN to find owner information, assessed values, property characteristics, and sales history. Perfect for researching real estate details, verifying property information, or tracking Charleston County property records.
judyrecords.com API
Search and retrieve detailed court records including case information and statistics from a comprehensive legal database. Access specific case details and view aggregated court record stats to research legal proceedings and case outcomes.
losangeles.gov API
Search for building permits, inspection records, and property details for Los Angeles addresses to access permit histories, parcel information, code enforcement records, and occupancy certificates. Track retrofit programs and get comprehensive permit summaries to research property compliance and construction activity in LA.
sarasotaclerk.com API
Search and retrieve official land and court records from Sarasota County including foreclosures and Lis Pendens documents by name, date, or document type. Access detailed record information with full pagination support to find the specific legal documents you need.