Real estate
UK Police Street-Level Crime Data Scraper
Trimmed, egress-bounded UK Police street-level crime records for up to 5 points and a 6-month window -- category, month, street, coordinates, outcome status -- without paying to transfer the full raw monthly payload yourself.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
data.police.uk is the UK government's keyless street-level crime API, but a single request downloads an entire month's raw crime file for a point before you can filter it. This Actor queries the public API for up to 5 points and a bounded month range, trims every record to a flat lead-ready row — category, month, street name, coordinates, outcome status, crime id — and stops once your result cap is reached. No API key, no login, no raw-payload cleanup.
What we handle for you
- 🔁 Retries with exponential backoff on
408/429/5xxand network errors — up to 5 attempts,Retry-Afterhonoured. - 🧊 Clean, typed dataset rows — Pydantic-validated, no raw nested payload,
outcome_statusandpersistent_idnormalised tonullwhen empty. - 🧱 404s handled correctly — a month too recent to be published yet returns zero rows for that pair, not a failed run.
- 💰 Pay-Per-Event pricing — you only pay for rows that land in your dataset. No data, no charge.
Use cases
- Real-estate risk screening — pull crime density around a shortlist of addresses before you list or buy.
- Insurance underwriting — attach a crime-context signal to a property or postcode.
- Local journalism and research — track category-level crime trends for a neighbourhood over a bounded month range.
- Neighbourhood/relocation apps — surface recent crime categories near a point of interest.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
locations | array | no | 1-5 points to search. Each point becomes one lookup in the API's fixed ~1-mile radius, e.g. {"lat": 51.5074, "lng": -0.1278}. |
category | string | no | Crime category filter. all-crime returns every category for the point/month. |
month_from | string | no | First month (inclusive) to fetch, e.g. 2026-06. The API lags 1-2 months behind the calendar date. |
month_to | string | no | Last month (inclusive) to fetch, e.g. 2026-06. Must be on/after month_from, span capped at 6 months inclusive. |
max_results | integer | no | Hard cap on the number of crime rows emitted by this run. Fetching per (location, month) pair still downloads the full month before this cap is applied. |
{
"locations": [
{
"lat": 51.5074,
"lng": -0.1278
}
],
"category": "all-crime",
"month_from": "2026-06",
"month_to": "2026-06",
"max_results": 500
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
categorymonthstreet_namelatitudelongitudeoutcome_statuspersistent_idcrime_idsearch_latsearch_lng
{
"category": "anti-social-behaviour",
"month": "2026-06",
"street_name": "On or near Bedford Street",
"latitude": 51.510389,
"longitude": -0.124157,
"outcome_status": null,
"persistent_id": null,
"crime_id": 136061732,
"search_lat": 51.5074,
"search_lng": -0.1278
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result row emitted | $0.0025 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- Bounded lookup tool: up to 5 points and a 6-month span per run, not an unbounded national or historical mirror.
- The API's ~1-mile search radius is fixed server-side and not configurable.
- The upstream API lags 1-2 months behind the calendar date; very recent months return zero rows for that pair rather than an error.
- No polygon-vertex search and no per-crime-id lookup in v1.
FAQ
Does this need an API key or proxy?
data.police.uk is a keyless UK government API with no observed anti-bot behaviour, so this Actor makes direct requests — no proxyConfiguration to configure.Why did my run return zero rows?
Can I search more than 5 points or a longer date range?
Where does the data come from?
data.police.uk), the same open dataset published by UK police forces.Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors