Skip to content
Eden Engine

San Francisco Police Incident Reports, 2018 to Present (DataSF)

datasfsocrata/sf-police-incident-reports

Rows from the San Francisco Police Department incident reports dataset (2018 to present) as published by the City and County of San Francisco: incident date, time and day of week, report time and type, incident code, category, subcategory and description, resolution and police district. Returns up to 50 rows per call; narrow them with a SoQL where clause on any column, for example incident_category or police_district. Every value comes back as a string except the filed_online flag. City and County of San Francisco data (DataSF) as served by Eden Engine, not an official City product.

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 $5.

Data source

City and County of San Francisco (DataSF)

Data from the City and County of San Francisco, published on the DataSF open data portal (data.sf.gov) under the Open Data Commons Public Domain Dedication and License (PDDL 1.0), the licence each of these datasets declares in its portal metadata (read 2026-10-20). No credit is required; credit offered as a courtesy: City and County of San Francisco, DataSF. Served by Eden Engine; not an official City and County of San Francisco 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: "datasfsocrata/sf-police-incident-reports" })

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

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "datasfsocrata/sf-police-incident-reports", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "datasfsocrata/sf-police-incident-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 20, 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 incident_datetime DESC. Leave out for the portal's default order."
    },
    "where": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional SoQL filter on any column, for example incident_category = 'Larceny Theft' AND police_district = 'Richmond'. 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."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "row_id",
          "incident_datetime"
        ],
        "properties": {
          "row_id": {
            "type": "string",
            "description": "Row identifier."
          },
          "data_as_of": {
            "type": "string",
            "description": "When the source record was last changed."
          },
          "resolution": {
            "type": "string",
            "description": "Resolution, for example Open or Active."
          },
          "incident_id": {
            "type": "string",
            "description": "Incident identifier."
          },
          "filed_online": {
            "type": "boolean",
            "description": "True when the report was filed online. Absent otherwise."
          },
          "incident_code": {
            "type": "string",
            "description": "Incident code."
          },
          "incident_date": {
            "type": "string",
            "description": "Incident date."
          },
          "incident_time": {
            "type": "string",
            "description": "Incident time, HH:MM."
          },
          "incident_year": {
            "type": "string",
            "description": "Incident year."
          },
          "data_loaded_at": {
            "type": "string",
            "description": "When the row was loaded into the portal."
          },
          "incident_number": {
            "type": "string",
            "description": "Incident number."
          },
          "police_district": {
            "type": "string",
            "description": "Police district."
          },
          "report_datetime": {
            "type": "string",
            "description": "When the report was filed."
          },
          "report_type_code": {
            "type": "string",
            "description": "Report type code."
          },
          "incident_category": {
            "type": "string",
            "description": "Incident category, for example Larceny Theft."
          },
          "incident_datetime": {
            "type": "string",
            "description": "When the incident happened, local time."
          },
          "incident_day_of_week": {
            "type": "string",
            "description": "Day of the week."
          },
          "incident_description": {
            "type": "string",
            "description": "Incident description."
          },
          "incident_subcategory": {
            "type": "string",
            "description": "Incident subcategory."
          },
          "report_type_description": {
            "type": "string",
            "description": "Report type in words."
          }
        },
        "description": "One police incident report. Columns beyond those listed, including computed region columns, pass through unchanged.",
        "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
}