# UK Police API
> Open UK policing data as an API, from the official data.police.uk service (UK Home Office). Pull street-level crimes within about a mile of any coordinate for a given month — each with its category, approximate street, location and judicial outcome — query stop-and-search records (type, demographics, object of search, outcome and legislation) for the same area, browse the 44 territorial police forces with contact and engagement details, and list the standard crime categories. Covers England, Wales and Northern Ireland. Ideal for property and neighbourhood-safety apps, real-estate and relocation tools, local-news and civic-data dashboards, and crime and policing research.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/ukpolice-api/..."
```

## Pricing
- **Free** (Free) — 5,500 calls/Mo, 2 req/s
- **Starter** ($6/Mo) — 75,000 calls/Mo, 8 req/s
- **Pro** ($18/Mo) — 380,000 calls/Mo, 20 req/s
- **Mega** ($46/Mo) — 1,900,000 calls/Mo, 50 req/s

## Endpoints

### Policing

#### `GET /v1/crimes` — Street-level crimes around a point

**Parameters:**
- `lat` (query, required, string) — Latitude, e.g. 52.629729 Example: `52.629729`
- `lng` (query, required, string) — Longitude, e.g. -1.131592 Example: `-1.131592`
- `date` (query, optional, string) — Month YYYY-MM (default latest), e.g. 2024-01 Example: `2024-01`
- `category` (query, optional, string) — Crime category slug (default all-crime), e.g. burglary
- `limit` (query, optional, string) — Max crimes (1-500, default 100) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ukpolice-api/v1/crimes?lat=52.629729&lng=-1.131592&date=2024-01&limit=100"
```

#### `GET /v1/stops` — Stop-and-search around a point

**Parameters:**
- `lat` (query, required, string) — Latitude Example: `52.629729`
- `lng` (query, required, string) — Longitude Example: `-1.131592`
- `date` (query, optional, string) — Month YYYY-MM (default latest) Example: `2024-01`
- `limit` (query, optional, string) — Max records (1-500, default 100) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ukpolice-api/v1/stops?lat=52.629729&lng=-1.131592&date=2024-01&limit=100"
```

### Forces

#### `GET /v1/forces` — Police forces (list, or detail by id)

**Parameters:**
- `id` (query, optional, string) — Force id for detail, e.g. leicestershire

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ukpolice-api/v1/forces"
```

### Reference

#### `GET /v1/categories` — Crime categories

**Parameters:**
- `date` (query, optional, string) — Month YYYY-MM (default latest)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ukpolice-api/v1/categories"
```

### Meta

#### `GET /v1/meta` — Source & usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/ukpolice-api/v1/meta"
```


---
Marketplace page: https://www.oanor.com/api/ukpolice-api
OpenAPI spec: https://www.oanor.com/api/ukpolice-api/openapi.json
