UK Police Street-Level Crime Data Scraper avatar

UK Police Street-Level Crime Data Scraper

Pricing

Pay per event

Go to Apify Store
UK Police Street-Level Crime Data Scraper

UK Police Street-Level Crime Data Scraper

Export UK Police street-level crime records for up to 5 points and a 6-month window: category, month, street name, coordinates, outcome status, and crime id. Keyless data.police.uk API, no auth, no proxy needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share


Quick answer: The UK Police Street-Level Crime Data Scraper exports UK Police street-level crime records — category, month, street name, coordinates, outcome status, and crime id — for up to 5 points and a bounded 6-month range, from the public data.police.uk API. Pricing is pay-per-result — $2.70 per 1 000 rows, no subscription, no card required to try it.

🎯 What this 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.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
locationsarrayno[{"lat": 51.5074, "lng": -0.1278}]1-5 points; each becomes one lookup in the API's fixed ~1-mile radius.
categorystringno"all-crime"One of the 15 UK Police crime categories. all-crime returns every category.
month_fromstringno"2026-06"First month (inclusive), YYYY-MM. The API lags 1-2 months behind the calendar date.
month_tostringno"2026-06"Last month (inclusive), YYYY-MM. Must be on/after month_from; span capped at 6 months.
max_resultsintegerno500Hard cap on rows emitted. Each (point, month) pair still downloads the full month first.

Example input

{
"locations": [{ "lat": 51.5074, "lng": -0.1278 }],
"category": "all-crime",
"month_from": "2026-06",
"month_to": "2026-06",
"max_results": 500
}

📤 Output

FieldTypeNotes
categorystringCrime category, e.g. burglary.
monthstringYYYY-MM the crime was recorded.
street_namestringNearest street name reported by the API.
latitudefloatLatitude of the reported location.
longitudefloatLongitude of the reported location.
outcome_statusstring | nullOutcome category, or null if unresolved.
persistent_idstring | nullPersistent crime ID, or null when the API returns an empty string.
crime_idintegerNumeric crime ID from the API.
search_latfloatLatitude of the input point that produced this row.
search_lngfloatLongitude of the input point that produced this row.

Example output

{
"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

Pay-Per-Event — you only pay for what lands in your dataset.

EventPriceTrigger
Actor start$0.20Once per run, after input validation passes.
Result row$0.0025Per crime record pushed to the dataset.

Effective ~$2.70 per 1 000 rows. A default run (500 rows) costs about $1.45.

🚧 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.

📮 Your feedback

Found a bug, a category mismatch, or want a feature? Open an issue on the Actor's Apify Store page or reach out at apify.com/DevilScrapes — we read every message.