New Trucking Company Leads — Fresh FMCSA Authority Grants
Pricing
from $20.00 / 1,000 leads
New Trucking Company Leads — Fresh FMCSA Authority Grants
Motor carriers that just received operating authority, from the official FMCSA census — with phone, email, address, fleet size and insurance status. Roughly 3,200 new carriers a week. For insurance agents, factoring companies, ELD vendors and dispatch services who need the lead fresh.
Pricing
from $20.00 / 1,000 leads
Rating
0.0
(0)
Developer
Omega Point Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
New Trucking Company Leads (FMCSA)
Motor carriers that just received federal operating authority, with the contact details needed to actually call them. Roughly 3,200 new carriers per week.
Source is the official FMCSA Motor Carrier Census on the US DOT open-data portal. Public federal records, published for reuse — no logins, no protected pages, no captcha solving.
Who buys this
Commercial trucking insurance agents, freight factoring companies, ELD and dashcam vendors, dispatch services, and equipment finance brokers. A new carrier must arrange insurance almost immediately and typically shops factoring in the first month, so the lead is valuable this week and close to worthless in ninety days.
Field coverage (measured, not promised)
Sampled live from 400 carriers granted authority since 2026-07-01:
| Field | Populated |
|---|---|
legal_name | 100% |
phone | 100% |
email | 100% |
city / state | 100% |
power_units | 100% |
total_drivers | 98% |
cell_phone | 38% |
About the insurance status — read this before filtering on it
The Actor joins the FMCSA Licensing & Insurance file to report each carrier's BIPD filing. That file lags the authority grant by about 90 days. Measured against the live data on 2026-08-08:
| Carrier age | Has a filing on record |
|---|---|
| 0–30 days | 0% |
| 31–60 days | 0% |
| 61–90 days | 2% |
| 91–180 days | 22% |
So a brand-new carrier showing no insurance filing is not evidence that it is
uninsured — it is the normal state of every new carrier, because the paperwork has
not propagated yet. Those leads are labelled filing_status_unknown rather than
implying a coverage gap. Absence only starts to mean something after 90 days, by
which point the lead is no longer fresh. Segments insurance_cancelled and
insurance_lapsing_soon are trustworthy whenever a filing exists.
We would rather tell you this than sell you a segment that falls apart on your first ten phone calls.
Output
One record per carrier, ranked by lead_score (0–100), which is driven mainly by
how recently authority was granted. Every record carries score_reasons so the
ranking can be audited and argued with, plus the source dataset URLs behind it.
A RUN_REPORT in the key-value store lists carriers scanned, leads returned,
segment counts, and how fresh the federal feed was at run time. If the census has
not updated in more than 10 days the run fails rather than selling stale leads.
Compliance — your responsibility, not ours
This Actor returns federal public records exactly as published. It performs no Do-Not-Call scrubbing, no consent checking, and no verification of any kind, and nothing in the output should be read as screening, vetting, or authorization.
If you call or text these numbers you are responsible for the TCPA, the federal
and state Do-Not-Call registries, and CAN-SPAM for email. Note that many
owner-operators register a mobile number — cell_phone is a field in the source
data. Talk to your own counsel about your calling practices before you dial.
Running it locally
pip install -r requirements.txtpython3 tools/smoke.py 14 600 # live end-to-end check, no Actor runtime
A note for maintainers
The two source files disagree about dot_number formatting: the census stores
4669071, the insurance file stores 04100741, zero-padded to 8. Joining them raw
silently matches nothing and makes every carrier look uninsured. Always go through
fmcsa.canon_dot().
Likewise, the insurance date columns are MM/DD/YYYY strings, so they do not
sort chronologically — max(trans_date) returns 12/31/2025 over a file full of
2026 rows. Never put those columns in a $where or $order; parse them in Python.