Free use without a key
The two district endpoints answer without a key, for people, scripts, and AI assistants. Each IP address (each /64 network for IPv6) may make 5 calls a minute and 100 a day, within a cap of 60 calls a minute shared by everyone calling without a key. AI platforms call for many users from shared addresses, so calls from Anthropic's, Google's and OpenAI's published networks share one allowance for each platform instead: 30 calls a minute and 5,000 a day, inside the same shared cap. Over a limit, the answer is 429 with a Retry-After header giving the seconds to wait. The REST postcode summary endpoint needs a key. The MCP server's postcode_summary tool answers a postcode without one, with the figures the site's free postcode check shows.
Keys
District figures stay free for everyone within the free limits. A key from an API plan opens the REST postcode summary, and adds the category breakdown on MCP. It replaces the per-minute limit, the daily limit, and the shared cap with your plan's monthly quota. Every successful call made with a key counts against that quota, district calls included, so send the key only on calls that need it. Send it in the Authorization header on every request. To get a key, choose a plan. We show the key once when we create it and store only its hash, so keep it safe. A key that is unknown or disabled gets 401; it is never treated as a call without a key.
Authorization: Bearer cmuk_your_key_here
Plans and prices
Free, no key
£0
District figures, and the site's free postcode check through the MCP server, without a key: 5 requests a minute and 100 a day for each IP address (each /64 network for IPv6), while a cap shared by all free callers allows. Calls from Anthropic's, Google's and OpenAI's published networks share one allowance for each platform instead: 30 requests a minute and 5,000 a day. The postcode summary endpoint needs a key.
How free use worksAPI Starter
£29 a month
Postcode summaries and district figures with one key: 2,000 requests a month, with no per-minute or daily limit.
Buy API StarterAPI Growth
£99 a month
Postcode summaries and district figures with one key: 20,000 requests a month, with no per-minute or daily limit.
Buy API GrowthCustom volumes
Ask us
Need more requests than these plans include? Tell us roughly how many a month, and we'll quote.
Send an enquiry- Plans are monthly. Cancel any time, and we won't charge you again.
- You pay on Stripe's payment page. We email your API key within one working day.
- The quota counts successful responses in each calendar month (UTC). Errors don't count.
- Over the quota, the API answers
429until the next month starts. We never charge for extra requests.
The terms cover billing, cancelling, and the quota in full.
Quotas and caching
Each key has a monthly request quota. Only successful (200) responses count against it; errors do not. The count resets at the start of each calendar month (UTC). Successful responses carry Cache-Control: private, max-age=300, and errors carry no-store. Figures change when data is imported, corrected, or rebuilt, including revisions to months already published.
Linking and citing
Every answer, including every error, carries these fields beside the figures:
page_url: the CrimeMapsUK page for the area asked about, or the district finder when the area has no page. Link it wherever you show the figures.citation: a plain-text citation naming the area, the months shown, the source, the date retrieved, and the page's address.free_report_url: sent when the call included a full postcode, unless the postcode is known to be outside England and Wales. It opens the free CrimeMapsUK result page for the 0.5 km around that postcode, with its published records by category and month, a map, and the free 12-month report.attributionandlicence_url: the Open Government Licence credit to show with the figures.
page_url and free_report_url carry utm_source=api, so we can count visits that come from API answers. The citation gives the page's address without it, and the pages' canonical links leave it out.
Postcode district
GET /api/v1/districts/<district>/
Figures for one postcode district, such as E8, over the district's last 12 published months: the 12 latest months that have records for the district. window gives the first and last of those months. These are the same months and figures as the public district page, so the window can end before the latest month published nationally. Categories are sorted by total. The covering force in force_comparison is the force that published the most records inside the bounding box of the district's postcode centroids in the latest month. Near force borders this is an approximation. force_comparison is null when no force can be found.
curl https://crimemapsuk.com/api/v1/districts/e8/
{
"district": "E8",
"window": {"from": "2025-08", "to": "2026-07", "rule": "The district's last 12 published months, as on its district page."},
"total": 666,
"monthly": [
{"month": "2025-08", "total": 50},
{"month": "2025-09", "total": 51},
{"month": "2025-10", "total": 52},
{"month": "2025-11", "total": 53},
{"month": "2025-12", "total": 54},
{"month": "2026-01", "total": 55},
{"month": "2026-02", "total": 56},
{"month": "2026-03", "total": 57},
{"month": "2026-04", "total": 58},
{"month": "2026-05", "total": 59},
{"month": "2026-06", "total": 60},
{"month": "2026-07", "total": 61}
],
"categories": [
{"category": "violent-crime", "label": "Violence and sexual offences", "total": 546, "share_pct": 82.0},
{"category": "burglary", "label": "Burglary", "total": 120, "share_pct": 18.0}
],
"force_comparison": {
"force": "metropolitan",
"force_total": 12000,
"district_share_of_force_pct": 5.5,
"category_share_pct": [
{"category": "violent-crime", "district": 82.0, "force": 30.0},
{"category": "burglary", "district": 18.0, "force": 5.0}
]
},
"page_url": "https://www.crimemapsuk.com/crime/districts/e8/?utm_source=api",
"citation": "CrimeMapsUK. E8 postcode district: published street-crime records, August 2025 to July 2026. Source: data.police.uk, Open Government Licence v3.0. Retrieved 29 October 2026. Police locations are approximate; records are assigned to the area by nearest postcode. https://www.crimemapsuk.com/crime/districts/e8/",
"attribution": "Contains public sector information from data.police.uk, licensed under the Open Government Licence v3.0. Compiled by CrimeMapsUK.",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
}
District for a postcode
GET /api/v1/postcodes/district/?postcode=<postcode>
The same figures as the district endpoint, for the postcode district of a postcode: E8 for E8 1AA. The district is read from the postcode itself, so no geocoder is called, and the postcode is not stored. The figures cover the whole district, never the exact postcode, and scope says so in words. A postcode district on its own also works.
curl "https://crimemapsuk.com/api/v1/postcodes/district/?postcode=E8%201AA"
{
"query": "E8 1AA",
"scope": "These figures cover the whole E8 postcode district, not the exact postcode. free_report_url opens the free result page for the 0.5 km around E8 1AA.",
"district": "E8",
"window": {"from": "2025-08", "to": "2026-07", "rule": "The district's last 12 published months, as on its district page."},
"total": 666,
"monthly": [
{"month": "2025-08", "total": 50},
{"month": "2025-09", "total": 51},
{"month": "2025-10", "total": 52},
{"month": "2025-11", "total": 53},
{"month": "2025-12", "total": 54},
{"month": "2026-01", "total": 55},
{"month": "2026-02", "total": 56},
{"month": "2026-03", "total": 57},
{"month": "2026-04", "total": 58},
{"month": "2026-05", "total": 59},
{"month": "2026-06", "total": 60},
{"month": "2026-07", "total": 61}
],
"categories": [
{"category": "violent-crime", "label": "Violence and sexual offences", "total": 546, "share_pct": 82.0},
{"category": "burglary", "label": "Burglary", "total": 120, "share_pct": 18.0}
],
"force_comparison": {
"force": "metropolitan",
"force_total": 12000,
"district_share_of_force_pct": 5.5,
"category_share_pct": [
{"category": "violent-crime", "district": 82.0, "force": 30.0},
{"category": "burglary", "district": 18.0, "force": 5.0}
]
},
"page_url": "https://www.crimemapsuk.com/crime/districts/e8/?utm_source=api",
"citation": "CrimeMapsUK. E8 postcode district: published street-crime records, August 2025 to July 2026. Source: data.police.uk, Open Government Licence v3.0. Retrieved 29 October 2026. Police locations are approximate; records are assigned to the area by nearest postcode. https://www.crimemapsuk.com/crime/districts/e8/",
"free_report_url": "https://www.crimemapsuk.com/crime/postcodes/?postcode=E8+1AA&utm_source=api",
"attribution": "Contains public sector information from data.police.uk, licensed under the Open Government Licence v3.0. Compiled by CrimeMapsUK.",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
}
Postcode summary (key required)
GET /api/v1/postcodes/summary/?postcode=<postcode>
Published counts by category for the fixed 0.5 km circle around a postcode. window is the 12-month period searched: the 12 months up to the latest month published on data.police.uk, whether or not the circle has records in its first or last month. It is null to null when no publication is loaded. coverage is ok; gap or no_data when publication around the postcode is paused or missing, so the counts are incomplete; or outside for a postcode outside England and Wales.
curl -H "Authorization: Bearer $CMUK_KEY" "https://crimemapsuk.com/api/v1/postcodes/summary/?postcode=E8%201AA"
{
"postcode": "E8 1AA",
"radius_km": 0.5,
"window": {"from": "2025-09", "to": "2026-08", "rule": "The 12 months up to the latest month published on data.police.uk."},
"coverage": "ok",
"total": 4,
"categories": [
{"category": "violent-crime", "label": "Violence and sexual offences", "total": 2},
{"category": "burglary", "label": "Burglary", "total": 1},
{"category": "shoplifting", "label": "Shoplifting", "total": 1}
],
"page_url": "https://www.crimemapsuk.com/crime/districts/e8/?utm_source=api",
"citation": "CrimeMapsUK. 0.5 km around the E8 1AA postcode: published street-crime records, September 2025 to August 2026. Source: data.police.uk, Open Government Licence v3.0. Retrieved 29 October 2026. Police locations are approximate. Page for the E8 postcode district: https://www.crimemapsuk.com/crime/districts/e8/",
"free_report_url": "https://www.crimemapsuk.com/crime/postcodes/?postcode=E8+1AA&utm_source=api",
"attribution": "Contains public sector information from data.police.uk, licensed under the Open Government Licence v3.0. Compiled by CrimeMapsUK.",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
}
Errors
Errors are JSON with an error message and the same link, citation, and attribution fields.
400The postcode is not a valid UK postcode.401The postcode summary was called without a key, or the key sent is unknown or disabled.404No published data for that district, or the postcode could not be matched.405The request was not a GET.429A free limit is spent (waitRetry-Afterseconds), or the key's monthly quota is used up.
{
"error": "This needs an API key, sent as 'Authorization: Bearer <key>'. District figures need no key: GET /api/v1/postcodes/district/?postcode=<postcode>.",
"page_url": "https://www.crimemapsuk.com/crime/districts/e8/?utm_source=api",
"citation": "CrimeMapsUK. E8 postcode district: published street-crime records. Source: data.police.uk, Open Government Licence v3.0. Retrieved 29 October 2026. Police locations are approximate; records are assigned to the area by nearest postcode. https://www.crimemapsuk.com/crime/districts/e8/",
"free_report_url": "https://www.crimemapsuk.com/crime/postcodes/?postcode=E8+1AA&utm_source=api",
"attribution": "Contains public sector information from data.police.uk, licensed under the Open Government Licence v3.0. Compiled by CrimeMapsUK.",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
}
MCP server for AI assistants
AI assistants can read the same figures as tools through our read-only MCP server at https://crimemapsuk.com/mcp (Streamable HTTP, no sign-in). It has four tools:
area_summary: the district figures for a postcode or postcode district, as the district endpoints give them. Free.area_rankings: up to 20 postcode districts with the highest or lowest published rate per 1,000 residents, with the counts behind each rate. Free.methodology: how the figures are built and what they do not show. Free.postcode_summary: the published records in the 0.5 km around a postcode, as the free postcode check on the site gives them: the total, the months, the coverage, and the largest category. Free. With a key, it adds every category's count, as the postcode summary endpoint does. The free answer comes from a snapshot up to six hours old, and a keyed answer from one up to 15 minutes old, so the two can differ for a short time after new data is published.
The free tools share the free API's limits: a call to either counts against the same allowance. Each result carries page_url, citation, and the attribution. page_url and free_report_url carry utm_source=mcp. The server asks the assistant to credit CrimeMapsUK and link the page, and describes free_report_url as the free result page for the 0.5 km around the postcode. It never asks the assistant to offer or recommend a report.
The server speaks Streamable HTTP at that URL and answers POST only. We have tested it with the official MCP Python SDK client and the MCP Inspector command-line client:
npx @modelcontextprotocol/inspector --cli https://crimemapsuk.com/mcp --transport http --method tools/list
For every category's count from postcode_summary, send your API key as an Authorization: Bearer header with each request. The key then counts against your monthly quota, as an API call does.
Changes
- 30 October 2026:
labelnow carries data.police.uk's own category names, such as "Violence and sexual offences" (it was "Violent Crime").categoryis unchanged. Match oncategoryand treatlabelas display text.
Licence and attribution
The data is published by the Home Office on data.police.uk under the Open Government Licence v3.0. Show the attribution text wherever you display the figures. Police locations are approximate, and the counts are published records, not all crime.