What it returns
Police calls for service (the dispatch log) and reported offenses from about 35 US cities and counties in one schema: jurisdiction, kind (call or crime), incident number, type, category, occurred and reported times, block address, ZIP, coordinates, beat or district, and disposition.
No names. Only incident fields are read from each source, so names, victim, suspect and arrestee details, race, sex, age and officer identifiers never enter the data. Addresses are as each city publishes them, mostly at block level.
Search by state, city or county, kind, type, category, keyword, beat, ZIP, a point and radius, or date range; or group the matches to count incidents by jurisdiction, type, category, beat or month.
Coverage from January 2025: Seattle, Los Angeles, Chicago, Dallas, Austin, Kansas City, New Orleans, Cincinnati, Oakland, Colorado Springs, Mesa, Honolulu, Richmond, Norfolk, Providence, Cambridge, Everett, Auburn WA, Bloomington IN, Gainesville, Rockford, Johns Creek, and the counties of King, Pierce, Montgomery MD, Prince George's, East Baton Rouge, Marin, Santa Clara, Sonoma, Ramsey and Winnebago. Rebuilt weekly from each government's open data portal.
Charged per incident or group returned.
Request
POST https://api.pushbuild.com/police-incident-logs/run with a JSON body. Send your key in the X-API-Key header.
| Field | Type | Description |
|---|---|---|
states | list of strings | Two-letter state codes, e.g. WA, TX. |
jurisdiction | string | Name contains, e.g. Seattle, Montgomery County. |
kind | string: , call, crime | call = calls for service / dispatch log; crime = reported offenses. Empty for both. |
type | string | Call type or offense contains, e.g. burglary, shots fired, theft. |
category | string | Category contains, e.g. Property, Violent, Disorder. |
keyword | string | Words in the type, category or address. |
area | string | Police beat, district, precinct or sector contains. |
zip | string | ZIP code starts with (where the source publishes one). |
latitude | number | With longitude and radius: incidents near a point (sources with coordinates). |
longitude | number | Longitude of the point. |
radiusMiles | number | Search radius around the point. Default: 1. |
dateFrom | string | Occurred (or reported) on or after, YYYY-MM-DD. |
dateTo | string | Occurred (or reported) on or before, YYYY-MM-DD. |
groupBy | string: , jurisdiction, state, type, category, area, month, kind | Count matching incidents instead of listing them. |
sort | string: newest, oldest | Order of listed incidents. Default: "newest". |
maxItems | integer | Maximum items to return (1-500). Default: 100. |
Example
curl -X POST https://api.pushbuild.com/police-incident-logs/run \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jurisdiction": "Seattle", "maxItems": 20}'
Response
{"count": 20, "truncated": false, "seconds": 1.4, "items": [ { ... } ]}
Each call returns up to 500 items. Records that fail validation or are not found are flagged in the items and not charged.
Pricing
Pay only for results returned: $0.80 per 1,000 incidents. No charge for errors or empty searches.
Use it from Claude, ChatGPT or Cursor
This API is also an MCP server: https://api.pushbuild.com/mcp/police-incident-logs. Add it to any assistant that supports remote MCP servers, with your key in the X-API-Key header. Same prices. Setup for each app.
Tell us what you need built.
Questions about this API, higher volumes, or a data source you need that we don't cover yet.
hello@pushbuild.comWant this data inside your own app or CRM? API integrations and data sync