Quickstart
1. Get an API key
Sign in with your email, then create a key under API keys on My tracker. Keys start with cp_live_. Store it in an environment variable, not in your code:
export CHICAGO_POLITICS_KEY="cp_live_..."
2. Make a request
Search all legislation for "budget":
curl "https://www.chicagopolitics.org/api/v1/legislation?q=budget&limit=1" \
-H "Authorization: Bearer $CHICAGO_POLITICS_KEY"
const res = await fetch('https://www.chicagopolitics.org/api/v1/legislation?q=budget&limit=1', {
headers: { Authorization: 'Bearer ' + process.env.CHICAGO_POLITICS_KEY },
});
const { data, meta } = await res.json();
console.log(meta.total, data[0].title);
import os
import requests
r = requests.get(
"https://www.chicagopolitics.org/api/v1/legislation",
params={"q": "budget", "limit": 1},
headers={"Authorization": f"Bearer {os.environ['CHICAGO_POLITICS_KEY']}"},
)
r.raise_for_status()
body = r.json()
print(body["meta"]["total"], body["data"][0]["title"])
3. Read the response
Every response has the same shape: data (the record or list), meta (counts, paging, and when the data was last updated), and links (where to go next).
{
"data": [
{
"id": "1AB8959D-89B7-F111-AAAC-001DD80B58E5",
"record": "O2026-0028931",
"title": "Scope of services, budget and management agreement for Special Service Area (SSA) No. 54 (Sheridan Road) for Year 2027",
"type": "Ordinance",
"status": "In Committee",
"introduced": "2026-09-23",
"committee": "Committee on Economic, Capital and Technology Development",
"sponsor": { "name": "Johnson, Brandon", "member": null },
"links": {
"page": "https://www.chicagopolitics.org/matter/1AB8959D-89B7-F111-AAAC-001DD80B58E5",
"markdown": "https://www.chicagopolitics.org/matter/1AB8959D-89B7-F111-AAAC-001DD80B58E5.md",
"api": "https://www.chicagopolitics.org/api/v1/legislation/1AB8959D-89B7-F111-AAAC-001DD80B58E5"
}
}
],
"meta": {
"count": 1,
"total": 231,
"limit": 1,
"nextCursor": "MQ",
"dataUpdated": "2026-10-07T01:37:20+00:00",
"source": "Office of the City Clerk (eLMS) and Chicago Data Portal, via chicagopolitics.org",
"license": "CC BY 4.0: cite Chicago Politics (chicagopolitics.org) and link to the page"
},
"links": {
"self": "https://www.chicagopolitics.org/api/v1/legislation?q=budget&limit=1",
"next": "https://www.chicagopolitics.org/api/v1/legislation?q=budget&limit=1&cursor=MQ"
}
}