FRA Railroad Accidents Scraper
Pricing
Pay per event
FRA Railroad Accidents Scraper
Extract FRA railroad accident records with railroads, locations, causes, casualties, damage costs, hazmat flags, and source report links.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Federal Railroad Administration (FRA) rail equipment accident and incident records from the DOT open-data catalog.
Use it to monitor railroad safety events, casualty counts, damage costs, hazardous-material indicators, accident causes, and source report links without manually exporting data from government portals.
What does FRA Railroad Accidents Scraper do?
FRA Railroad Accidents Scraper collects rail equipment accident/incident records from the official DOT/FRA dataset.
It lets you filter records by:
- π Accident date range
- πΊοΈ State and county
- π Reporting railroad code or name
- β οΈ Accident type
- π΅ Minimum damage cost
- π Optional narrative text
Each output item is a normalized accident record with typed costs, casualty counts, cause fields, hazmat indicators, and source links.
Who is it for?
This actor is useful for teams that need repeatable railroad accident data workflows.
- π‘οΈ Rail safety and compliance teams tracking incidents by territory
- π§Ύ Insurance and claims analysts monitoring high-damage events
- βοΈ Legal and litigation-support teams researching specific railroads or regions
- π Transportation market researchers building trend dashboards
- ποΈ Public-sector analysts reviewing accident causes and locations
- π§ͺ Data teams enriching internal risk models with FRA source records
Why use this actor?
The FRA and DOT portals are valuable but are not optimized for repeatable automation.
This actor gives you:
- Structured JSON records ready for APIs, exports, and dashboards
- Date, railroad, location, and accident-type filters
- Direct report URLs for audit trails
- Clean numeric damage and casualty fields
- Optional narrative extraction
- Pay-per-result pricing so small checks stay inexpensive
Data source
The actor uses the public DOT/FRA Socrata dataset:
- Rail Equipment Accident/Incident Data (Form 54)
- Dataset ID:
85tf-25kj - Source page: https://data.transportation.gov/Railroads/Rail-Equipment-Accident-Incident-Data/85tf-25kj
The FRA Safety Data homepage links this dataset as Rail Equipment Accident/Incident Data.
What data can you extract?
| Field | Description |
|---|---|
reportNumber | FRA accident report number |
reportKey | FRA report/incident key |
railroad | Reporting railroad name |
railroadCode | Reporting railroad code |
date / time | Accident date and time |
state / county | Location fields |
cityOrLocation | Station or location text |
accidentType | Type such as derailment or collision |
causeCode | FRA cause code |
causeDescription | FRA cause description |
fatalities / injuries | Total persons killed or injured |
damageCost | Total reported damage cost |
hazmatReleased | Boolean hazardous material release indicator |
sourceUrl | Direct FRA report link when available |
How much does it cost to scrape FRA railroad accident data?
This actor uses pay-per-event pricing.
You pay a small start fee per run and then a per-record fee for saved accident records.
For example:
- A quick 100-record state check is inexpensive.
- A large national date-range export costs more because it saves more records.
- Empty-result searches only incur the run start event.
Exact live prices are shown on the Apify Store pricing panel.
How to use
- Open the actor on Apify.
- Set a
startDateandendDate. - Optionally add
state,county,railroad, oraccidentTypefilters. - Set
maxItems. - Run the actor.
- Download results from the Dataset tab as JSON, CSV, Excel, XML, or RSS.
Input example
{"startDate": "2024-01-01","endDate": "2024-12-31","state": "TX","railroad": "BNSF","accidentType": "Derailment","includeNarrative": true,"maxItems": 100}
Input fields
startDate
Earliest accident date to include.
Use YYYY-MM-DD format.
endDate
Latest accident date to include.
If omitted, the actor uses the current date.
state
Optional state abbreviation or full state name.
Examples: TX, Texas, CA, Illinois.
county
Optional county-name filter.
railroad
Optional reporting railroad code or name.
Examples: BNSF, CSX, Union Pacific, Norfolk Southern.
accidentType
Optional text filter for FRA accident type.
Examples: Derailment, Collision, Fire, Obstruction.
minDamageCost
Optional minimum total damage cost in USD.
Use it to focus on severe incidents.
includeNarrative
Set to true to include FRA narrative text when available.
Set to false for smaller exports.
maxItems
Maximum number of accident records to save.
Output example
{"reportNumber": "RD1224131","railroad": "BNSF Railway Company","railroadCode": "BNSF","date": "2024-12-30","stateAbbr": "TX","county": "JEFFERSON","cityOrLocation": "BEAUMONT","accidentType": "Derailment","causeCode": "T220","fatalities": 0,"injuries": 0,"damageCost": 41654,"hazmatReleased": false,"sourceUrl": "https://safetydata.fra.dot.gov/...","scrapedAt": "2026-07-06T03:42:05.621Z"}
Tips for better results
- Use a date range first, then add location or railroad filters.
- Start with a lower
maxItemswhile designing your workflow. - Use
minDamageCostto find higher-severity events. - Keep
includeNarrativeenabled when reviewing incident context. - Disable narrative for compact dashboard exports.
Common workflows
State accident monitoring
Run the actor monthly for one or more states and append the dataset to your BI tool.
Railroad-specific analysis
Filter by railroad code or name to track events involving a carrier.
Damage-cost review
Set minDamageCost to focus on major incidents for claims, risk, or compliance review.
Cause-code research
Export causeCode and causeDescription for trend analysis.
Integrations
You can connect the output to:
- Google Sheets or Excel for incident lists
- BigQuery, Snowflake, or PostgreSQL for analytics
- Slack or email alerts for newly detected severe accidents
- BI dashboards for monthly safety trend reporting
- Internal risk or underwriting systems
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/fra-railroad-accidents-scraper').call({startDate: '2024-01-01',endDate: '2024-12-31',state: 'TX',maxItems: 100,});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/fra-railroad-accidents-scraper').call(run_input={'startDate': '2024-01-01','endDate': '2024-12-31','state': 'TX','maxItems': 100,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~fra-railroad-accidents-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startDate":"2024-01-01","endDate":"2024-12-31","state":"TX","maxItems":100}'
MCP usage
Use this actor from MCP-compatible tools through Apify MCP.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/fra-railroad-accidents-scraper
Claude Code setup:
$claude mcp add apify-fra-railroad-accidents "https://mcp.apify.com/?tools=automation-lab/fra-railroad-accidents-scraper"
Generic MCP JSON config:
{"mcpServers": {"apify-fra-railroad-accidents": {"url": "https://mcp.apify.com/?tools=automation-lab/fra-railroad-accidents-scraper"}}}
Example prompts:
- "Run the FRA railroad accidents scraper for Texas derailments in 2024."
- "Find FRA accident records for BNSF with damage above 100000 dollars."
- "Export rail equipment accident data for Illinois for the last year."
Reliability notes
The actor uses the DOT open-data API rather than scraping a fragile visual search form.
This keeps runs fast, stable, and inexpensive.
Limitations
- The actor depends on fields published by the DOT/FRA dataset.
- Very recent accidents may appear only after FRA/DOT data refreshes.
- Source report links are included when the dataset provides them.
- Historical field completeness can vary by year.
Legality
This actor extracts public government open-data records.
You are responsible for using the data in compliance with applicable laws, platform terms, and internal policies.
Do not use the actor to make regulated decisions without validating the source records and methodology.
FAQ
Is this official FRA data?
The actor uses the public DOT/FRA open-data dataset linked from the FRA Safety Data homepage. Always verify critical decisions against source records.
Can I scrape all historical records?
Yes, set a broad date range and a high maxItems value. For very large exports, run by year or state to keep exports easier to manage.
Troubleshooting
Why did I get zero records?
Your filters may be too narrow. Try removing county, railroad, or accidentType, or expand the date range.
Why is a narrative missing?
Some source records may not include narrative text. Make sure includeNarrative is enabled.
Why are some source URLs long?
FRA report links include query parameters that identify the report key. Keep them intact for auditability.
Related scrapers
Explore related Automation Lab actors:
- https://apify.com/automation-lab/fmcsa-crash-scraper
- https://apify.com/automation-lab/msha-mine-safety-scraper
- https://apify.com/automation-lab/nhtsa-vehicle-safety-scraper
- https://apify.com/automation-lab/bls-labor-statistics-scraper
Support
If you need a field added, a workflow example, or help with a filter, open an issue from the Apify actor page.
Changelog
Initial version extracts FRA rail equipment accident/incident records from the DOT open-data dataset.