# SpotCrime Scraper - US Crime Map Data (`crawlerbros/spotcrime-scraper`) Actor

Scrape SpotCrime's crowdsourced US crime map. Search recent crime incidents by city/state or GPS coordinates, browse covered cities, or pull area crime stats. Get incident type, date, address, coordinates. No login, no cookies, no API key required.

- **URL**: https://apify.com/crawlerbros/spotcrime-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Agents, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SpotCrime Scraper - US Crime Map Data

Scrape **SpotCrime** — a crowdsourced, aggregated US crime map that pulls incident reports from local police agencies and news sources. Search recent crime incidents by city & state or by GPS coordinates and radius, browse the list of cities SpotCrime covers in any state, or pull aggregate crime statistics (totals, breakdown by type, shooting counts) for a city. No login, no cookies, no API key required.

### What this actor does

- **4 modes:** crime incidents by city, crime incidents by GPS coordinates, browse covered cities in a state, and area crime statistics
- **All 50 US states + DC, Puerto Rico, and the US Virgin Islands** available as a one-click dropdown
- **9 incident types** — Arrest, Arson, Assault, Burglary, Other, Robbery, Shooting, Theft, Vandalism — filterable, multi-select
- **Date range filtering** on the incidents SpotCrime currently has published
- **Sort by** newest, oldest, or nearest to the search center first
- **Optional incident descriptions** — follow through to each incident's detail page for the police-report description text and a link to the original source agency
- **Automatic wide-area coverage** — set a bigger radius or `maxItems` and the actor automatically searches multiple sub-areas to gather more incidents than a single map view shows
- **Empty fields are omitted** — you only ever see fields that were actually found for a record

### Output per record

#### Crime incidents (`crimesByCity` / `crimesByCoordinates`)

- `crimeId` — SpotCrime's internal incident ID
- `type` — one of the 9 incident types
- `date` — original incident timestamp as published (e.g. `07/14/2026 11:55 PM`)
- `dateIso` — the same timestamp normalized to ISO 8601
- `address` — block-level address (SpotCrime publishes an approximate block, not exact addresses, for privacy)
- `latitude`, `longitude` — approximate incident coordinates
- `distanceMiles` — great-circle distance from the search center (city centroid or `latitude`/`longitude` input) to the incident
- `description` — police-report description text (only with `includeDescription: true`)
- `fullAddress`, `city`, `state` — full address string and parsed city/state, from the incident's detail page (only with `includeDescription: true`)
- `sourceAgencyUrl` — link to the original reporting police department or news source (only with `includeDescription: true`)
- `searchState`, `searchStateName`, `searchCity` — the city/state you searched (mode=crimesByCity)
- `searchLatitude`, `searchLongitude`, `searchRadius` — the coordinates/radius actually used for the search
- `sourceUrl` — permalink to the incident's SpotCrime detail page
- `recordType: "crime"`, `scrapedAt`

#### Covered cities (`browseCities`)

- `city`, `state`, `stateName`
- `sourceUrl` — SpotCrime page for that city
- `recordType: "city"`, `scrapedAt`

#### Area statistics (`areaStats`)

- `totalCrimes` — total incidents in SpotCrime's current reporting window for the area
- `crimeTypeBreakdown[]` — `{type, count, percentage}` for each of the 9 incident types
- `topCrimeType`, `topCrimeTypeCount` — the single most common incident type and its count
- `topViolentCrimeType`, `topViolentCrimeTypeSharePct` — most common violent-crime type and its share of violent crime
- `topPropertyCrimeType`, `topPropertyCrimeTypeSharePct` — most common property-crime type and its share of property crime
- `totalShootings`, `avgMonthlyShootings`
- `statsPeriod` — the reporting window the statistics cover (e.g. "three months")
- `city`, `state`, `stateName`
- `sourceUrl` — SpotCrime analytics page for that city
- `recordType: "areaStats"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string (select) | `crimesByCity` | `crimesByCity`, `crimesByCoordinates`, `browseCities`, or `areaStats` |
| `state` | string (select) | `TX` | US state / DC / PR / VI (mode=crimesByCity, browseCities, areaStats) |
| `city` | string | `Austin` | City name as listed on SpotCrime (mode=crimesByCity, areaStats) |
| `latitude` | number | `30.2687` | Center latitude (mode=crimesByCoordinates) |
| `longitude` | number | `-97.7452` | Center longitude (mode=crimesByCoordinates) |
| `radius` | number | `3` | Search radius around the center point, 0.1-25 (mode=crimesByCity, crimesByCoordinates) |
| `crimeTypes` | array (multi-select) | – (all) | Only return these incident types |
| `dateFrom` | string | – | Only incidents on/after this date, `YYYY-MM-DD` |
| `dateTo` | string | – | Only incidents on/before this date, `YYYY-MM-DD` |
| `sortBy` | string (select) | `newest` | `newest`, `oldest`, or `distance` (nearest to search center) first |
| `includeDescription` | boolean | `false` | Fetch each incident's description + source link (slower) |
| `maxItems` | integer | `30` | Hard cap on returned records (1-500) |
| `proxyConfiguration` | object | off | Optional Apify proxy (free AUTO datacenter group) |

#### Example: recent crime in Austin, TX

```json
{
  "mode": "crimesByCity",
  "state": "TX",
  "city": "Austin",
  "maxItems": 30
}
````

#### Example: shootings and robberies near downtown Chicago

```json
{
  "mode": "crimesByCoordinates",
  "latitude": 41.8781,
  "longitude": -87.6298,
  "radius": 5,
  "crimeTypes": ["Shooting", "Robbery"],
  "maxItems": 50
}
```

#### Example: incidents in Miami with full descriptions, last 7 days

```json
{
  "mode": "crimesByCity",
  "state": "FL",
  "city": "Miami",
  "dateFrom": "2026-07-08",
  "dateTo": "2026-07-15",
  "includeDescription": true,
  "maxItems": 40
}
```

#### Example: browse every city SpotCrime covers in California

```json
{
  "mode": "browseCities",
  "state": "CA",
  "maxItems": 500
}
```

#### Example: crime statistics for Denver, CO

```json
{
  "mode": "areaStats",
  "state": "CO",
  "city": "Denver"
}
```

### Use cases

- **Neighborhood safety research** — check recent crime activity before moving to or visiting an area
- **Real estate & relocation analysis** — layer crime statistics onto property or neighborhood evaluations
- **Local journalism & public-safety reporting** — track incident trends and recent activity in a coverage area
- **Community & neighborhood-watch monitoring** — pull the latest reports for a specific area on a schedule
- **Academic & public-policy research** — aggregate crime-type breakdowns and trend data across cities

### Limitations

- **SpotCrime's public feed only carries recent incidents** (typically the last few weeks). It is not a historical crime archive — `dateFrom`/`dateTo` values far in the past will simply return no results.
- **Addresses are block-level, not exact.** SpotCrime publishes an approximate block (e.g. "100 BLOCK OF 9TH ST") rather than a precise street address, consistent with how most police departments release incident data publicly.
- **Coverage is US-only** (50 states, DC, Puerto Rico, and the US Virgin Islands) at present.
- **A single search area returns a bounded batch of incidents per pass.** For very dense cities or a very large `maxItems`, the actor automatically searches multiple sub-areas within your `radius` to gather more incidents — but extremely broad requests (huge radius + very high `maxItems`) may still return fewer than `maxItems` if that's all SpotCrime's public feed currently has published for the area.
- **`includeDescription` is off by default** because it requires one extra request per incident. Turn it on when you need the police-report description text or the original source-agency link.

### FAQ

**What data source does this actor use?**
It reads SpotCrime's publicly available city, map, and analytics pages — the same data shown on spotcrime.com's interactive crime map. No account or API key is needed.

**Is this affiliated with SpotCrime?**
No. This is an independent, third-party actor that reads publicly accessible pages.

**Why do some incidents have no `description`?**
Descriptions are only fetched when `includeDescription: true` is set, and even then some incidents don't have a published description on their source page — those fields are simply omitted rather than shown as empty.

**How current is the data?**
Incidents typically appear within a day of being reported by the source police agency or news outlet. `areaStats` statistics summarize a recent rolling window (shown in the `statsPeriod` field, typically the last three months).

**Can I search a city and find its exact SpotCrime spelling first?**
Yes — run `mode: "browseCities"` with your target `state` to get the exact city names and URLs SpotCrime uses, then feed one into `mode: "crimesByCity"`.

**Does this actor need a proxy or login?**
No — SpotCrime's public pages are not blocked from Apify's datacenter IPs, so this actor runs entirely on Apify's free plan with no proxy and no credentials. An optional free AUTO proxy is available if you run into rate limiting on very large runs.

**What does `crimeId` uniquely identify?**
It's SpotCrime's own internal incident identifier, stable across requests — useful for deduplicating incidents across multiple runs.

# Actor input Schema

## `mode` (type: `string`):

What to fetch: recent crime incidents for a city, recent crime incidents near GPS coordinates, the list of cities SpotCrime covers in a state, or aggregate crime statistics for a city.

## `state` (type: `string`):

US state (or DC / Puerto Rico / Virgin Islands) to search in (mode=crimesByCity, browseCities, areaStats).

## `city` (type: `string`):

City name as listed on SpotCrime, e.g. 'Austin', 'Los Angeles', 'New York' (mode=crimesByCity, areaStats). Use mode=browseCities first if you're unsure of the exact spelling SpotCrime uses.

## `latitude` (type: `number`):

Center latitude in decimal degrees (mode=crimesByCoordinates), e.g. 30.2687 for downtown Austin, TX.

## `longitude` (type: `number`):

Center longitude in decimal degrees (mode=crimesByCoordinates), e.g. -97.7452 for downtown Austin, TX.

## `radius` (type: `number`):

Approximate search radius around the center point (city centroid or coordinates), in the same unit SpotCrime's own map uses internally (roughly miles). Larger values cover more ground; the actor automatically searches multiple sub-areas within this radius to reach `maxItems` (mode=crimesByCity, crimesByCoordinates).

## `crimeTypes` (type: `array`):

Only return incidents of these types. Leave empty to include every type (mode=crimesByCity, crimesByCoordinates).

## `dateFrom` (type: `string`):

Only return incidents reported on or after this date, format YYYY-MM-DD (mode=crimesByCity, crimesByCoordinates). SpotCrime's public feed only carries the most recent incidents (typically the last few weeks), so dates far in the past will return no results.

## `dateTo` (type: `string`):

Only return incidents reported on or before this date, format YYYY-MM-DD (mode=crimesByCity, crimesByCoordinates).

## `sortBy` (type: `string`):

Order of returned crime incidents (mode=crimesByCity, crimesByCoordinates). 'Nearest first' sorts by distance from the search center (city centroid or coordinates).

## `includeDescription` (type: `boolean`):

For each incident, also visit its SpotCrime detail page to collect the police-report description and original source-agency link. Slower -- one extra request per incident (mode=crimesByCity, crimesByCoordinates).

## `maxItems` (type: `integer`):

Hard cap on the number of records to return.

## `proxyConfiguration` (type: `object`):

Optional. SpotCrime's public pages are not blocked from Apify's datacenter IPs, so a proxy is not required. Enable the free AUTO group only if you run into rate limiting.

## Actor input object example

```json
{
  "mode": "crimesByCity",
  "state": "TX",
  "city": "Austin",
  "latitude": 30.2687,
  "longitude": -97.7452,
  "radius": 3,
  "crimeTypes": [],
  "sortBy": "newest",
  "includeDescription": false,
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `records` (type: `string`):

Dataset containing all scraped SpotCrime records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "crimesByCity",
    "state": "TX",
    "city": "Austin",
    "latitude": 30.2687,
    "longitude": -97.7452,
    "radius": 3,
    "crimeTypes": [],
    "sortBy": "newest",
    "includeDescription": false,
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/spotcrime-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "crimesByCity",
    "state": "TX",
    "city": "Austin",
    "latitude": 30.2687,
    "longitude": -97.7452,
    "radius": 3,
    "crimeTypes": [],
    "sortBy": "newest",
    "includeDescription": False,
    "maxItems": 30,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/spotcrime-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "crimesByCity",
  "state": "TX",
  "city": "Austin",
  "latitude": 30.2687,
  "longitude": -97.7452,
  "radius": 3,
  "crimeTypes": [],
  "sortBy": "newest",
  "includeDescription": false,
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawlerbros/spotcrime-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/spotcrime-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SpotCrime Scraper - US Crime Map Data",
        "description": "Scrape SpotCrime's crowdsourced US crime map. Search recent crime incidents by city/state or GPS coordinates, browse covered cities, or pull area crime stats. Get incident type, date, address, coordinates. No login, no cookies, no API key required.",
        "version": "1.0",
        "x-build-id": "bftXpFriFM4gqNbxd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~spotcrime-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-spotcrime-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~spotcrime-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-spotcrime-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~spotcrime-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-spotcrime-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "crimesByCity",
                            "crimesByCoordinates",
                            "browseCities",
                            "areaStats"
                        ],
                        "type": "string",
                        "description": "What to fetch: recent crime incidents for a city, recent crime incidents near GPS coordinates, the list of cities SpotCrime covers in a state, or aggregate crime statistics for a city.",
                        "default": "crimesByCity"
                    },
                    "state": {
                        "title": "State",
                        "enum": [
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "DC",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY",
                            "PR",
                            "VI"
                        ],
                        "type": "string",
                        "description": "US state (or DC / Puerto Rico / Virgin Islands) to search in (mode=crimesByCity, browseCities, areaStats).",
                        "default": "TX"
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "City name as listed on SpotCrime, e.g. 'Austin', 'Los Angeles', 'New York' (mode=crimesByCity, areaStats). Use mode=browseCities first if you're unsure of the exact spelling SpotCrime uses.",
                        "default": "Austin"
                    },
                    "latitude": {
                        "title": "Latitude",
                        "minimum": -90,
                        "maximum": 90,
                        "type": "number",
                        "description": "Center latitude in decimal degrees (mode=crimesByCoordinates), e.g. 30.2687 for downtown Austin, TX.",
                        "default": 30.2687
                    },
                    "longitude": {
                        "title": "Longitude",
                        "minimum": -180,
                        "maximum": 180,
                        "type": "number",
                        "description": "Center longitude in decimal degrees (mode=crimesByCoordinates), e.g. -97.7452 for downtown Austin, TX.",
                        "default": -97.7452
                    },
                    "radius": {
                        "title": "Search radius",
                        "minimum": 0.1,
                        "maximum": 25,
                        "type": "number",
                        "description": "Approximate search radius around the center point (city centroid or coordinates), in the same unit SpotCrime's own map uses internally (roughly miles). Larger values cover more ground; the actor automatically searches multiple sub-areas within this radius to reach `maxItems` (mode=crimesByCity, crimesByCoordinates).",
                        "default": 3
                    },
                    "crimeTypes": {
                        "title": "Crime types",
                        "type": "array",
                        "description": "Only return incidents of these types. Leave empty to include every type (mode=crimesByCity, crimesByCoordinates).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Arrest",
                                "Arson",
                                "Assault",
                                "Burglary",
                                "Other",
                                "Robbery",
                                "Shooting",
                                "Theft",
                                "Vandalism"
                            ],
                            "enumTitles": [
                                "Arrest",
                                "Arson",
                                "Assault",
                                "Burglary",
                                "Other",
                                "Robbery",
                                "Shooting",
                                "Theft",
                                "Vandalism"
                            ]
                        },
                        "default": []
                    },
                    "dateFrom": {
                        "title": "Date from",
                        "type": "string",
                        "description": "Only return incidents reported on or after this date, format YYYY-MM-DD (mode=crimesByCity, crimesByCoordinates). SpotCrime's public feed only carries the most recent incidents (typically the last few weeks), so dates far in the past will return no results."
                    },
                    "dateTo": {
                        "title": "Date to",
                        "type": "string",
                        "description": "Only return incidents reported on or before this date, format YYYY-MM-DD (mode=crimesByCity, crimesByCoordinates)."
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "newest",
                            "oldest",
                            "distance"
                        ],
                        "type": "string",
                        "description": "Order of returned crime incidents (mode=crimesByCity, crimesByCoordinates). 'Nearest first' sorts by distance from the search center (city centroid or coordinates).",
                        "default": "newest"
                    },
                    "includeDescription": {
                        "title": "Fetch incident descriptions",
                        "type": "boolean",
                        "description": "For each incident, also visit its SpotCrime detail page to collect the police-report description and original source-agency link. Slower -- one extra request per incident (mode=crimesByCity, crimesByCoordinates).",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on the number of records to return.",
                        "default": 30
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. SpotCrime's public pages are not blocked from Apify's datacenter IPs, so a proxy is not required. Enable the free AUTO group only if you run into rate limiting."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
