FMCSA Motor Carrier & USDOT Number Scraper (USA)
Pricing
from $6.15 / 1,000 results
FMCSA Motor Carrier & USDOT Number Scraper (USA)
Extract US motor carrier records from the public FMCSA census across all 50 states. Get USDOT number, legal and DBA name, address, phone, email, power units, drivers, MCS-150 date, mileage and hazmat flag. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
FMCSA Motor Carrier & USDOT Number Scraper (USA)
Here is one real result, with every field the actor returns:
{"dotNumber": 2662,"legalName": "STAN ALLES","dbaName": "STAN ALLES TRANSPORT","status": "Active","carrierOperation": "Interstate","entityType": null,"operationClassification": "AUTHORIZED FOR HIRE","county": "019","address": { "street": "4601 N JAMESON AVE", "city": "FRESNO", "state": "CA", "zip": "93723", "country": "US" },"mailingAddress": { "street": "PO BOX 908", "city": "BIOLA", "state": "CA", "zip": "93606", "county": "019", "country": "US" },"phone": "5598429424","fax": null,"email": "stanley@stanallestransport .com","companyOfficers": ["STANLEY ALLES, JR", "STAN ALLES"],"dunsNumber": "186435657","powerUnits": 14,"drivers": 12,"fleet": { "ownTrucks": 14, "ownTractors": 14, "termTractors": null, "tripTractors": null, "buses": 0 },"totalCdlDrivers": 0,"interstateDrivers": 12,"intrastateDrivers": 0,"driversByRadius": { "interstateWithin100Miles": 0, "interstateBeyond100Miles": 12, "intrastateWithin100Miles": 0, "intrastateBeyond100Miles": 0 },"mcs150Date": "2026-01-07","mcs150Mileage": 950000,"mcs150MileageYear": 2025,"hazmatFlag": true,"docketNumber": "MC649082","authorities": [{"docketNumber": "MC649082","authorizedFor": ["Property (freight)"],"commonAuthorityStatus": "Active","contractAuthorityStatus": "None","brokerAuthorityStatus": "None","bipdInsuranceOnFile": 5000000,"bipdInsuranceRequired": 5000000,"cargoInsuranceOnFile": false,"cargoInsuranceRequired": false,"bondOnFile": false,"bondRequired": false}],"observedAt": "2026-08-14T07:51:10.260Z","error": null,"aiProfileSummary": "Stan Alles Transport is an active interstate trucking company based in Fresno, CA, operating a fleet of 14 power units and employing 12 drivers. The carrier is authorized for hire and has hazmat capabilities, with an annual mileage of approximately 950,000.","aiRiskFlags": [],"aiRiskLevel": "low"}
The most complete FMCSA motor carrier scraper available. It returns every field the public FMCSA census exposes for each USDOT carrier, plus operating authority and insurance on file, company officers, fleet composition and two optional AI add-ons, and gives you filters by USDOT number, name, state and fleet size to target exactly the carriers you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads the public FMCSA (Federal Motor Carrier Safety Administration) motor carrier census across all 50 states, applies the filters you pass as input, and writes one normalized record per carrier to the run's dataset. By default it enriches each carrier with its MC/docket number, operating-authority status and insurance coverage on file. Missing source values are returned as null, addresses and fleet composition are structured into nested objects, and numeric fields (power units, drivers, mileage) are typed so you can sort and filter without extra parsing.
Coverage is US interstate and intrastate motor carriers by USDOT number. Two optional AI add-ons (withProfileSummary, withRisk) write a plain-English carrier summary and surface operational or compliance red flags with a low/medium/high level; both are billed per successfully processed record and require a paid Apify plan.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the first 10 active carriers with operating authority and insurance.
{"maxCarriers": 10,"withDetails": true,"activeOnly": true}
Every input field is optional. Pass dotNumbers for an exact lookup (all other filters are ignored), or combine legalName, dbaName, state, minPowerUnits and freeText to search. Turn off withDetails for a faster census-only run without authority and insurance.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
dotNumbers | string[] | no | (empty) | Exact carrier lookup by USDOT number, for example 76830. When set, all other filters are ignored. |
legalName | string | no | (empty) | Match carriers whose legal name contains this text (case-insensitive). |
dbaName | string | no | (empty) | Match carriers whose doing-business-as name contains this text (case-insensitive). |
freeText | string | no | (empty) | Full-text search across all fields of the carrier record. |
state | enum | no | (any) | Two-letter physical state of the carrier, for example CA, TX, PR. |
minPowerUnits | integer | no | (none) | Only return carriers operating at least this many power units (trucks, tractors, buses). |
activeOnly | boolean | no | true | When on, only carriers with an active status are returned. |
withDetails | boolean | no | true | Enrich each carrier with MC/docket number, operating-authority status and insurance on file. |
maxCarriers | integer | no | 10 | Maximum carrier records to collect. Free plans are capped at 10. |
withProfileSummary | boolean | no | false | AI plain-English carrier summary. Billed per enriched record; paid plans only. |
withRisk | boolean | no | false | AI operational and compliance red flags with a low/medium/high level. Billed per enriched record; paid plans only. |
Filters combine with logical AND. Use dotNumbers for precise lookups; use name, state and fleet-size filters for discovery.
Output reference
One dataset item per carrier. Types: string, integer, boolean, object, array, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
dotNumber | integer | USDOT number (unique per carrier). |
legalName | string | Carrier legal name. |
dbaName | string | Doing-business-as name, or null. |
status | string | Carrier status, for example Active, Inactive. |
carrierOperation | string | Interstate or Intrastate. |
entityType | string | Entity type, for example CORPORATION, or null. |
operationClassification | string | Operation classification, for example AUTHORIZED FOR HIRE. |
county | string | County code of the physical address. |
address | object | Physical address (street, city, state, zip, country). |
mailingAddress | object | Mailing address (street, city, state, zip, county, country). |
phone | string | Carrier phone. |
fax | string | Carrier fax, or null. |
email | string | Carrier email. |
companyOfficers | string[] | Listed company officer names. |
dunsNumber | string | DUNS number, or null. |
powerUnits | integer | Number of power units (trucks, tractors, buses). |
drivers | integer | Total number of drivers. |
fleet | object | Fleet composition (ownTrucks, ownTractors, termTractors, tripTractors, buses). |
totalCdlDrivers | integer | Number of CDL drivers. |
interstateDrivers | integer | Number of interstate drivers. |
intrastateDrivers | integer | Number of intrastate drivers. |
driversByRadius | object | Driver counts by radius (interstate/intrastate, within/beyond 100 miles). |
mcs150Date | string | Last MCS-150 filing date (YYYY-MM-DD). |
mcs150Mileage | integer | Mileage reported on the MCS-150. |
mcs150MileageYear | integer | Year the MCS-150 mileage applies to. |
hazmatFlag | boolean | Whether the carrier is flagged for hazmat. |
docketNumber | string | Primary MC/docket number. |
authorities | array | Operating authority and insurance on file. Each entry has docketNumber, authorizedFor, commonAuthorityStatus, contractAuthorityStatus, brokerAuthorityStatus, bipdInsuranceOnFile, bipdInsuranceRequired, cargoInsuranceOnFile, cargoInsuranceRequired, bondOnFile, bondRequired. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
aiProfileSummary | string | AI plain-English carrier summary (add-on). |
aiRiskFlags | array | AI operational and compliance red flags (add-on). |
aiRiskLevel | string | AI overall risk level low, medium or high (add-on). |
Example output record
Real record from a live run without AI add-ons (input {"maxCarriers":10,"withDetails":true,"activeOnly":true}):
{"dotNumber": 234,"legalName": "DOUG ANDRUS DISTRIBUTING LLC","dbaName": null,"status": "Active","carrierOperation": "Interstate","entityType": "CORPORATION","operationClassification": "AUTHORIZED FOR HIRE;EXEMPT FOR HIRE","county": "019","address": { "street": "6300 S 45TH WEST", "city": "IDAHO FALLS", "state": "ID", "zip": "83402", "country": "US" },"mailingAddress": { "street": "6300 S 45TH WEST", "city": "IDAHO FALLS", "state": "ID", "zip": "83402", "county": "019", "country": "US" },"phone": "2085336700","fax": null,"email": "nathan.chatriand@dougandrus.com","companyOfficers": ["JASON ANDRUS", "CLAY MURDOCH"],"dunsNumber": "188398226","powerUnits": 255,"drivers": 255,"fleet": { "ownTrucks": 255, "ownTractors": null, "termTractors": 254, "tripTractors": null, "buses": 0 },"totalCdlDrivers": 255,"interstateDrivers": 255,"intrastateDrivers": 0,"driversByRadius": { "interstateWithin100Miles": 0, "interstateBeyond100Miles": 255, "intrastateWithin100Miles": 0, "intrastateBeyond100Miles": 0 },"mcs150Date": "2025-02-20","mcs150Mileage": 25160964,"mcs150MileageYear": 2024,"hazmatFlag": true,"docketNumber": "MC123310","authorities": [{"docketNumber": "MC123310","authorizedFor": ["Property (freight)"],"commonAuthorityStatus": "Active","contractAuthorityStatus": "Active","brokerAuthorityStatus": "Active","bipdInsuranceOnFile": 1000000,"bipdInsuranceRequired": 750000,"cargoInsuranceOnFile": false,"cargoInsuranceRequired": false,"bondOnFile": true,"bondRequired": true}],"observedAt": "2026-08-10T14:05:21.247Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~fmcsa-carriers-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"state":"CA","minPowerUnits":10,"maxCarriers":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~fmcsa-carriers-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"legalName":"transport","state":"TX","maxCarriers":100}'
Apify CLI:
apify call scrapers_lat/fmcsa-carriers-scraper \--input '{"dotNumbers":["234"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per carrier record returned (
resultevent). See the pricing tab for the current per-result price. - AI add-ons.
withProfileSummaryandwithRiskare billed separately per successfully processed record and require a paid Apify plan. They are skipped for free users. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 carriers per run. Upgrade for higher
maxCarriers.
FAQ and troubleshooting
A run returned 0 records. Why?
The filter combination matched nothing in the census. Loosen filters (for example remove minPowerUnits or widen the name), or confirm the USDOT number is correct. Zero-result runs are not charged.
How do I look up specific carriers?
Pass one or more USDOT numbers in dotNumbers. When set, all other filters are ignored and each number is matched exactly.
What is in the authorities field?
The carrier's operating authority (common, contract, broker) with its status, plus insurance and bond coverage on file versus required. It is populated when withDetails is on.
Why is a field null?
Not every carrier reports every field (for example DBA name, DUNS or fax). Missing source values are returned as null, never invented.
What do the AI fields do?
withProfileSummary writes a short plain-English carrier summary. withRisk surfaces operational and compliance red flags with an overall level. Both are optional, billed per record, and require a paid plan.
Is this an official FMCSA tool? No. This actor is independent and has no affiliation with the FMCSA or the US Department of Transportation. It reads only publicly available carrier census data. Use the results in accordance with the source's terms.
Related scrapers
- USAspending Federal Award Scraper: US federal prime awards from USAspending.gov.
- Grants.gov Opportunity Scraper: US federal grant opportunities from the official Grants.gov API.
- NPPES NPI Provider Scraper: US healthcare provider records from the official NPPES NPI Registry.
- BizQuest Businesses-for-Sale Listings Scraper: US businesses-for-sale listings with broker or seller contact.
- California CSLB Contractor License Scraper: Licensed California contractor records from the CSLB public data portal.
- Florida Professional License Scraper: Florida DBPR professional license records by name, business or license number.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the FMCSA or the US Department of Transportation. Accesses only publicly available carrier census data. Use the results in accordance with the source's terms.
