Chicago Contracts - City Awards & Purchase Orders avatar

Chicago Contracts - City Awards & Purchase Orders

Pricing

from $0.03 / 1,000 chicago awarded contract records

Go to Apify Store
Chicago Contracts - City Awards & Purchase Orders

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

Wenhao Yang

Maintained by Community

Actor 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,907
CHICAGO DEPARTMENT OF TRANSPORTATION 21,203
DEPARTMENT OF HUMAN RESOURCES 17,948
CHICAGO DEPARTMENT OF PUBLIC HEALTH 14,358
DEPARTMENT OF BUILDINGS 11,251
CHICAGO 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_number 0 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 sourceUpdatedAt so 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.