FRA Railroad Accidents Scraper avatar

FRA Railroad Accidents Scraper

Pricing

Pay per event

Go to Apify Store
FRA Railroad Accidents Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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:

The FRA Safety Data homepage links this dataset as Rail Equipment Accident/Incident Data.

What data can you extract?

FieldDescription
reportNumberFRA accident report number
reportKeyFRA report/incident key
railroadReporting railroad name
railroadCodeReporting railroad code
date / timeAccident date and time
state / countyLocation fields
cityOrLocationStation or location text
accidentTypeType such as derailment or collision
causeCodeFRA cause code
causeDescriptionFRA cause description
fatalities / injuriesTotal persons killed or injured
damageCostTotal reported damage cost
hazmatReleasedBoolean hazardous material release indicator
sourceUrlDirect 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

  1. Open the actor on Apify.
  2. Set a startDate and endDate.
  3. Optionally add state, county, railroad, or accidentType filters.
  4. Set maxItems.
  5. Run the actor.
  6. 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 maxItems while designing your workflow.
  • Use minDamageCost to find higher-severity events.
  • Keep includeNarrative enabled 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 ApifyClient
client = 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.

Explore related Automation Lab actors:

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.