Chicago Contracts - City Awards & Purchase Orders
Pricing
from $0.03 / 1,000 chicago awarded contract records
Chicago Contracts - City Awards & Purchase Orders
City of Chicago awarded contracts and purchase orders (public open data, 186,177 awards, 89,067 PO numbers): vendor, award amount, contract and procurement type, department, approval dates and the contract PDF. Filter by vendor, department, type, amount or date.
Pricing
from $0.03 / 1,000 chicago awarded contract records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Every contract and purchase order the City of Chicago has awarded, straight from the City's own open data portal. ~186,000 award records over ~89,000 distinct PO numbers (as of 2026-09-27), from 1993 to this week.
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Pay only for the records you actually receive - the whole register stays queryable, you are never billed for the scan behind it.
What you get
- Who - the vendor name and vendor id, with the vendor's address
- How much - the award amount, plus the specification number and the purchase order / contract number
- What - the purchase order description, the contract type (construction, demolition, commodities, delegate agency, ) and the procurement method (bid, RFP, sole source, emergency, )
- Which department - the awarding department
- When - the approval date, plus the contract's start and end dates
- The document - a link to the contract PDF where the City published one
Modes
- rows (default) - award records matching your filters
- aggregate - counts by department, contract type or vendor state
Filters
PO / contract number, vendor name, vendor id, department, contract type, procurement method, vendor city / state / ZIP, a minimum award amount, and a true approval-date range.
Example inputs
Demolition awards above a threshold
{ "vendorName": "WRECKING", "minAwardAmount": 100000, "maxResults": 25 }
One department's awards this year
{ "department": "BUILDINGS", "approvedFrom": "2026-01-01", "maxResults": 25 }
Sole-source and emergency awards
{ "procurementType": "SOLE SOURCE", "approvedFrom": "2026-01-01" }
One contract by number - a contract appears once per revision, so a number can return several rows.
{ "poNumber": "162389" }
Example output
A demolition award - vendorName=WRECKING, minAwardAmount=100000:
{"platform": "chicago-contracts","source": "chicago-awarded-contracts","corpus": "contracts","recordKind": "contract","mode": "rows","groupKey": "","groupCount": "","groupBy": "","poNumber": "162389","revisionNumber": "0","description": "Demolition Services","specificationNumber": "752095","contractType": "DEMOLITION","procurementType": "MASTER AGREEMENT","department": "DEPARTMENT OF BUILDINGS","vendorName": "LEEWAY WRECKING, INC.","vendorId": "93278213A","address1": "PO BOX 12570 EFT","address2": "","city": "CHICAGO","state": "IL","zip": "60612","awardAmount": "5000000","startDate": "2021-09-01","endDate": "2024-08-31","approvalDate": "2021-10-29","contractPdf": "http://ecm.cityofchicago.org/eSMARTContracts/service/DPSWebDocumentViewer?sid=ESMART&id={B0730A7D-0000-CA1C-B7BA-FF8A51EA8946}","sourceUpdatedAt": "2026-09-24"}
mode=aggregate, groupBy=department - one count row per department:
DEPARTMENT OF FAMILY AND SUPPORT SERVICES 30,907CHICAGO DEPARTMENT OF TRANSPORTATION 21,203DEPARTMENT OF HUMAN RESOURCES 17,948CHICAGO DEPARTMENT OF PUBLIC HEALTH 14,358DEPARTMENT OF BUILDINGS 11,251CHICAGO DEPARTMENT OF AVIATION 11,123
Notes on the data, from the source
- A contract appears once per revision. 186,177 rows map to 89,067 distinct (both measured 2026-09-27)
PO numbers because amendments are separate rows (
revision_number0 upward; 89,041 rows are revision 0). The revision history is deliberate and is kept - but if you are counting contracts rather than rows, count distinct PO numbers, and the two totals above are the honest pair. - The award amount is sometimes negative. 27,549 rows are exactly 0 and
27,153 are negative - offsetting and adjustment revisions. Summing the raw
column mixes adjustments into the total, which is why the filter
(
minAwardAmount) only ever matches positive amounts. - The procurement method is blank on 70% of rows (130,903 of 186,177) and is therefore offered as a filter only, never as an aggregate dimension - a "group by procurement method" would return "no value recorded" as its largest bucket.
- A contract PDF exists on 36.5% of rows (68,005). The link is exposed where the City published one, and never promised as universal.
- The department is blank on 10,629 rows (5.7%) and the contract type on 44,598 (24%) - both are still usable as filters, but a share of the register carries no value in them.
- Four data-entry outliers are blanked, not shown as live contract terms: two end dates in 2104 / 3030, and two start dates past 2030 (the source's own values). Invalid dates on filter inputs are rejected rather than passed on.
- Approval dates are true dates, so the date filters here are real ranges, not the year-granularity that text date columns force.
Notes
- Public open data from data.cityofchicago.org. No login, no scraping.
- The register is updated as awards are approved; every record carries
sourceUpdatedAtso you can see the feed's currency without running anything. - Charges are metered per record delivered, so a targeted query costs a fraction of a cent.