FMCSA Carrier Scraper: USDOT & MC Lookup, Trucking Leads avatar

FMCSA Carrier Scraper: USDOT & MC Lookup, Trucking Leads

Pricing

from $6.15 / 1,000 results

Go to Apify Store
FMCSA Carrier Scraper: USDOT & MC Lookup, Trucking Leads

FMCSA Carrier Scraper: USDOT & MC Lookup, Trucking Leads

Scrape the FMCSA / SAFER motor carrier database with no API key. Look up carriers by USDOT number, MC docket, name, state or fleet and get USDOT status, safety rating, cargo, operating authority, insurance, phone and email. Trucking company data and freight carrier leads as JSON, CSV or Excel.

Pricing

from $6.15 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

26

Total users

3

Monthly active users

18 days ago

Last modified

Share

FMCSA Carrier Scraper: USDOT & MC Lookup, Trucking Leads

FMCSA Carrier Scraper: USDOT & MC Number Lookup and Trucking Leads

Scrape the public FMCSA / SAFER motor carrier database with no API key. Look up any US trucking or bus company by USDOT number, MC / MX / FF docket number, legal name, DBA, state, cargo, fleet size or registration date, and export clean records with operating authority, insurance on file, safety rating, contacts and fleet composition. Built for freight sales teams, factoring and insurance companies, compliance analysts and anyone building freight carrier leads or a motor carrier database.

Here is one real result, with every field the actor returns:

{
"dotNumber": 234,
"legalName": "DOUG ANDRUS DISTRIBUTING LLC",
"dbaName": null,
"status": "Active",
"carrierOperation": "Interstate",
"entityType": "CORPORATION",
"carrierRoles": ["Carrier", "Shipper", "Broker"],
"operationClassification": "AUTHORIZED FOR HIRE;EXEMPT FOR HIRE",
"cargoCarried": ["General Freight", "Metal: sheets, coils, rolls", "Motor Vehicles", "Building Materials", "Machinery, Large Objects", "Refrigerated Food", "Chemicals"],
"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",
"cellPhone": null,
"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, "termTrailers": 476, "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,
"registrationDate": "1974-06-01",
"ageInDays": 19088,
"isNewEntrant": false,
"hazmatFlag": true,
"safetyRating": "Satisfactory",
"safetyRatingDate": "2010-04-15",
"latestReviewType": "C",
"latestReviewDate": "2010-04-14",
"recordableCrashRate": null,
"mcsipStep": "0",
"priorRevocation": null,
"mcNumber": "MC123310",
"dockets": [ { "prefix": "MC", "prefixLabel": "Motor Carrier (MC)", "number": "123310", "docket": "MC123310", "status": "Active" } ],
"saferSnapshotUrl": "https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=234",
"authorities": [
{
"docketNumber": "MC123310",
"authorizedFor": ["Property (freight)"],
"commonAuthorityStatus": "Active",
"contractAuthorityStatus": "Active",
"brokerAuthorityStatus": "Active",
"commonRevocationPending": false,
"bipdInsuranceOnFile": 1000000,
"bipdInsuranceRequired": 750000,
"cargoInsuranceOnFile": false,
"bondOnFile": true,
"bondRequired": true
}
],
"insurancePolicies": [
{ "coverageType": "BIPD/Primary", "formCode": "91X", "insurer": "ARCH INSURANCE COMPANY", "policyNumber": "ZACAT3329910", "coverageAmount": 1000000, "effectiveDate": "2026-05-01", "cancellationDate": null },
{ "coverageType": "SURETY", "formCode": "84", "insurer": "TRAVELERS CASUALTY & SURETY CO. OF AMERICA", "policyNumber": "106001291", "coverageAmount": null, "effectiveDate": "2013-10-01", "cancellationDate": null }
],
"leadScore": 100,
"observedAt": "2026-09-04T13:36:05.668Z",
"error": null
}

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

This actor turns the public FMCSA (Federal Motor Carrier Safety Administration) motor carrier registry into clean, structured records you can drop straight into a CRM, spreadsheet or data warehouse. It is a USDOT number lookup, an MC number search, a SAFER carrier lookup and a bulk trucking company data exporter in one:

  • Look up exact carriers by one or many USDOT numbers or MC / MX / FF docket numbers (both resolve to the same carrier).
  • Discover carriers by legal name, DBA, physical state, cargo, operation type, entity role, fleet size and driver count.
  • Build new-carrier lead feeds with a registration-date window (registeredAfter / registeredBefore).
  • Enrich every carrier with its operating authority (common / contract / broker), insurance and bond requirements, and the actual insurance policies on file (insurer, policy number, coverage amount, effective date).

Every record is normalized: addresses and fleet composition are structured objects, dates are YYYY-MM-DD, counts are typed numbers, and missing source values are returned as null and never invented. Two optional AI add-ons write a plain-English carrier summary and surface compliance red flags.

Coverage is US interstate and intrastate motor carriers, brokers, shippers and freight forwarders across all 50 states plus DC and Puerto Rico.

Why this FMCSA scraper

A strict superset of the other FMCSA / trucking actors on Apify: it accepts every input they do and returns every field they do, plus deeper FMCSA coverage most of them skip.

CapabilityThis actorTypical FMCSA leads actor
USDOT number lookup (bulk)YesYes
MC / MX / FF docket lookupYesSome
Name / DBA / state searchYesYes
Carrier operation + entity role filterYesSome
Fleet size (min and max) + min drivers filterYesSome
Registration-date window (new-entrant feeds)YesSome
Phone, email, company officers, DUNSYesPartial (often no officers / DUNS)
Operating authority (common / contract / broker)YesSome
Insurance and bond required vs on fileYesSome
Active insurance policies (insurer, policy no, amount)YesRare
Safety rating + rating dateYesRare
Cargo carried (full list)YesRare
All MC / MX / FF dockets with statusYesUsually primary only
Detailed fleet (owned / leased trucks, tractors, trailers, buses)YesPartial
Lead score + new-entrant flag + SAFER snapshot linkYesSome
AI carrier summary and risk flagsYes (opt-in)No
No API key, no browser, JSON / CSV / ExcelYesVaries

Use cases

  • Freight and 3PL sales: target active carriers by state, cargo and fleet size, then reach out with phone, email and officer names.
  • Factoring and insurance: qualify carriers by authority status, insurance on file, safety rating and lead score.
  • New-authority lead lists: pull carriers registered in the last 30/60/90 days for the classic new-entrant sales play.
  • Compliance and risk: monitor operating-authority and revocation-pending status, safety rating and hazmat flags.
  • Market research: size a segment (for example TX hazmat tankers with 50+ power units) in minutes.

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 or mcNumbers for an exact lookup (all search filters are ignored), or combine legalName, dbaName, state, carrierOperation, entityType, minPowerUnits, maxPowerUnits, minDrivers, hazmatOnly, registeredAfter and registeredBefore to search. Turn off withDetails for a faster census-only run without authority and insurance.

Input reference

FieldTypeRequiredDefaultDescription
dotNumbersstring[]no(empty)Exact carrier lookup by USDOT number, for example 76830. When set, all search filters are ignored.
mcNumbersstring[]no(empty)Exact lookup by MC / MX / FF docket, for example MC123310 or 123310. Resolved to the matching USDOT carrier.
legalNamestringno(empty)Match carriers whose legal name contains this text (case-insensitive).
dbaNamestringno(empty)Match carriers whose doing-business-as name contains this text.
freeTextstringno(empty)Full-text search across all fields of the carrier record.
stateenumno(any)Two-letter physical state, for example CA, TX, PR.
carrierOperationenumnoAnyInterstate, Intrastate Hazmat or Intrastate Non-Hazmat.
entityTypeenumnoAnyRegistered role: Carrier, Broker, Shipper or Freight Forwarder.
minPowerUnitsintegerno(none)Only carriers with at least this many power units.
maxPowerUnitsintegerno(none)Only carriers with at most this many power units.
minDriversintegerno(none)Only carriers with at least this many drivers.
hazmatOnlybooleannofalseOnly carriers flagged for hazardous materials.
registeredAfterstringno(none)Only carriers added to FMCSA on/after this date (YYYY-MM-DD).
registeredBeforestringno(none)Only carriers added to FMCSA on/before this date (YYYY-MM-DD).
activeOnlybooleannotrueOnly carriers with an active USDOT status.
withDetailsbooleannotrueEnrich each carrier with MC/docket, operating authority, insurance requirements and policies on file.
maxCarriersintegerno10Maximum carrier records to collect. Free plans are capped at 10.
withProfileSummarybooleannofalseAI plain-English carrier summary. Billed per enriched record; paid plans only.
withRiskbooleannofalseAI operational and compliance red flags. Billed per enriched record; paid plans only.

Filters combine with logical AND. Use dotNumbers / mcNumbers for precise lookups; use the search filters for discovery.

Output reference

One dataset item per carrier. Types: string, integer, boolean, object, array, or null when the source value is absent.

FieldTypeDescription
dotNumberintegerUSDOT number (unique per carrier).
legalName / dbaNamestringLegal and doing-business-as name.
statusstringUSDOT status, for example Active, Inactive.
carrierOperationstringInterstate, Intrastate Hazmat or Intrastate Non-Hazmat.
entityTypestringLegal organization type, for example CORPORATION.
carrierRolesstring[]Registered roles: carrier, shipper, broker, freight forwarder.
operationClassificationstringOperation classification, for example AUTHORIZED FOR HIRE.
cargoCarriedstring[]Cargo categories the carrier hauls.
countystringCounty code of the physical address.
address / mailingAddressobjectPhysical and mailing address.
phone / cellPhone / fax / emailstringContact details on file.
companyOfficersstring[]Listed company officer names.
dunsNumberstringDUNS number, or null.
powerUnits / driversintegerFleet size and total drivers.
fleetobjectOwned / leased trucks, tractors, trailers and buses.
totalCdlDrivers / interstateDrivers / intrastateDriversintegerDriver breakdown.
driversByRadiusobjectDriver counts by radius (interstate/intrastate, within/beyond 100 miles).
mcs150Date / mcs150Mileage / mcs150MileageYearmixedLatest MCS-150 filing date, mileage and mileage year.
registrationDate / ageInDays / isNewEntrantmixedFMCSA add date, age in days and new-entrant flag.
hazmatFlagbooleanWhether the carrier is flagged for hazmat.
safetyRating / safetyRatingDatestringFMCSA safety rating (Satisfactory / Conditional / Unsatisfactory) and date.
latestReviewType / latestReviewDatestringMost recent compliance review type and date.
recordableCrashRatenumberRecordable crash rate when published, else null.
mcsipStep / mcsipDatemixedMotor Carrier Safety Improvement Program step and date.
priorRevocationobjectPrior revocation flag and prior USDOT, or null.
mcNumber / docketNumberstringPrimary MC/docket number.
docketsarrayAll MC / MX / FF dockets with prefix, number and status.
saferSnapshotUrlstringDeep link to the official SAFER company snapshot.
authoritiesarrayOperating authority (common/contract/broker) with status, application/revocation-pending flags, and insurance/bond required vs on file.
insurancePoliciesarrayActive/pending insurance policies: coverageType, insurer, policyNumber, formCode, coverageAmount, effectiveDate, cancellationDate.
leadScoreintegerHeuristic 0-100 score (activity, contacts, fleet, authority, filing freshness).
observedAtstringISO 8601 timestamp of collection.
errorstringnull on success. On a failed run a single item with a populated error field is written instead.
aiProfileSummary / aiRiskFlags / aiRiskLevelmixedOptional AI add-on fields.

Run via API and CLI

Start a run and 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 '{"mcNumbers":["MC123310"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per carrier record returned (result event). See the pricing tab for current prices.
  • Details enrichment. When withDetails is on, each carrier's operating authority and insurance are billed once per carrier, only on a successful detail fetch.
  • AI add-ons. withProfileSummary and withRisk are billed per successfully processed record and require a paid Apify plan. They are skipped for free users.
  • No charge on failure. If a run errors it writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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

Do I need an FMCSA or SAFER API key? No. There is no API key, login or setup. Just pass your filters and run.

Can I look up by MC number instead of USDOT? Yes. Put MC, MX or FF docket numbers in mcNumbers (with or without the MC prefix). Each is resolved to the matching USDOT carrier and deduplicated against any dotNumbers you also pass.

A run returned 0 records. Why? The filter combination matched nothing. Loosen filters (for example remove minPowerUnits or widen the name), or confirm the USDOT/MC number is correct. Zero-result runs are not charged.

What is in the authorities and insurancePolicies fields? authorities holds operating authority (common, contract, broker) with status and pending flags, plus insurance and bond required versus on file. insurancePolicies lists the actual active policies with insurer name, policy number and coverage amount. Both populate when withDetails is on.

Why is a field null? Not every carrier reports every field (for example DBA, DUNS, cell phone, safety rating or crash rate). Missing source values are returned as null, never invented.

How current is the data? It reflects the latest publicly published FMCSA registry, licensing and insurance data at run time.

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 data. Use the results in accordance with the source's terms.

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 data. Use the results in accordance with the source's terms.