FBI Crime Data Scraper
parseforge/fbi-crime-data-scraper
OtherNews & mediaDeveloper tools
Scrapes FBI Uniform Crime Reporting statistics by year and optional state. Returns offense type, reported count, clearance rate, and submitting agency for each record.
- Total users
- 3
- Monthly active
- 1
- Total runs
- 103
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
FBI Crime Data Scraper
Scrape official FBI crime statistics and incident counts for any US state, year by year, up to a million records per run. Every row returns the offense type, reported count, clearance rate, and the agency that submitted it. Export to CSV, JSON, Excel, or XML.
The FBI's Crime Data Explorer holds decades of national crime statistics, but browsing it means clicking through state and agency pages one at a time. This Actor reads the public data feeds directly, so you can pull multi-year trends for a single state or the entire country in one run. It returns each record in a flat, consistent schema ready for analysis.
| Who uses it | What they scrape FBI Crime Data Explorer for |
|---|---|
| Crime analysts | Build multi-year trend lines for violent and property crime across jurisdictions. |
| Journalists | Pull official FBI numbers for a state or city to back a data-driven story. |
| Academic researchers | Gather a clean dataset of reported offenses for criminology or public-policy papers. |
| Insurance underwriters | Assess regional crime risk by comparing five-year offense trends per agency. |
What it does
This Actor collects crime statistics from the FBI Crime Data Explorer by year and optional state, and returns each offense count as a flat row.
- πΊοΈ State filter: limit results to a single US state or territory with its two-letter abbreviation, or leave blank for all states.
- π Year range: set a from-year and to-year between 1985 and 2022 to capture exactly the window you need.
- π Offense-level detail: each row names the offense category, the count reported, and the submitting law enforcement agency.
- π Flat export: every record lands in a fixed schema, ready for CSV, JSON, Excel, or XML export.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with FBI Crime Data Explorer data
π Track crime trends over decades.
A crime analyst pulls every year from 1985 to 2022 for California and plots violent-crime rates to brief a state task force.
ποΈ Fact-check a local crime story.
A reporter scrapes five years of burglary data for their city's police department and compares it against the chief's public statements.
π Build a research dataset.
A criminology PhD student collects all-agency, all-state data for 2000-2020 to study the correlation between poverty and property crime.
π’ Evaluate regional risk.
An insurance analyst pulls ten years of larceny and motor-vehicle theft counts for three states to adjust regional premium models.
Why choose this scraper
| What you get | |
|---|---|
| Offense type | The category of crime reported, such as aggravated assault or burglary. |
| Reported count | The number of incidents recorded for that offense in that year. |
| Clearance rate | The percentage of cases closed by arrest or exceptional means. |
| Agency name | The law enforcement agency that submitted the data. |
How it compares
No other Store actor targets FBI Crime Data Explorer the same way, so the honest comparison is with the alternatives teams actually weigh.
| FBI Crime Data Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When FBI Crime Data Explorer changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a year range and an optional two-letter state abbreviation. Filters run as each record is read, so only the years and state you specify reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"fromYear": 2015,
"toYear": 2022
}
A larger pull:
{
"maxItems": 200,
"fromYear": 2015,
"toYear": 2022
}
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 FBI 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 FBI Crime Data Explorer 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/fbi-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 from-year and to-year are within 1985-2022 and that from-year is not later than to-year. If you entered a state abbreviation, verify it is a valid two-letter USPS code. Try running without the state filter first to confirm data is available.
The run is taking too long or timing out.
A full national pull across many years can produce a large number of records. Lower your maxItems or narrow the year range. You can also split the work into multiple runs, one state at a time.
Some years return fewer records than expected.
Not all agencies reported data in every year, and the FBI's coverage grew over time. Early years in the 1980s may have sparser data. This is a property of the source, not the scraper.
The state abbreviation I entered is not working.
Use the standard two-letter USPS abbreviation with no spaces or punctuation. For example, 'CA' works; 'California' or 'Ca.' do not. The input is case-insensitive.
My dataset has duplicate rows.
The Actor returns one row per offense category per agency per year. If you see duplicates, check whether you ran the same query twice. You can deduplicate in your analysis tool using the agency, year, and offense columns.
FAQ
| Question | Answer |
|---|---|
| What years of FBI crime data are available? | The FBI Crime Data Explorer provides data from 1985 through 2022. Set the from-year and to-year inputs to any range within that window. |
| Can I get data for a single city or county? | The Actor returns records at the agency level, which includes city police departments and county sheriff's offices. Filter by state first, then isolate the agency you want in your output. |
| What offense categories does the data include? | It covers all Uniform Crime Reporting (UCR) Part I offenses: violent crimes like homicide, rape, robbery, and aggravated assault, plus property crimes like burglary, larceny, and motor vehicle theft. |
| Does this Actor require an FBI API key? | No. It reads the public data feeds from the FBI Crime Data Explorer website. No registration, no API key, and no authentication are needed. |
| How many records can I collect in one run? | You can set the maximum records up to 1,000,000 per run. A full national pull for a single year can be large, so start with a small maxItems to test your query. |
| What is the output format? | The Actor returns a flat dataset you can export as CSV, JSON, Excel, or XML directly from your Apify run. |
| Can I get clearance rates along with offense counts? | Yes. Each record includes the number of reported offenses and the clearance count, so you can calculate or use the clearance rate directly. |
| Does this cover NIBRS data or only summary UCR? | The Actor pulls from the FBI's summary reporting system, which covers the traditional UCR Part I offenses. NIBRS incident-level data is not included in this feed. |
| How do I specify a state? | Use the two-letter postal abbreviation in the stateAbbr input field. For example, enter 'TX' for Texas or 'NY' for New York. Leave it blank to scrape all states. |
| Is the data updated when the FBI releases new years? | The Actor reads whatever the FBI has published on the Crime Data Explorer. When a new year appears on the site, you can set your to-year input to include it. |
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 Federal Bureau of Investigation. 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.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| maxItems | integer | How many records to collect per run. | 10 |
| fromYear | integer | Start year for crime data (data available from 1985). | 2015 |
| toYear | integer | End year for crime data (data available through 2022). | 2022 |
| stateAbbr | string | Two-letter state abbreviation to filter results (e.g. CA for California). Leave blank for all states. | not set |
Pricing
from $19.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.019 to $0.021 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~fbi-crime-data-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
