Skip to content
Eden Engine

Seattle Police Offense Reports (City of Seattle)

seattleopendata/police-offense-reports

Offence reports of the Seattle Police Department (SPD) from 2008 to the present, classified under NIBRS: report number, report and offence time, offence category and sub-category, NIBRS code and description, whether it is a crime against a person, property or society, and the beat, precinct, sector and neighborhood. Block addresses and coordinates are redacted by the City on most rows. Returns up to 50 rows per call; narrow them with a SoQL where clause.

activeper callv1

Price

$0.0026 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 $0.50.

Data source

City of Seattle (data.seattle.gov)

City of Seattle open data portal (data.seattle.gov). The datasets are published by the City of Seattle under the Public Domain licence the portal declares for each. Served by Eden Engine; not an official City of Seattle product.

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: "seattleopendata/police-offense-reports" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "seattleopendata/police-offense-reports" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "seattleopendata/police-offense-reports", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "seattleopendata/police-offense-reports", 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.0026
Updated
Oct 21, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "limit"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "How many rows to return, 1 to 50. Required."
    },
    "order": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional SoQL ordering, for example report_date_time DESC. Leave out for the portal's default order."
    },
    "where": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional SoQL filter on any column, for example neighborhood = 'DOWNTOWN COMMERCIAL' AND offense_category = 'PROPERTY CRIME'. Column names are those of the returned rows. Leave out for no filter."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Rows to skip, for reading further pages in the order given by `order`. Leave out to start at the first row."
    }
  },
  "description": "Which rows to read.",
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "report_number"
        ],
        "properties": {
          "beat": {
            "type": "string",
            "description": "SPD beat."
          },
          "sector": {
            "type": "string",
            "description": "SPD sector."
          },
          "latitude": {
            "type": "string",
            "description": "Latitude, REDACTED on most rows."
          },
          "precinct": {
            "type": "string",
            "description": "SPD precinct."
          },
          "longitude": {
            "type": "string",
            "description": "Longitude, REDACTED on most rows."
          },
          "offense_id": {
            "type": "string",
            "description": "Unique offence id."
          },
          "neighborhood": {
            "type": "string",
            "description": "SPD neighborhood name."
          },
          "offense_date": {
            "type": "string",
            "description": "When the offence took place, ISO local time."
          },
          "block_address": {
            "type": "string",
            "description": "Block address, REDACTED on most rows."
          },
          "report_number": {
            "type": "string",
            "description": "SPD report number."
          },
          "reporting_area": {
            "type": "string",
            "description": "Reporting area, REDACTED on most rows."
          },
          "nibrs_group_a_b": {
            "type": "string",
            "description": "NIBRS group, A or B."
          },
          "offense_category": {
            "type": "string",
            "description": "Offence category, for example PROPERTY CRIME (the others are ALL OTHER and VIOLENT CRIME)."
          },
          "report_date_time": {
            "type": "string",
            "description": "When the report was filed, ISO local time."
          },
          "nibrs_offense_code": {
            "type": "string",
            "description": "NIBRS offence code."
          },
          "shooting_type_group": {
            "type": "string",
            "description": "Shooting type, or - when none."
          },
          "offense_sub_category": {
            "type": "string",
            "description": "Offence sub-category, for example BURGLARY-RESIDENTIAL."
          },
          "nibrs_crime_against_category": {
            "type": "string",
            "description": "PERSON, PROPERTY, SOCIETY or NOT_A_CRIME."
          },
          "nibrs_offense_code_description": {
            "type": "string",
            "description": "NIBRS offence description."
          }
        },
        "description": "One row.",
        "additionalProperties": true
      },
      "description": "One entry per row; empty when the filter matches nothing."
    }
  },
  "description": "The rows the portal returned, in the portal's order.",
  "additionalProperties": false
}