Carrier Vetting API — FMCSA Authority, Insurance History & Risk avatar

Carrier Vetting API — FMCSA Authority, Insurance History & Risk

Pricing

from $20.00 / 1,000 carrier vetteds

Go to Apify Store
Carrier Vetting API — FMCSA Authority, Insurance History & Risk

Carrier Vetting API — FMCSA Authority, Insurance History & Risk

Vet US motor carriers by USDOT or MC number: operating authority with reinstatement/suspension history, insurance filings with pending cancellations, BOC-3, safety & OOS, dated change events and audience-specific risk signals. FMCSA QCMobile + Motus open data.

Pricing

from $20.00 / 1,000 carrier vetteds

Rating

0.0

(0)

Developer

Bory Abdurakhmonov

Bory Abdurakhmonov

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Categories

Share

Carrier Vetting API — FMCSA Authority, Insurance History, Changes & Risk (USDOT/MC)

Vet US motor carriers the way an experienced compliance analyst would — not just "is the authority active right now?", but what happened to this carrier lately and what is about to happen. One call takes a list of USDOT or MC numbers and returns, per carrier: operating authority by type with status dates and reinstatements, insurance filings with pending cancellations and replacement detection, served suspension notices with their effective dates, BOC-3, safety rating and out-of-service data, a dated event timeline, audience-specific risk signals, and a plain-English summary with a LOW / MEDIUM / HIGH risk level.

Everything is built from official FMCSA data: the QCMobile API and the FMCSA Motus Licensing & Insurance open datasets (the successor to the L&I website), refreshed daily.

What you get

One dataset item per carrier (also available as JSON over HTTP in Standby mode):

  • Profile — legal name, DBA, entity type, MC/docket numbers, address, phone, fleet size, drivers, MCS-150 date.
  • Authority — per type (common carrier / broker) with status (granted, reinstated, suspended, revoked, pending, none), the date and FMCSA reason of the last change, the original grant date, and — uniquely — suspension_effective when FMCSA has served a suspension notice that has not taken effect yet.
  • Insurance — BIPD required vs on file, every active filing (insurer, policy, coverage, effective date) plus recently terminated policies, and a derived pending_cancellation object: which policy is being cancelled, when it takes effect, and whether a replacement policy is already on file (a cancellation with a replacement is routine; one without is a red flag).
  • Events — dated changes from the last 90 days (authority_reinstated, insurance_cancellation_filed, authority_suspension_pending, insurance_replaced, …), each with FMCSA row-level evidence references. includeTimeline: true adds the full history window (default 365 days).
  • Signals — rule-driven, tuned per audience (broker, insurance, factoring, vendor, generic): e.g. AUTHORITY_SUSPENSION_PENDING (HIGH for brokers, with days-until-effective), INSURANCE_CANCELLATION_PENDING vs INSURANCE_REPLACED_PENDING_CANCEL (lead lost, for insurance sellers), NEW_CARRIER (opportunity for vendors).
  • Risk + summaryLOW/MEDIUM/HIGH with explicit reasons, and a four-line human summary (CURRENT / RECENT / IMPORTANT) you can drop into Slack, a TMS note, or an underwriting file.

Why history matters

Real carrier, real data — USDOT 3224925 (H TWO TRUCKING INC, Fresno CA), as vetted on Aug 30 2026:

  • Jul 13 — BIPD policy replaced
  • Aug 1 — operating authority involuntarily suspended (insurance cancellation, no active coverage)
  • Aug 3 — FMCSA served a suspension notice, effective Sep 2
  • Aug 15 — new BIPD policy filed (Motor Transport Mutual RRG)
  • Aug 29 — authority reinstated
  • A cancellation of the prior policy is still pending, effective Sep 2 — replacement is on file

A snapshot-only lookup — which is what typical carrier APIs return — says: authority active, insurance active. This Actor says: risk MEDIUM — reinstated 1 day ago after an insurance lapse, a suspension notice is dated to take effect in 3 days (likely superseded by the reinstatement), prior policy cancellation effective Sep 2 with replacement on file. That is the difference between booking a load blind and booking it with your eyes open. Carriers that lapse once tend to lapse again; factoring companies and insurers price exactly this pattern.

Example output

{
"dot": "3224925",
"profile": { "legal_name": "H TWO TRUCKING INC", "status": "active", "mc": ["MC-1009988"], "power_units": 2 },
"authority": { "overall": "granted", "common": { "status": "reinstated", "status_date": "2026-08-29", "reason": "Reinstated", "suspension_effective": "2026-09-02" } },
"insurance": {
"bipd_required": 750000, "bipd_on_file": 750000, "boc3_on_file": true,
"filings": [
{ "type": "bipd", "insurer": "Motor Transport Mutual Risk Retention Group, Inc.", "policy": "SLHMI396500", "effective": "2026-08-15", "status": "active" },
{ "type": "bipd", "insurer": "Universal Casualty Risk Retention Group, Inc", "policy": "URG02555", "cancellation_effective": "2026-09-02", "status": "cancellation_pending" }
],
"pending_cancellation": { "policy": "URG02555", "effective": "2026-09-02", "replacement_on_file": true }
},
"events": [
{ "occurred_at": "2026-08-29", "type": "authority_reinstated" },
{ "occurred_at": "2026-08-15", "type": "insurance_filed" },
{ "occurred_at": "2026-08-03", "type": "authority_suspension_pending" },
{ "occurred_at": "2026-08-01", "type": "authority_suspended" }
],
"signals": [
{ "severity": "HIGH", "signal": "AUTHORITY_SUSPENSION_PENDING", "daysUntilEffective": 3 },
{ "severity": "MEDIUM", "signal": "INSURANCE_REPLACED_PENDING_CANCEL" }
],
"riskLevel": "MEDIUM",
"summary": "DOT 3224925 — H TWO TRUCKING INC\nCURRENT: authority active (reinstated Aug 29) · insurance active · no OOS · risk MEDIUM\nRECENT: … \nIMPORTANT: authority suspension notice effective in 3 days …; prior policy cancellation effective Sep 2 — replacement policy is on file.",
"sources": ["qcmobile", "motus"]
}

Input

FieldTypeDefaultNotes
usdotNumbersstring[]Up to 500 per run.
mcNumbersstring[]MC1009988 / MC-133655; resolved via FMCSA QCMobile. Unresolvable dockets become per-item error records; the run continues.
includeTimelinebooleanfalseFull dated history per carrier (billed as full-report).
audienceenumgenericbroker · insurance · factoring · vendor · generic.
maxHistoryDaysinteger365History window for the timeline and derived events.

Standby mode (API-style): GET https://<actor-standby-url>/vet/3224925?audience=broker&includeTimeline=true returns the same item as JSON.

Pricing

Pay-per-event — you pay for what the run actually does, and the run stops cleanly at your Maximum total charge:

EventPriceWhen
run-start$0.005Once per run.
carrier-vet$0.02Per carrier vetted (current state + 90-day events + signals).
full-report$0.15Per carrier when includeTimeline is on (full dated history).

Free Apify plans are capped at 5 carriers per run. 500 carriers ≈ $10.00 (or $75.00 with timelines).

For freight brokers / factoring / insurance

  • Brokers: onboarding + pre-tender checks. AUTHORITY_SUSPENSION_PENDING and INSURANCE_CANCELLATION_PENDING (no replacement filed) are the two signals that prevent hauling a load for a carrier who legally cannot run next week.
  • Factoring: CARRIER_RISK_INCREASED, recent reinstatements and shrinking fleets flag invoices that may be at risk; the timeline shows whether a carrier's lapse is a one-off or a habit.
  • Insurance agents: INSURANCE_SALES_LEAD fires when a cancellation is filed without a replacement — a shoppable carrier; INSURANCE_REPLACED_PENDING_CANCEL (lead lost) keeps your outreach list clean. NEW_CARRIER catches fresh authorities that must file coverage now.

Data sources & freshness

  • FMCSA QCMobile API (official): carrier census, fleet, safety rating, OOS rates, docket→USDOT resolution.
  • FMCSA Motus open datasets on data.transportation.gov (official, the L&I system of record): operating-authority status and history, insurance filings and cancellation history, BOC-3, suspension/revocation notices. FMCSA targets refreshing these daily by 09:30 ET.
  • SAFER is used only as a fallback when both primaries are unavailable.

Each event carries evidence references (source, dataset id, row key, retrieval time). When the operator's state database is enabled, results are diffed against stored history, so events are changes actually observed over time, not inferences from a single snapshot.

Not a consumer report (FCRA)

This Actor republishes and analyzes public FMCSA safety and licensing records about businesses. It is not a consumer reporting agency and its output is not a consumer report under the Fair Credit Reporting Act. Do not use it to determine a natural person's eligibility for credit, insurance, employment, housing, or any other FCRA-governed purpose. Data is provided as-is from FMCSA sources, which are themselves snapshots; always verify time-critical facts (e.g. today's insurance status) with FMCSA before acting.

FAQ

How current is the data? Motus datasets refresh daily by ~09:30 ET; QCMobile is near-real-time. Each item carries observedAt and per-source retrieval times.

What happens with a DOT that does not exist? A per-item error record ({ "input": "999", "error": "not found …" }); the run continues and you are not charged for it.

Can I call it like a REST API? Yes — enable Standby and GET /vet/:dot. Runs are better for batches (500 per run).

Why do some carriers show no insurance filings? Intrastate carriers and carriers without for-hire interstate authority are not in the FMCSA L&I system; you still get census/safety data via QCMobile.

Do you store my input? Inputs are USDOT/MC numbers only. The operator's database stores carrier snapshots and events (public data), which is what makes change detection possible.

What is pending_confirmation? Negative insurance events derived from a single non-authoritative source are held back until corroborated (two observations or Motus evidence), so you do not act on a false lapse.