SAFER FMCSA DOT Crawler

Crawl the SAFER DOT.GOV database for publicly registered vehicles. Supports Address, phone, email, DUNS and other registration details. Perfect for Lead Generat

Overview

The FMCSA DOT Crawler collects structured information about U.S. motor carriers directly from the FMCSA SAFER "Company Snapshot" pages. It supports keyword‑style filtering (DOT range, state, fleet size, etc.) and an optional Premium mode that adds crash statistics, safety ratings and public email addresses.

Typical use–cases include:

Lead generation for logistics or insurance companies

Competitor or market‑size analysis

Compliance monitoring and risk assessment

Building datasets of motor carriers for analysis

Monitoring FMCSA updates for compliance or reporting

Integrating carrier data with logistics systems

Key Features

Comprehensive Data Extraction: Scrapes legal names, DBA names, phone numbers, addresses, operational stats, and cargo types.

Flexible filters – pull only the carriers you need by DOT number window or add‑date.

Straight‑forward output – each company snapshot is returned as a single JSON object that is easy to ingest downstream.

Resilient crawling – automatic retries, exponential back‑off and proxy rotation keep the run moving even when SAFER throttles.

Efficient Processing – optimized for crawling millions of records with fast and memory-efficient streaming

Input Schema

The scraper reads the parameters below at run‑time. Required fields are marked bold.

Field

Type

Description

dot_start

integer

First DOT number to process (inclusive)

max_results

integer

Maximum number of records to process (0 → no limit)

dot_end

integer

Last DOT number to process (inclusive). Defaults to 10,000,000

add_after_date

string (YYYY‑MM‑DD)

Include only carriers registered on or after this date

sp_intended_usage

string

Short sentence describing how you plan to use the data.

sp_improvement_suggestions

string

Your feedback for future upgrades.

sp_contact

string

Contact email where we can reach you for feedback/collaboration

Example Input

{

"dot_start": 2000000,

"max_results": 10000,

"dot_end": 2100000,

"add_after_date": "2020-01-01",

"sp_intended_usage": "Outbound prospecting list for carriers",

"sp_improvement_suggestions": "Option to filter by cargo type"

"sp_contact": "john@example.com"

}

Output Fields

Each successful company snapshot is returned as a flat JSON object:

Field

Standard

Premium

DOT_num

entity_type, legal_name, dba_name

mc_mx_ff_numbers

phone, physical_address, mailing_address

power_units, drivers

cargo_carried, carrier_operation, operation_classification

DUNS_num

inspections_us (vehicle / driver / hazmat / iep)

inspections_ca (vehicle / driver)

email


crashes_us (fatal / injury / tow / total)


crashes_ca (fatal / injury / tow / total)


safety_rating (rating_date / review_date / rating / type)


Sample (Standard)

{

"DOT_num": "2802023",

"entity_type": "Carrier",

"legal_name": "Example Logistics LLC",

"dba_name": "Example Trucks",

"mc_mx_ff_numbers": "MC‑123456",

"phone": "555‑123‑4567",

"physical_address": "123 Main St, Springfield, IL",

"mailing_address": "PO Box 456, Springfield, IL",

"power_units": "50",

"drivers": "75",

"cargo_carried": ["General Freight", "Household Goods"],

"carrier_operation": ["Interstate"],

"operation_classification": ["For Hire"],

"DUNS_num": "012345678",

"inspections_us": { "vehicle": "10", "driver": "2", "hazmat": "0", "iep": "0" },

"inspections_ca": { "vehicle": "–", "driver": "–" }

}

Field

Type

Description

DOT_num

string

DOT registration number

entity_type

string

Business type (CARRIER, BROKER, FREIGHT FORWARDER, etc.)

legal_name

string

Legal business name

dba_name

string

"Doing Business As" name

mcs150_date

string

MCS-150 form update date (MM-DD-YY format)

mcs150_mileage

string

Annual mileage reported on MCS-150

mcs150_mileage_year

string

Year for reported mileage

mc_mx_ff_numbers

string

MC/MX/FF docket numbers

phone

string

Primary phone number (digits only)

cell_phone

string

Cell phone number

physical_address

string

Physical business address

mailing_address

string

Mailing address

power_units

integer

Number of power units (trucks, tractors)

drivers

integer

Total number of drivers

truck_units

integer

Number of truck units

bus_units

integer

Number of bus units

fleet_size

string

Fleet size category (e.g., "1", "2-3", "4-6", "76-100", etc.)

cargo_carried

array

Types of cargo transported

carrier_operation

array

Operation type (Interstate, Intrastate Only, etc.)

operation_classification

array

Operational classifications

company_officer_1

string

Primary company officer

company_officer_2

string

Secondary company officer

DUNS_num

string

Dun & Bradstreet number

email

string

Email address (when available in source data)

inspections_us

object

US inspection counts (driver, vehicle, hazmat, iep)

inspections_ca

object

Canadian inspection counts (currently null)

Sample Output

{

"DOT_num": "2802023",

"entity_type": "CARRIER",

"legal_name": "Example Logistics LLC",

"dba_name": "Example Trucks",

"mcs150_date": "09-06-24",

"mcs150_mileage": "120000",

"mcs150_mileage_year": "2024",

"mc_mx_ff_numbers": "MC123456",

"phone": "5551234567",

"cell_phone": "5559876543",

"physical_address": "123 Main St, Springfield, IL, 62701, US",

"mailing_address": "PO Box 456, Springfield, IL, 62701, US",

"power_units": 50,

"drivers": 75,

"truck_units": 45,

"bus_units": 0,

"fleet_size": "45-55",

"cargo_carried": ["General Freight", "Building Materials"],

"carrier_operation": ["Interstate"],

"operation_classification": ["For Hire"],

"company_officer_1": "John Smith",

"company_officer_2": "Jane Doe",

"DUNS_num": "012345678",

"email": "contact@examplelogistics.com",

"inspections_us": {

"driver": "12",

"vehicle": "8",

"hazmat": "2",

"iep": "0"

},

}

Notes & Best Practices

Stick to a single primary filter per run – combining filters is currently not supported.

Records are filtered to include only active carriers (STATUS_CODE = 'A')

Phone numbers are cleaned to contain only digits

MCS-150 dates are formatted from YYYYMMDD to MM-DD-YY for consistency

Need More Features?

If you'd like to add new data fields to this scraper or need a custom scraper for another purpose, feel free to file an issue or get in touch! We are open to customizing the scraper to suit your needs.

Why Choose This Scraper?

Efficient: Processes a high volume of requests with intelligent retries and session management.

Customizable: Tailor input options to suit your scraping needs.

Reliable: Leverages robust error-handling and proxy configurations for uninterrupted scraping.

Flexible: Process only the records you need

Proxies and Anti-blocking

This scraper uses the Apify Proxy or your custom proxy settings to reduce the risk of being blocked. It supports automatic session management for smooth operation.

Resources

Enhance your transportation data collection capabilities with the FMCSA DOT Crawler. Get started today!

Ready to get started?

Try SAFER FMCSA DOT Crawler free on the Apify platform.