x-api-key header. Get a free key.Crime Data API supports incident searches, statistics, location comparisons, scores and city coverage through REST endpoints. Create a free key with POST /v1/keys and send it in the x-api-key header. The free plan includes 500 calls per month; paginated incident queries return next_cursor for retrieving subsequent results.
Last updated: 2026-11-04
curl -X POST 'https://crimedata.dev/v1/keys' curl 'https://crimedata.dev/v1/incidents?lat=37.788&lon=-122.4075&limit=100' -H "x-api-key: $CRIME_API_KEY" # Keep the same filters and pass next_cursor (URL-encoded) until it is null: curl -G 'https://crimedata.dev/v1/incidents' -H "x-api-key: $CRIME_API_KEY" --data-urlencode 'lat=37.788' --data-urlencode 'lon=-122.4075' --data-urlencode 'cursor=NEXT_CURSOR'
Errors are JSON with an error string. 400: fix parameters; 401: check your key; 403: widget origin or route refused; 404 with coverage: "none": check /v1/cities. source gives dataset, licence, scope and freshness when available. Follow next_cursor until null; keep filters unchanged. For 429 monthly quota, wait for the reset shown by /v1/usage or upgrade; for key-creation limits, follow the error message. For 503, retry with exponential backoff and jitter, starting at 1 second and capped at 60 seconds; stop after a bounded number of attempts. Failed data calls are refunded.
Incident data comes from city open-data portals under the licence shown for each city. It is police-reported data, not convictions, and sources can revise it.
The city coverage pages and GET /v1/cities identify covered cities, source licences and newest record dates.
No. Scores describe incident density within a city, are not comparable across cities and do not predict personal risk.