Seattle Crime Data Scraper avatar

Seattle Crime Data Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Seattle Crime Data Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

ParseForge

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 itWhat they scrape Seattle Police Department for
Local journalistsTracking crime trends by neighborhood for a weekly public-safety report.
Urban plannersMapping incident density to evaluate lighting or community-program placement.
Real estate analystsComparing precinct-level crime volumes when scoring investment ZIP codes.
Academic researchersBuilding 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 sourceData comes straight from the Seattle Police Department open-data portal, not a third-party aggregator.
Precinct and category filtersCut the dataset down to one precinct or one NIBRS category before the run finishes.
Coordinates includedEvery incident that has a location arrives with latitude and longitude, ready for mapping.
Flat row shapeOne 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.

FeatureParseForgeCrime Data Scraper (US Cities)
Seattle-specific precinct filterYes, filter by SPD precinct name (WEST, NORTH, etc.)Not listed
NIBRS crime-against category filterYes, select Person, Property, Society, or Not a crimeNot listed
Direct SPD open-data portal sourceYes, reads the city's live datasetNot listed
Coordinates included per incidentYes, latitude and longitude when availableYes
Multi-city normalized schemaNo, Seattle onlyYes

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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the Seattle Crime Data Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.

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.