UK Police Street-Level Crime Data Scraper avatar

UK Police Street-Level Crime Data Scraper

Pricing

from $2.50 / 1,000 result row emitteds

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

from $2.50 / 1,000 result row emitteds

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 days 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.