# FMCSA Motor Vehicle Crash Reports (4.9M+ Records) (`compute-edge/fmcsa-crash-scraper`) Actor

Search FMCSA motor vehicle crash reports. Filter by state, DOT number, carrier name, date range, and truck/bus type. 4.9M+ crash records with fatalities, injuries, carrier details, and incident locations.

- **URL**: https://apify.com/compute-edge/fmcsa-crash-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## FMCSA Motor Vehicle Crash Reports Scraper

### Overview

This actor extracts detailed motor vehicle crash reports from the **Federal Motor Carrier Safety Administration (FMCSA)** public database, containing **4.9+ million crash records**. Access comprehensive crash data including fatalities, injuries, carrier information, and incident details.

The actor uses the official Socrata API endpoint (`data.transportation.gov`) — the same data source used by the FMCSA itself. No authentication required. Data is updated regularly by the Department of Transportation.

### Key Features

- **4.9+ Million Records**: Complete historical crash database from FMCSA
- **Flexible Filtering**: Filter by state, DOT number, carrier name, date range, or vehicle type
- **Detailed Carrier Info**: Crash carrier name, address, DOT number, interstate operations
- **Casualty Data**: Fatalities and injuries for each crash
- **Vehicle Details**: Truck/bus indicator, cargo body type, vehicle configuration
- **Status Tracking**: Final status code and recordability indicators
- **No Authentication**: Public data from federal open data portal
- **Reliable API**: Socrata SoQL endpoint with rate limiting protection

### Data Fields

| Field | Type | Description |
|-------|------|-------------|
| `crashId` | string | Unique crash identifier |
| `reportNumber` | string | FMCSA report number |
| `reportDate` | string | Date crash was reported (YYYY-MM-DD) |
| `reportTime` | string | Time crash was reported |
| `reportState` | string | State where crash occurred |
| `city` | string | City/locality of crash |
| `location` | string | Geographic location coordinates |
| `dotNumber` | string | Federal motor carrier identification number |
| `carrierName` | string | Name of carrier involved |
| `carrierStreet` | string | Carrier street address |
| `carrierCity` | string | Carrier city |
| `carrierState` | string | Carrier state |
| `carrierZip` | string | Carrier ZIP code |
| `carrierInterstate` | string | Interstate operations indicator |
| `truckBusIndicator` | string | Vehicle type: T (truck) or B (bus) |
| `cargoBodyType` | string | Type of cargo body |
| `vehicleConfiguration` | string | Vehicle configuration ID |
| `fatalities` | number | Total fatalities in crash |
| `injuries` | number | Total injuries in crash |
| `towAway` | string | Tow away indicator |
| `federalRecordable` | string | Federal recordability status |
| `stateRecordable` | string | State recordability status |
| `statusCode` | string | Current status code |
| `finalStatusDate` | string | Final status date |

### How to Use

#### Basic Search (All Records)

Run the actor with minimal input to retrieve recent crashes:

```json
{
  "maxResults": 100
}
````

This returns the 100 most recent crash reports in descending date order.

#### Filter by State

Search for crashes in a specific state (e.g., Texas):

```json
{
  "state": "TX",
  "maxResults": 500
}
```

#### Filter by Carrier (DOT Number)

Search for all crashes involving a specific carrier:

```json
{
  "dotNumber": "123456",
  "maxResults": 100
}
```

#### Filter by Carrier Name

Search for crashes by carrier name (partial match supported):

```json
{
  "carrierName": "Swift Transportation",
  "maxResults": 200
}
```

#### Filter by Date Range

Search for crashes within a specific date range:

```json
{
  "startDate": "2023-01-01",
  "endDate": "2023-12-31",
  "maxResults": 1000
}
```

#### Filter by Vehicle Type

Search for truck crashes only:

```json
{
  "truckOrBus": "T",
  "maxResults": 500
}
```

Or bus crashes:

```json
{
  "truckOrBus": "B",
  "maxResults": 500
}
```

#### Combined Filters

Search for high-severity crashes in a specific state and date range:

```json
{
  "state": "CA",
  "startDate": "2023-01-01",
  "endDate": "2024-12-31",
  "truckOrBus": "T",
  "maxResults": 2000
}
```

### Input Parameters

| Parameter | Type | Description | Default | Required |
|-----------|------|-------------|---------|----------|
| `state` | string | Two-letter state abbreviation (e.g., 'TX', 'CA', 'VA') | (empty) | No |
| `dotNumber` | string | Federal motor carrier ID number | (empty) | No |
| `carrierName` | string | Carrier name (partial match via LIKE) | (empty) | No |
| `startDate` | string | Start date in YYYY-MM-DD format | (empty) | No |
| `endDate` | string | End date in YYYY-MM-DD format | (empty) | No |
| `truckOrBus` | string | Vehicle type: 'T' (truck), 'B' (bus), or '' (both) | (empty) | No |
| `maxResults` | integer | Maximum number of records to return (1–200,000) | 100 | No |

### Output Format

The actor outputs a JSON dataset where each record represents one crash:

```json
{
  "crashId": "20240315001",
  "reportNumber": "NA",
  "reportDate": "2024-03-15",
  "reportTime": "14:30",
  "reportState": "TX",
  "city": "Houston",
  "location": "29.7589, -95.3677",
  "dotNumber": "123456",
  "carrierName": "Example Trucking Inc.",
  "carrierStreet": "100 Main St",
  "carrierCity": "Houston",
  "carrierState": "TX",
  "carrierZip": "77002",
  "carrierInterstate": "Yes",
  "truckBusIndicator": "T",
  "cargoBodyType": "Dry van",
  "vehicleConfiguration": "Tractor-trailer",
  "fatalities": 0,
  "injuries": 2,
  "towAway": "Yes",
  "federalRecordable": "Yes",
  "stateRecordable": "Yes",
  "statusCode": "Closed",
  "finalStatusDate": "2024-04-01"
}
```

### Pricing

| Metric | Cost |
|--------|------|
| Per Result | $0.004 |
| Actor Start | $0.00005 |
| Compute | ~$0.005–0.010 per run (varies by result volume) |

**Typical Usage**:

- 100 results ≈ $0.40 (per-result cost) + compute
- 1,000 results ≈ $4.00 + compute
- 10,000 results ≈ $40.00 + compute

### Data Source & Legal

This actor retrieves data from the official **FMCSA public database** hosted on `data.transportation.gov` — a federal open data portal maintained by the U.S. Department of Transportation.

#### Important Notes:

- **Public Data**: All data is publicly accessible and non-personal
- **No Authentication**: Uses public API endpoints; no login required
- **Regulatory Data**: Crash data is maintained as part of federal safety oversight and is freely available
- **Usage Rights**: Public domain data; use subject to FMCSA terms
- **Data Freshness**: Updated regularly by FMCSA as new crash reports are filed

**Legal Disclaimer**: This actor extracts only publicly available, non-personal data from federal sources. Users are responsible for complying with applicable laws, regulations, and the FMCSA's terms of service. Do not use this data for purposes that violate privacy, safety, or regulatory requirements. The actor operator assumes no liability for misuse of extracted data.

### FAQ

#### How fresh is the data?

FMCSA updates the crash database regularly as new reports are filed. Most crashes are reported within 30 days, though some may take longer. Use the `startDate` and `endDate` filters to retrieve the most recent data.

#### Can I download all 4.9 million records?

Yes, but it would be expensive. The Socrata API paginates in chunks of 1,000 records. For very large exports, consider:

- Running multiple targeted queries (by state, date range, carrier)
- Using the `maxResults` parameter to batch your requests
- Contacting FMCSA directly for bulk data exports

#### What's the difference between "federal recordable" and "state recordable"?

- **Federal Recordable**: Meets FMCSA crash reporting criteria (serious injuries, fatalities, or hazmat releases)
- **State Recordable**: Meets individual state reporting requirements, which vary by state

#### Can I scrape by accident severity (fatalities/injuries)?

Not directly via filter, but you can use `maxResults` with high values and filter the results client-side. Alternatively, request a feature extension.

#### How often can I run this actor?

There's no strict rate limit on FMCSA data, but the Socrata API has standard rate limiting (~100 req/min). The actor includes backoff and retry logic to handle rate limits gracefully.

#### What if my search returns 0 results?

This typically means:

- No crashes match your filter criteria
- The date range is too restrictive
- The DOT number or carrier name doesn't exist in the database
- The state abbreviation is incorrect (use two-letter codes: TX, CA, NY, etc.)

Try widening your filters or removing the most restrictive parameter.

### Related Actors

- **FRA Railroad Accidents Scraper** — Extract Federal Railroad Administration accident reports
- **NHTSA Vehicle Complaints Scraper** — Extract vehicle safety complaints from NHTSA
- **DOT Violations Scraper** — Scrape DOT safety inspection violations

### Support & Contact

For issues, feature requests, or technical support:

- Email: seatsignal@example.com
- GitHub: [Apify Scraper Factory](https://github.com/apify-scrapers)
- Apify Forum: Post in the Marketplace Actors category

***

**Built with**: Node.js, Apify SDK, Socrata SoQL API
**Data Source**: U.S. Department of Transportation (data.transportation.gov)
**Last Updated**: 2026-04-07
**License**: ISC

# Actor input Schema

## `state` (type: `string`):

Two-letter state abbreviation to filter by (e.g. 'TX', 'CA', 'VA'). Leave empty for all states.

## `dotNumber` (type: `string`):

Federal motor carrier identification number to filter by (e.g. '123456'). Leave empty for all carriers.

## `carrierName` (type: `string`):

Carrier name to filter by (e.g. 'Swift Transportation'). Partial match supported. Leave empty for all carriers.

## `startDate` (type: `string`):

Start date for filtering crash reports (YYYY-MM-DD format, e.g. '2020-01-01').

## `endDate` (type: `string`):

End date for filtering crash reports (YYYY-MM-DD format, e.g. '2024-12-31').

## `truckOrBus` (type: `string`):

Filter by vehicle type: 'T' for truck, 'B' for bus. Leave empty for both types.

## `maxResults` (type: `integer`):

Maximum number of crash records to return.

## Actor input object example

```json
{
  "state": "",
  "dotNumber": "",
  "carrierName": "",
  "startDate": "",
  "endDate": "",
  "truckOrBus": "",
  "maxResults": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/fmcsa-crash-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/fmcsa-crash-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/fmcsa-crash-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/fmcsa-crash-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FMCSA Motor Vehicle Crash Reports (4.9M+ Records)",
        "description": "Search FMCSA motor vehicle crash reports. Filter by state, DOT number, carrier name, date range, and truck/bus type. 4.9M+ crash records with fatalities, injuries, carrier details, and incident locations.",
        "version": "0.1",
        "x-build-id": "DcTrpkLIbPzphZN2G"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~fmcsa-crash-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-fmcsa-crash-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~fmcsa-crash-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-fmcsa-crash-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~fmcsa-crash-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-fmcsa-crash-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Two-letter state abbreviation to filter by (e.g. 'TX', 'CA', 'VA'). Leave empty for all states.",
                        "default": ""
                    },
                    "dotNumber": {
                        "title": "DOT Number",
                        "type": "string",
                        "description": "Federal motor carrier identification number to filter by (e.g. '123456'). Leave empty for all carriers.",
                        "default": ""
                    },
                    "carrierName": {
                        "title": "Carrier Name",
                        "type": "string",
                        "description": "Carrier name to filter by (e.g. 'Swift Transportation'). Partial match supported. Leave empty for all carriers.",
                        "default": ""
                    },
                    "startDate": {
                        "title": "Start Date",
                        "type": "string",
                        "description": "Start date for filtering crash reports (YYYY-MM-DD format, e.g. '2020-01-01').",
                        "default": ""
                    },
                    "endDate": {
                        "title": "End Date",
                        "type": "string",
                        "description": "End date for filtering crash reports (YYYY-MM-DD format, e.g. '2024-12-31').",
                        "default": ""
                    },
                    "truckOrBus": {
                        "title": "Truck or Bus",
                        "enum": [
                            "",
                            "T",
                            "B"
                        ],
                        "type": "string",
                        "description": "Filter by vehicle type: 'T' for truck, 'B' for bus. Leave empty for both types.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 200000,
                        "type": "integer",
                        "description": "Maximum number of crash records to return.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
