UK Police Street-Level Crime Data Scraper icon

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/5xx and network errors — up to 5 attempts, Retry-After honoured.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, no raw nested payload, outcome_status and persistent_id normalised to null when 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.

FieldTypeRequiredWhat 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

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result row emitted$0.0025Per 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?
No. 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?
Either the point/month pair genuinely had no recorded crimes, or the month is too recent for the API's publish lag. Both cases finish as a successful run with a status message explaining what was searched — never a failed run.
Can I search more than 5 points or a longer date range?
Not in v1 — this Actor is intentionally bounded to keep runs fast and predictably priced. Contact us if you need a wider range.
Where does the data come from?
The UK Police public Street-Level Crimes API (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

Teams that run this also run