Skip to content
Eden Engine

UK Street-Level Crimes (Police Recorded Crime Within a Mile of a Coordinate)

ukpolice/street-crimes

Every crime and anti-social-behaviour incident the police recorded within a one mile radius of a latitude and longitude in England, Wales and Northern Ireland, for one month, from data.police.uk. Choose a category, or all-crime for everything: a city centre can return thousands of records, so prefer a specific category there. Each record has the category, an approximate street-level location (police anonymise it to a nearby street, not the exact spot), the month, and the outcome status when one is recorded. Leave the month out for the latest published month; data lags by about two months and only the most recent 36 months are held. Scotland is covered only by British Transport Police, so counts there are far too low. Contains public sector information licensed under the Open Government Licence v3.0.

activeper callv1

Price

$0.00273 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

data.police.uk (UK police forces)

Contains public sector information licensed under the Open Government Licence v3.0. Data from data.police.uk, published by UK police forces; served by Omnial, not endorsed by the police forces or the Home Office.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "ukpolice/street-crimes" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "ukpolice/street-crimes" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "ukpolice/street-crimes", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "ukpolice/street-crimes", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.00273
Updated
Oct 18, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "latitude",
    "longitude",
    "category"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$",
      "description": "Month to return, YYYY-MM. Omit for the latest published month. Only about the most recent 36 months exist, and the newest month is usually two months behind today; a month outside that window is refused as a validation error."
    },
    "category": {
      "enum": [
        "all-crime",
        "anti-social-behaviour",
        "bicycle-theft",
        "burglary",
        "criminal-damage-arson",
        "drugs",
        "other-theft",
        "possession-of-weapons",
        "public-order",
        "robbery",
        "shoplifting",
        "theft-from-the-person",
        "vehicle-crime",
        "violent-crime",
        "other-crime"
      ],
      "type": "string",
      "description": "Which crimes to return. all-crime is every category together and returns the most records; the rest narrow to one category (violent-crime is violence and sexual offences)."
    },
    "latitude": {
      "type": "number",
      "maximum": 55.9,
      "minimum": 49.8,
      "description": "Latitude in decimal degrees, north positive, within England, Wales or Northern Ireland (central London is 51.5)."
    },
    "longitude": {
      "type": "number",
      "maximum": 1.9,
      "minimum": -8.3,
      "description": "Longitude in decimal degrees, west negative, within England, Wales or Northern Ireland (central London is -0.12)."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "category",
          "month",
          "location"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "The police's numeric record id."
          },
          "month": {
            "type": "string",
            "description": "The month the crime was recorded in, YYYY-MM."
          },
          "context": {
            "type": "string",
            "description": "Free-text context; usually empty."
          },
          "category": {
            "type": "string",
            "description": "Crime category, as in the category input."
          },
          "location": {
            "type": "object",
            "description": "Approximate location: latitude and longitude as decimal strings, and the nearest street as {id, name}."
          },
          "location_type": {
            "type": "string",
            "description": "The kind of police body that recorded it, for example Force."
          },
          "persistent_id": {
            "type": "string",
            "description": "64-character id that stays the same as the case progresses, for ukpolice/crime-outcomes. An empty string on anti-social-behaviour records."
          },
          "outcome_status": {
            "type": [
              "object",
              "null"
            ],
            "description": "The latest outcome as {category, date}, or null when none is recorded yet."
          },
          "location_subtype": {
            "type": "string",
            "description": "A finer location type where the police give one; often empty."
          }
        },
        "additionalProperties": true
      },
      "description": "The recorded crimes for the month. Empty when none were recorded in the radius, and also for a point the dataset does not cover."
    }
  }
}