Chicago Crash Data

Traffic crashes sourced from the Chicago Data Portal.

Crashes

16,513
2018-01-01
2026-05-27

Injuries by Month — last 24 months

Fatal Incapacitating
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

CategoryCount
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)