LAPD Crime Incidents 2020 to 2024 (City of Los Angeles)
lacityopendata/crime-incidents-2020-2024
Rows from the LAPD crime dataset for 2020 to 2024 (the legacy records system, frozen at its March 2024 switch to NIBRS reporting): each incident with division of records number, report and occurrence dates, time, LAPD area and reporting district, crime code and description, victim age, sex and descent, premise, weapon, case status, block-rounded address and coordinates. No names. Returns up to 50 rows per call; narrow them with a SoQL where clause and sort with order. Every value comes back as a string. City of Los Angeles data as served by Eden Engine, not an official City or LAPD product.
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 Los Angeles Open Data (data.lacity.org)
Data from the City of Los Angeles open data portal (data.lacity.org), published by the dataset's owning department under the licence the dataset declares (Creative Commons CC0 1.0 Universal, public domain dedication). No attribution is required; we credit the City of Los Angeles as a courtesy. Served by Eden Engine; not an official City of Los Angeles 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.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "lacityopendata/crime-incidents-2020-2024" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "lacityopendata/crime-incidents-2020-2024" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "lacityopendata/crime-incidents-2020-2024", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "lacityopendata/crime-incidents-2020-2024", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot 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.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 21, 2026
Input and output schemas
Input schema
{
"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 date_occ DESC. Leave out for the portal's default order."
},
"where": {
"type": "string",
"maxLength": 500,
"description": "Optional SoQL filter on any column, for example area_name = 'Hollywood' AND crm_cd_desc like '%STOLEN%'. 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
{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"dr_no",
"crm_cd_desc"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude as text."
},
"lon": {
"type": "string",
"description": "Longitude as text."
},
"area": {
"type": "string",
"description": "LAPD geographic area number."
},
"dr_no": {
"type": "string",
"description": "LAPD division of records number."
},
"crm_cd": {
"type": "string",
"description": "Crime code."
},
"status": {
"type": "string",
"description": "Case status code."
},
"mocodes": {
"type": "string",
"description": "Modus operandi codes, space separated."
},
"date_occ": {
"type": "string",
"description": "Date occurred, ISO 8601 without offset."
},
"location": {
"type": "string",
"description": "Street address rounded to the block, with padded spaces."
},
"part_1_2": {
"type": "string",
"description": "FBI Part 1 or Part 2 offence class."
},
"time_occ": {
"type": "string",
"description": "Time occurred, 24-hour HHMM text."
},
"vict_age": {
"type": "string",
"description": "Victim age in years, as text."
},
"vict_sex": {
"type": "string",
"description": "Victim sex code."
},
"area_name": {
"type": "string",
"description": "LAPD geographic area name."
},
"date_rptd": {
"type": "string",
"description": "Date reported, ISO 8601 without offset."
},
"premis_cd": {
"type": "string",
"description": "Premise code."
},
"crm_cd_desc": {
"type": "string",
"description": "Crime description."
},
"premis_desc": {
"type": "string",
"description": "Premise description."
},
"rpt_dist_no": {
"type": "string",
"description": "Reporting district number."
},
"status_desc": {
"type": "string",
"description": "Case status description."
},
"weapon_desc": {
"type": "string",
"description": "Weapon description."
},
"cross_street": {
"type": "string",
"description": "Cross street, when recorded."
},
"vict_descent": {
"type": "string",
"description": "Victim descent code."
},
"weapon_used_cd": {
"type": "string",
"description": "Weapon code, when one was used."
}
},
"description": "One LAPD incident record. Columns beyond those listed pass through unchanged; a column with no value is absent.",
"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
}