BYTETOOLS

UK Police Data API

Free UK Police API with no key: street-level crime data, police forces, neighbourhood teams and stop-and-search records by location and month. Tested example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the UK Police Data API?

The UK Police Data API is a free, key-free API providing street-level crime records, police force and neighbourhood information, and stop-and-search data across England, Wales and Northern Ireland.

This is open government data at unusually fine granularity: crimes are published monthly at street level with category, approximate location and outcome status, going back over a decade.

One thing to understand before building on it: locations are deliberately anonymised to a nearby 'snap point' rather than an exact address, to protect victim privacy. Points therefore cluster on road centroids, which is expected behaviour rather than a data quality problem.

Quick facts

Base URL
https://data.police.uk/api
Authentication
No API key required.
Rate limit
15 requests per second, with larger queries throttled.
Pricing
Free under the Open Government Licence.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the UK Police Data API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. List all UK police forces

GET https://data.police.uk/api/forces

curl
curl 'https://data.police.uk/api/forces'
JavaScript (fetch)
const res = await fetch("https://data.police.uk/api/forces");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://data.police.uk/api/forces", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
[
  {
    "id": "avon-and-somerset",
    "name": "Avon and Somerset Constabulary"
  },
  {
    "id": "bedfordshire",
    "name": "Bedfordshire Police"
  },
  {
    "id": "cambridgeshire",
    "name": "Cambridgeshire Constabulary"
  },
  {
    "id": "cheshire",
    "name": "Cheshire Constabulary"
  },
  {
    "id": "city-of-london",
    "name": "City of London Police"
  },
  {
    "id": "cleveland",
    "name": "Cleveland Police"
  },
  {
    "id": "cumbria",
    "name": "Cumbria Constabulary"
  },
  {
    "id": "derbyshire",
    "name": "Derbyshire Constabulary"
  },
  {
    "id": "devon-and-cornwall",
    "name": "Devon & Cornwall Police"
  },
  {
    "id": "dorset",
    "name": "Dorset Police"
  },
  {
    "id": "durham",
    "name": "Durham Constabulary"
  },
  {
    "id": "essex",
    "name": "Essex Police"
  },
  {
    "id": "gloucestershire",
    "name": "Gloucestershire Constabulary"
  },
  {
    "id": "greater-manchester",
    "name": "Greater Manchester Police"
  },
  {
    "id": "gwent",
    "name": "Gwent Police"
  },
  {
    "id": "hampshire",
    "name": "Hampshire Constabulary"
  },
  {
    "id": "dyfed-powys",
    "name": "Dyfed-Powys Police"
  },
  {
    "id": "hertfordshire",
    "name": "Hertfordshire Constabulary"
  },
  {
    "id": "humberside",
    "name": "Humberside Police"
  },
  {
    "id": "kent",
    "name": "Kent Police"
  },
  {
    "id": "lancashire",
    "name": "Lancashire Constabulary"
  },
  {
    "id": "leicestershire",
    "name": "Leicestershire Police"
  },
  {
    "id": "lincolnshire",
    "name": "Lincolnshire Police"
  },
  {
    "id

Parameters

ParameterTypeRequiredDescription
lat / lngfloatOptionalCoordinates for street-level crime queries. 51.5074
datestringOptionalMonth as YYYY-MM. Defaults to the latest available. 2026-01
polystringOptionalLat/lng pairs defining a custom area to query. 52.2,0.1:52.3,0.2
<force>pathOptionalForce id from the forces list. avon-and-somerset

Response fields

idstring
Force identifier used in other endpoints.
namestring
Full force name.
categorystring
On crime endpoints, the crime category such as burglary or violent-crime.
locationobject
Anonymised latitude/longitude plus the nearest street.
outcome_statusobject
Current case outcome and the date it was recorded, or null.

What you can build with the UK Police Data API

  • Map crime rates by neighbourhood for a property or safety site
  • Analyse crime trends over time in a specific area
  • Show local policing team contact details by location
  • Support research and journalism on stop-and-search patterns

Common errors and how to fix them

404

No data for that force, date or area.

Fix: Data lags by roughly two months; check /crimes-street-dates for available months.

503

Query too large.

Fix: Reduce the polygon area or the date range — large custom areas are rejected rather than truncated.

Points all on road centres

Locations are anonymised by design.

Fix: Do not present them as exact addresses; aggregate to area level for display.

UK Police Data API — frequently asked questions

Is the UK Police API free?

Yes, no API key is needed. The data is published under the Open Government Licence and requires attribution.

How accurate are the crime locations?

They are deliberately imprecise. Each crime is snapped to a nearby anonymous point to protect victim privacy, so points cluster on street centroids and must not be treated as exact addresses.

How current is the data?

It typically lags by about two months. Query /crimes-street-dates to see exactly which months are available before requesting data.

Does it cover the whole UK?

England, Wales and Northern Ireland. Police Scotland publishes separately and is not included in this API.

Tools that pair with this API

UK Police Data is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.