FMCSA Carrier Scraper
Pricing
from $12.00 / 1,000 results
FMCSA Carrier Scraper
Search 2M+ US trucking carriers from FMCSA / DOT open data by state, cargo or fleet size: contact, officers, fleet, CSA safety scores, authority + insurance history (revocations, lapses, coverage), crashes and inspections. Lead lists, a change monitor, or full safety profiles. No API key.
Pricing
from $12.00 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 days ago
Last modified
Categories
Share

🚚 FMCSA Carrier Scraper
Search US trucking carriers and brokers from the official FMCSA / DOT open data with no API key. Filter 2M+ carriers by state, cargo, fleet size, operation class, safety rating and registration date, then enrich every row with CSA / SMS BASIC safety scores, the full authority and insurance history, crashes, roadside inspections and out-of-service orders.
Run a lifecycle-change monitor for daily alerts, or pull a complete safety profile for a list of carriers.
🎯 Who uses it?
🚛 Freight brokers
Find new interstate carriers in your lanes, with phone, email and officer names, the day their authority is granted.
🛡️ Insurance underwriters
Pull a carrier's CSA BASIC alerts, out-of-service rate, crash history and every past insurance cancellation before you quote.
💰 Factoring and risk teams
Monitor for insurance lapses and authority revocations, a lapse is a carrier to call, a revocation is one to stop funding.
📇 Equipment, ELD and fuel-card sales
Filter by fleet size and cargo type, keep the officers and contact details.
📊 Compliance analysts
Rank a set of carriers on out-of-service rate and BASIC scores.
✨ What it does
- Search: filter the census for a lead list, by state, cargo, fleet size, operation class, safety rating and registration date.
- Look up: resolve exact USDOT numbers, MC/MX docket numbers, or company names. An identifier that doesn't resolve comes back as its own error row, so the output always matches your input list.
- Monitor: carriers with a new registration, authority revocation, reinstatement, insurance lapse, or out-of-service order since a date, each tagged with the change type.
- Safety: the full safety profile (CSA BASIC scores, authority and insurance history, 24-month inspection and crash detail) for the carriers you name.
- Optional enrichment: CSA / SMS BASIC safety scores, full authority and insurance history, and per-inspection/crash detail, each added only when that data is actually found.
Missing source values are returned as null, never invented.
🏆 Why this scraper
- CSA / SMS BASIC safety scores. The seven Behavior Analysis categories with their raw measures and above-threshold alert flags, plus driver and vehicle out-of-service rates.
- Authority lifecycle, not just current status. Every grant, involuntary revocation and reinstatement with dates, so you can see a carrier that has been revoked three times, or one reinstated last week.
- Insurance history with coverage and lapses. Current insurer and liability limit, plus every past filing with its cancellation date, the signal an underwriter or a factoring company actually acts on.
- A real change monitor. Not just new carriers, an actual lifecycle feed: revocations, lapses and out-of-service orders are the events worth a phone call.
- Fast. Every enrichment is one batched query per dataset, not one request per carrier.
⚖️ How it compares
| Capability | This actor | Other FMCSA scrapers on Apify |
|---|---|---|
| Census: identity, contact, officers, fleet, cargo | yes | yes |
| Filter by state / cargo / fleet size / registration date | yes | some |
| CSA / SMS BASIC safety scores + alert flags | yes | no |
| Authority history (grants / revocations / reinstatements) | yes | current status only |
| Insurance history (insurer, coverage, lapses) | yes | current only, if any |
| 24-month crash + inspection out-of-service detail | yes | counts only |
| Lifecycle-change monitor (revocations, lapses, OOS) | yes | new-carrier delta only |
| One row per look-up input, error rows for bad ids | yes | rare |
📦 What data you get
| Entity | Useful fields |
|---|---|
| Carrier identity | DOT number, MC numbers, legal and DBA name, entity type, operation class, hazmat flag, registration date. |
| Contact | Phone, cell phone, email, officer names, physical and mailing addresses. |
| Fleet & cargo | Power units, truck units, driver counts, and every commodity type carried. |
| Safety | Safety rating, CSA BASIC measures and alerts, out-of-service rates, current out-of-service order. |
| Authority & insurance | Grant/revocation/reinstatement history, current insurer, liability coverage, and every past cancellation. |
| Crash & inspection | 24-month crash counts by severity and inspection out-of-service rate. |
| Monitor | Change type (new registration, revocation, reinstatement, insurance lapse, out-of-service order). |
Every record includes scraped_at (UTC) and a link to the carrier's public SAFER snapshot page. Download your dataset from Apify as CSV, JSON, or Excel.
💡 Use cases
🚛 New reefer carriers in Texas
{ "mode": "search", "state": ["TX"], "operationClass": "interstate", "cargo": ["coldfood"], "minPowerUnits": 5, "maxPowerUnits": 50, "registeredAfter": "2026-06-01", "includeSafety": true, "maxItems": 500 }
🔎 Look up a batch of carriers
{ "mode": "lookup", "identifiers": ["76830", "MC386188", "SWIFT TRANSPORTATION"], "includeHistory": true }
📡 Watch for revocations and insurance lapses
{ "mode": "monitor", "since": "7 days", "events": ["revocation", "insurance_lapse", "oos_order"], "maxItems": 1000 }
🛡️ Full safety profile
{ "mode": "safety", "identifiers": ["370617", "593107"] }
⚙️ How the input is organised
| Section | What it's for |
|---|---|
| Mode | Search, Look up, Monitor, or Safety. |
| Filters | State, operation class, cargo, hazmat, safety rating, fleet size, registration date range, name, active-only. |
| Look up / Safety | DOT/MC numbers or company names to resolve. |
| Monitor | The date to watch changes since, and which change types to include. |
| Enrichment (Search, Look up) | CSA/SMS safety scores, authority and insurance history, and inspection/crash detail. Each only added when that data is found. |
| Advanced | An optional free DOT app token for very large runs. |
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
💰 Pricing
Pay-per-event: a one-time 0.003 when the run starts, plus a price for each kind of record the run produces. You only pay for the kinds you turn on:
| Charged for | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| result | 0.0215 | 0.0183 | 0.0154 | 0.012 |
| Safety record | 0.003 | 0.0026 | 0.0022 | 0.0017 |
| History record | 0.003 | 0.0026 | 0.0022 | 0.0017 |
| Inspections record | 0.003 | 0.0026 | 0.0022 | 0.0017 |
New Apify accounts start with $5 in free credit.
🚀 Run it
- Create a free Apify account with $5 in credit.
- Open the FMCSA Carrier Scraper.
- Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.
🤖 Use with AI agents (MCP)
Give an AI agent live access to the FMCSA Carrier Scraper through the Model Context Protocol:
claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/fmcsa-carrier-scraper"
Then prompt it in plain language to run the scraper and read back the results.
🔧 Troubleshooting
Safety rating is empty for most carriers. Normal: most carriers have never had a compliance review, so FMCSA has no rating for them.
A DOT or MC number returned an error: "not found" row.
Check the number, or try the company name. The output always has one row per identifier you passed.
Monitor mode returned nothing. No carrier matched a change of the selected types since that date. Widen Changed since or add more change types.
Runs are slow or rate-limited. FMCSA open data limits anonymous traffic. Add a free Socrata app token in the input to raise that limit.
❓ FAQ
| Question | Answer |
|---|---|
| Where does the data come from? | FMCSA / DOT public open data, updated daily. |
| What do the extra charges cover? | Safety, history and inspection records are separate rows added only when you turn those options on and data actually exists. |
| Can I build a lead list of new carriers? | Yes, Search mode with Registered on/after, plus state, cargo and fleet size. |
| Does it include contact details? | Yes, phone, email when published, address, and officers. |
| Do I need an API key? | No. A Socrata app token is optional and only raises the rate limit. |
🛡️ Limits & responsible use
This Actor reads only the FMCSA / DOT's own public open data. It never signs in and never accesses anything gated behind an account.
Most carriers have never had a compliance review, so a blank safety rating is normal, not missing data. An unresolved look-up identifier still writes one error: "not found" row rather than failing the run. The underlying data updates daily and runs roughly 24 hours behind live, it is not real-time.
📧 Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
🧪 Local development
bun installbun test # offline: normalisation + input logicbun run src/main.ts # reads storage/key_value_stores/default/INPUT.jsonbun scripts/verify-live.mjs # hits data.transportation.gov directly, checks every mode