Traffic crashes sourced from the Chicago Data Portal.
Crashes
16,513
2018-01-01
2026-05-27
Injuries by Month — last 24 months
FatalIncapacitating
2026
May
4 / 127
Apr
9 / 136
Mar
6 / 114
Feb
7 / 78
Jan
10 / 96
2025
Dec
10 / 112
Nov
12 / 138
Oct
8 / 148
Sep
7 / 158
Aug
6 / 203
Jul
9 / 162
Jun
8 / 186
May
6 / 124
Apr
9 / 133
Mar
9 / 136
Feb
3 / 90
Jan
6 / 101
2024
Dec
6 / 102
Nov
10 / 164
Oct
11 / 138
Sep
11 / 207
Aug
10 / 203
Jul
16 / 192
Jun
11 / 187
May
0 / 24
Locations
Category
Count
intersection
23,877
neighborhood
98
street
1,832
ward
50
API Endpoints
GET/api/status
Database status and row counts
GET/api/crashes/nearpoint
Crashes near a lat/lng point — latitude (required), longitude (required), since (optional, YYYY-MM-DD), until (optional, YYYY-MM-DD), distance_feet (default 2640), limit (default 50)
GET/api/crashes/recent
Most recent crashes citywide — limit (default 20, max 50), fatal_only (default false), include_people (default false)
GET/api/crashes/brief
All crashes with a brief field set for heatmaps and bulk visualization — since (optional, YYYY-MM-DD), until (optional, YYYY-MM-DD), location_category + location_id (optional, both required together), limit (default 50000, max 50000; response carries truncated:true if total exceeds limit)
GET/api/crashes/list
Paginated crash list citywide, by (category, id), or near a point — location_category + location_id (use this OR lat/lng), latitude + longitude (use this OR location_category/id), distance_feet (default 2640, used with lat/lng), since (optional, YYYY-MM-DD), until (optional, YYYY-MM-DD), page (default 0), per_page (default 25, max 100), sort (asc | desc, default desc), fatal_only (default false), include_people (default false)
GET/api/crashes/summary
Aggregated stats (totals, top causes, by-year) for a location or point radius — location_category + location_id (use this OR lat/lng), latitude + longitude (use this OR location_category/id), distance_feet (default 2640, used with lat/lng), since (optional, YYYY-MM-DD), until (optional, YYYY-MM-DD)
GET/api/crashes/date-count
Crash injury counts grouped by time period — unit (day | month | year, default month), last (integer, default 6)
GET/api/locations/search
Search locations by name — q (required)
GET/api/crashes/<crash_record_id>
Fetch a crash detail payload including related neighborhood, ward, street, and intersection locations
GET/api/locations/<category>/<location_id>
Fetch a single location by category and id
GET/api/locations/<category>/<location_id>/nearby
Fetch nearby locations in the same category — limit (default 5, max 20)
GET/api/locations/for-point
Neighborhood and ward containing a lat/lng point, with crash counts — latitude (required), longitude (required)
GET/api/neighborhoods/stats
Crash stats aggregated by neighborhood (includes rank and percentile per area) — include_geometry (default true)
GET/api/wards/stats
Crash stats aggregated by ward (includes rank and percentile per area) — include_geometry (default true)
GET/api/streets/stats
Crash stats aggregated by street (includes rank and percentile per area) — limit (default 50, max 500)
GET/api/intersections/top
Top intersections by crash count from crash_locations mapping — recent_days (default 90), limit (default 20)