Seattle Crime Data Scraper
Pricing
from $19.00 / 1,000 results
Seattle Crime Data Scraper
Collects Seattle Police Department incident reports from the city's open-data portal. Returns each incident as a flat row with date, offense, precinct, and coordinates. Filter by precinct or NIBRS crime category.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Seattle Crime Data Scraper
Scrape official Seattle crime incident data from the SPD open-data portal, up to a million records per run. Every incident comes with its date, offense type, precinct, and coordinates. Filter by precinct or NIBRS crime category. Export to CSV, JSON, Excel, or XML.
Seattle's open-data portal holds every police incident report, but downloading it in bulk means wrestling with SODA API pagination or manual CSV exports. This Actor reads the public dataset directly, lets you filter by precinct or crime category, and returns each incident in one flat row. No API key, no geocoding setup.
| Who uses it | What they scrape Seattle Police Department for |
|---|---|
| Local journalists | Tracking crime trends by neighborhood for a weekly public-safety report. |
| Urban planners | Mapping incident density to evaluate lighting or community-program placement. |
| Real estate analysts | Comparing precinct-level crime volumes when scoring investment ZIP codes. |
| Academic researchers | Building longitudinal datasets of reported offenses for criminology papers. |
What it does
This Actor collects Seattle Police Department incident reports from the city's open-data portal and returns each one as a flat row with date, offense, precinct, and coordinates.
- π Precinct filter: narrow results to a single SPD precinct like WEST or NORTH before download.
- π·οΈ NIBRS category filter: pull only Person, Property, Society, or Not-a-crime incidents in one run.
- π¦ Bulk export: collect up to 1,000,000 incidents per run and export to CSV, JSON, Excel, or XML.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Seattle Police Department data
π° Power a public-safety news beat.
A local reporter pulls the last 5,000 WEST precinct incidents filtered to PERSON crimes and spots a three-month spike in aggravated assaults around Pioneer Square.
ποΈ Score a rental-property ZIP code.
A real estate analyst collects one year of PROPERTY crimes by precinct and overlays the counts on a map of available multifamily listings.
π Feed a criminology study.
A PhD candidate runs the Actor weekly for six months, building a clean panel dataset of all SOCIETY offenses with coordinates for a spatial-statistics model.
πΊοΈ Build a neighborhood safety dashboard.
A civic hacker collects all incidents, filters to the last 30 days, and pushes the CSV into a Mapbox layer that colors census tracts by incident density.
Why choose this scraper
| What you get | |
|---|---|
| Official SPD source | Data comes straight from the Seattle Police Department open-data portal, not a third-party aggregator. |
| Precinct and category filters | Cut the dataset down to one precinct or one NIBRS category before the run finishes. |
| Coordinates included | Every incident that has a location arrives with latitude and longitude, ready for mapping. |
| Flat row shape | One incident equals one row. No nested objects, no unpivoting needed in your analysis tool. |
How it compares
Crime Data Scraper (US Cities) covers multiple cities in one normalized schema, while this Actor focuses exclusively on Seattle and reads the SPD portal directly with precinct and NIBRS filters.
| Feature | ParseForge | Crime Data Scraper (US Cities) |
|---|---|---|
| Seattle-specific precinct filter | Yes, filter by SPD precinct name (WEST, NORTH, etc.) | Not listed |
| NIBRS crime-against category filter | Yes, select Person, Property, Society, or Not a crime | Not listed |
| Direct SPD open-data portal source | Yes, reads the city's live dataset | Not listed |
| Coordinates included per incident | Yes, latitude and longitude when available | Yes |
| Multi-city normalized schema | No, Seattle only | Yes |
Configure the run
Drive the Actor with an optional precinct name and a NIBRS crime-against category, and filters run as each incident is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10}
A larger pull:
{"maxItems": 200}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Seattle Crime Data Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Seattle Police Department through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/seattle-crime-data-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your precinct spelling matches SPD's convention exactly (e.g. WEST, not West Seattle). Also confirm that the NIBRS category you selected has incidents in the current dataset.
The run finished but my dataset is smaller than maxItems.
This is expected when your filters match fewer incidents than the maximum you set. The Actor collects every matching record; if only 200 exist, you get 200.
Some rows have null coordinates.
SPD suppresses exact locations for certain sensitive incidents, such as sexual assaults or cases involving minors. These rows are valid but will not appear on a map.
I need data older than what the portal shows.
The Actor reads whatever date range the city's open-data portal currently serves. If older records have been archived off the public endpoint, they are not available through this Actor.
The precinct filter is case-sensitive.
Enter precinct names in uppercase as SPD labels them: WEST, NORTH, EAST, SOUTH, SOUTHWEST. Mixed case may not match.
FAQ
| Question | Answer |
|---|---|
| Where does the data come from? | The Actor reads the Seattle Police Department's public open-data portal, which publishes incident reports under the city's open-data policy. |
| Do I need an API key or a City of Seattle account? | No. The dataset is public and the Actor reads it directly. You do not need to register an application or obtain a token. |
| What is a NIBRS category? | NIBRS stands for National Incident-Based Reporting System. The Actor lets you filter by the crime-against category: Person, Property, Society, or Not a crime. |
| Can I filter by a specific offense type like burglary? | The input schema offers precinct and NIBRS category filters. For a specific offense code, pull the full dataset and filter the CSV in your analysis tool. |
| How many incidents can I collect in one run? | You can set the maximum up to 1,000,000 incidents per run. The actual number depends on how many records match your filters. |
| Does every incident have latitude and longitude? | Most incidents include coordinates. A small number of reports may have a suppressed location for victim privacy; those rows will have null coordinates. |
| What export formats are supported? | You can export the dataset as CSV, JSON, Excel, or XML from the Apify platform after the run completes. |
| How often is the SPD data updated? | The Actor reads whatever the city's open-data portal is serving at run time. Schedule a recurring run to capture new incidents as they are published. |
| Can I combine precinct and category filters? | Yes. Set both the precinct and category inputs and the Actor will return only incidents that satisfy both conditions. |
| Is this Actor affiliated with the Seattle Police Department? | No. It is an independent tool that reads the same public dataset anyone can access through the city's open-data portal. |
Related actors
Browse the full ParseForge collection for more scrapers.
π Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
β οΈ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by City of Seattle. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
