x-api-key header. Get a free key.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.