police.uk API: Get neighbourhood policing team by postcode
Finds the neighbourhood policing team for a UK postcode (England, Wales, Northern Ireland) with its force, contacts, officers, priorities and upcoming events.
Unofficial. Not affiliated with or endorsed by police.uk.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Postcode, required
postcode UK postcode to look up, for example M1 1AE.
M1 1AE
Input as JSON
{ "postcode": "M1 1AE"}Output
{ "team_members": [ { "name": "Kam Hare", "rank_or_role": "Inspector" }, { "name": "Sharon Bryant", "rank_or_role": "Sergeant" }, { "name": "Andrew Sparkes", "rank_or_role": "Sergeant" } ], "contact_details": { "email": "citycentre@gmp.police.uk", "phone": "0161 856 3221", "website": "https://www.gmp.police.uk" , "social_media": [] }, "upcoming_events": [ { "date": "2026-10-05", "title": "PACT Meeting", "address": "Greater Manchester Police Museum 57A Newton Street Northern Quarter Manchester M1 1ET", "description": "The Piccadilly Ward PACT Meeting covers communities, businesses and stakeholders across the Northern Quarter, Ancoats, Piccadilly Gardens, Piccadilly Trading Estate, The Village (Canal Street area) and surrounding parts of Piccadilly Ward." }, { "date": "2026-12-14", "title": "PACT Meeting", "address": "Greater Manchester Police Museum 57A Newton Street Northern Quarter Manchester M1 1ET", "description": "The Piccadilly Ward PACT Meeting covers communities, businesses and stakeholders across the Northern Quarter, Ancoats, Piccadilly Gardens, Piccadilly Trading Estate, The Village (Canal Street area) and surrounding parts of Piccadilly Ward." }, { "date": "2027-02-08", "title": "PACT Meeting", "address": "Greater Manchester Police Museum 57A Newton Street Northern Quarter Manchester M1 1ET", "description": "The Piccadilly Ward PACT Meeting covers communities, businesses and stakeholders across the Northern Quarter, Ancoats, Piccadilly Gardens, Piccadilly Trading Estate, The Village (Canal Street area) and surrounding parts of Piccadilly Ward." } ], "police_force_name": "Greater Manchester Police", "current_priorities": [ { "issue": "Priority 1: Anti-Social Behaviour Entrenched Rough Sleeping, Homelessness and Begging – Manchester City Centre", "action": "Priority 1: Anti-Social Behaviour Entrenched Rough Sleeping, Homelessness and Begging – Manchester City Centre. The GMP City Centre Street Engagement Neighbourhood Policing Team, working in partnership with ASBAT, Manchester City Council, and the Manchester Homelessness Partnership, is committed to …", "issue_date": "2026-07-23", "action_date": "2026-07-23" }, { "issue": "Priority 2: Anti-Social Behaviour & Road Safety Illegal E‑Bikes and E‑Scooters – Manchester City Centre", "action": "Priority 2: Anti-Social Behaviour & Road Safety Illegal E‑Bikes and E‑Scooters – Manchester City Centre The GMP City Centre Neighbourhood Policing Team, supported by the Roads Policing Unit (RPU) and Force Intelligence Bureau, is committed to tackling anti-social behaviour, road safety risks, and cr…", "issue_date": "2026-07-23", "action_date": "2026-07-23" }, { "issue": "Priority 3: Drug Use and Dealing", "action": "Priority 3: Drug Use and Dealing The GMP City Centre Neighbourhood Policing Team is committed to tackling drug use and drug dealing within Manchester City Centre. This priority responds directly to significant concerns raised by residents, workers, and visitors at the Partners and Communities Togeth…", "issue_date": "2026-07-23", "action_date": "2026-07-23" } ], "neighbourhood_link": "https://www.police.uk/pu/your-area/greater-manchester-police/northern-quarter/" , "neighbourhood_name": "Northern Quarter", "police_force_website": "http://www.gmp.police.uk" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"police.uk/get_neighbourhood_team","input":{"postcode":"M1 1AE"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "police.uk/get_neighbourhood_team" , "input": { "postcode": "M1 1AE" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "police.uk/get_neighbourhood_team" , "input": { "postcode": "M1 1AE" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run police.uk/get_neighbourhood_team# with {"postcode":"M1 1AE"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "postcode" ], "properties": { "postcode": { "type": "string", "minLength": 1, "description": "UK postcode to look up, for example M1 1AE." } }}Output schema
{ "type": "object", "required": [ "police_force_name", "police_force_website", "neighbourhood_name", "contact_details", "team_members", "current_priorities", "upcoming_events", "neighbourhood_link" ], "properties": { "team_members": { "type": "array", "items": { "type": "object", "required": [ "name", "rank_or_role" ], "properties": { "name": { "type": "string" }, "rank_or_role": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "contact_details": { "type": "object", "required": [ "email", "phone", "website", "social_media" ], "properties": { "email": { "type": [ "string", "null" ] }, "phone": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "social_media": { "type": "array", "items": { "type": "object", "required": [ "platform", "url" ], "properties": { "url": { "type": "string" }, "platform": { "type": "string" } }, "additionalProperties": false } } }, "additionalProperties": false }, "upcoming_events": { "type": "array", "items": { "type": "object", "required": [ "title", "date", "address", "description" ], "properties": { "date": { "type": "string", "format": "date" }, "title": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "police_force_name": { "type": "string" }, "current_priorities": { "type": "array", "items": { "type": "object", "required": [ "issue", "action", "issue_date", "action_date" ], "properties": { "issue": { "type": [ "string", "null" ] }, "action": { "type": [ "string", "null" ] }, "issue_date": { "type": [ "string", "null" ], "format": "date" }, "action_date": { "type": [ "string", "null" ], "format": "date" } }, "additionalProperties": false } }, "neighbourhood_link": { "type": "string" }, "neighbourhood_name": { "type": "string" }, "police_force_website": { "type": [ "string", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
police.uk/get_neighbourhood_team- Returns
- force name and website, neighbourhood name, contact details, team members, current priorities, upcoming events, Police.uk neighbourhood link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method police.uk/get_neighbourhood_team with the inputs above.
Ask your agent
- Who is the local policing team for postcode LS6 3AB, and how can I contact them?
- I just moved to CF10 1EP in Cardiff. Can you find out which police force covers my area and what their current priorities are?
- Check police.uk for the neighbourhood officers assigned to BT9 6AD and any upcoming community meetings they're holding
- List the named officers on the neighbourhood team for SW1A 2AA, along with their force's website
- Using police.uk, get the neighbourhood page link and contact email for the team covering B15 2TT
See more
Gets crimes reported within one mile of a UK postcode or place in England, Wales or Northern Ireland for a month (latest published by default), with category totals, up to 100 sampled incidents, the previous month's total and the local police.uk crime-map link.
data.police.uk/get_crimes_near_postcodeLooks up a UK postcode on Postcodes.io, including its location, administrative areas and whether it is still in use. Retired postcodes return location and retirement year only.
postcodes.io/get_postcodeLists UK postcodes nearest to a postcode or named place, with distance, ward, council and coordinates. For places sharing a name, a city or town is preferred.
postcodes.io/list_nearby_postcodesFind nearby NHS service listings from a UK postcode or town, nearest first. NHS service search covers England; urgent_care returns A&E listings. Hours, patient availability and websites are null when not shown.
nhs.uk/search_nearby_servicesFinds postal codes, place names and coordinates for a town and state or region in a country covered by Zippopotam.us.
zippopotam.us/search_postal_codesLooks up the places, regions and coordinates for a postal code in a supported country on Zippopotam.us.
zippopotam.us/get_postal_codeLooks up an Indian six-digit PIN code and lists its post offices with branch type, delivery status and postal area.
postalpincode.in/get_pin_codeLooks up a UK company on Companies House by name, company number or Companies House link and returns its public registration details; a name prefers an active exact match.
company-information.service.gov.uk/get_company_profile