FMCSA SAFER Risk Event Monitor avatar

FMCSA SAFER Risk Event Monitor

Pricing

from $25.00 / 1,000 risk event delivereds

Go to Apify Store
FMCSA SAFER Risk Event Monitor

FMCSA SAFER Risk Event Monitor

Watch a book of USDOT numbers and emit typed FMCSA risk events (insurance, OOS, safety rating, SMS BASIC alerts, authority, MCS-150 stale) from official public SAFER / census / Motus open data. Scheduled poll — not real-time. Pay only for unique delivered risk events.

Pricing

from $25.00 / 1,000 risk event delivereds

Rating

0.0

(0)

Developer

Daniel Witney

Daniel Witney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Watch a book of USDOT numbers and receive typed risk events when official FMCSA public data shows material changes — insurance filings, out-of-service (OOS), safety rating, SMS BASIC alerts (optional QCMobile), operating authority, and MCS-150 staleness — not another census dump and not an insurance/authority-only clone.

Honest title: this is a scheduled poll / catch-up monitor, not a real-time push feed. Detection latency ≈ your schedule interval + FMCSA open-data lag (often ~24h for Motus / census).

Value proposition

  • Multi-signal events: INSURANCE_*, OOS_*, SAFETY_RATING_*, SMS_*, AUTHORITY_*, MCS150_* — broader than insurance/authority-only Store ghosts.
  • Official / public HTTP only (SAFER Company Snapshot, DOT census SODA, Motus InsHist / AuthHist / RevokeSuspend). Optional free QCMobile webKey for SMS BASICs. No paid CarrierOK.
  • Pay only for unique delivered risk events. First observation stores a baseline (no charge). Quiet days ≈ $0.
  • Durable KVS checkpoint + event_uid dedupe.

PRODUCTION USE (required for real monitoring)

Store default ≠ product. Schema defaults use sourceMode=fixture so Apify Store daily auto-tests leave a non-empty health dataset without calling FMCSA. That fixture path only writes a non-billable RUN_STATUS / FIXTURE_HEALTH row. It is not carrier monitoring.

For production monitoring you must:

  1. Set sourceMode = live
  2. Provide your usdotNumbers watchlist / book
  3. Schedule short runs (e.g. daily or every few hours) with fair-use requestPaceMs
  4. Optionally add secret fmcsaQcMobileWebKey for SMS BASIC enrichment (QCMobile developer site)

Official references:

Data limitations (read before buying)

  • Not real-time. Open-data tables and SAFER HTML update on FMCSA schedules; Motus incremental feeds are typically next-day.
  • SMS BASICs require a free QCMobile webKey; without it, SMS_* events are not emitted.
  • SAFER HTML layout can change; parsing is best-effort and may miss fields for inactive / unusual entities.
  • First run stores baselines only — you will not be charged for “current state” snapshots.
  • MCS150_STALE uses the official MCS-150 form date vs mcs150StaleMonths (default 24). It is a justified heuristic from public filing dates, not a separate FMCSA “stale” flag.
  • Fair-use pacing applies; large books need longer maxRunSeconds or more frequent smaller batches.
  • We cite FMCSA / U.S. DOT as the data origin. This Actor is not affiliated with or endorsed by FMCSA.

Apify Store daily auto-test / default input

FieldDefault
usdotNumbers["44110","294837"]
signalGroupsall six
sourceModefixture
emitFixtureDemoEventsfalse
maxRunSeconds55
maxEvents500

On that path the Actor SUCCEEDS quickly, pushes exactly one RUN_STATUS / FIXTURE_HEALTH row (billable: false), and does not charge risk-event-delivered.

Input (summary)

FieldNotes
usdotNumbersWatchlist (required)
signalGroupsinsurance, oos, safety_rating, sms, authority, mcs150
mcs150StaleMonthsDefault 24
smsAlertPercentileDefault 65 (QCMobile path)
sourceModefixture (default) or live
emitFixtureDemoEventsDefault false
fmcsaQcMobileWebKeyOptional secret
maxRunSeconds / maxEventsBudgets
resumeFromCheckpointDefault true
requestPaceMsFair-use delay (default 400)

Production example

{
"usdotNumbers": ["44110", "294837", "1000287"],
"signalGroups": ["insurance", "oos", "safety_rating", "sms", "authority", "mcs150"],
"sourceMode": "live",
"maxRunSeconds": 120,
"requestPaceMs": 400,
"resumeFromCheckpoint": true
}

Output

Risk events (billable under PPE)

Typed rows include: usdot_number, legal_name, event_type, event_subtype, changed_fields, previous_value, new_value, effective_date, evidence, summary, source_url, event_uid, billable: true.

RUN_STATUS (never billed)

Every successful run pushes one health row (FIXTURE_HEALTH | MONITOR_IDLE | CATCHUP_COMPLETE | HEALTH_OK).

Pricing

Pay-per-event: risk-event-delivered at $0.025 per delivered unique risk event ($25 / 1,000). Single tier (see docs/monetization.md and ADR 0010). Health / baseline / duplicate / fixture rows are never charged.

Local development

cd actors/fmcsa-safer-risk-event-monitor
npm install
npm test
npm run build
# Store-safe fixture health:
apify run -p
# Demo typed events locally:
# set input emitFixtureDemoEvents=true (still sourceMode=fixture)

Attribution

Data originates from the Federal Motor Carrier Safety Administration (FMCSA) and U.S. DOT open data. Not an official FMCSA product.