# Changelog of FMCSA Carrier Check: Authority & Insurance Monitor (`humble-echidna/fmcsa-carrier-check`) Actor

- **URL**: https://apify.com/humble-echidna/fmcsa-carrier-check/changelog.md
- **Full Actor documentation**: https://apify.com/humble-echidna/fmcsa-carrier-check.md

## Changelog

Versions follow MAJOR.MINOR.PATCH (`src/version.py`); Apify shows MAJOR.MINOR from `.actor/actor.json`.
Every run logs its version and records it in the `RUN_STATS` key-value record.

### 0.1.1 (2026-10-16)

- A run that returns nothing (every input bad, private, blocked or unreachable, or an empty input) now ends
  SUCCEEDED with an empty dataset and the reason as its status message and in the log, instead of FAILED. Only an
  unexpected error still fails the run. `RUN_STATS` keeps the reason as before.
- No change to output fields or price.

### 0.1.0 (2026-10-04, not deployed)

First release.

- Look up US motor carriers, brokers and freight forwarders by USDOT number and/or MC/MX/FF docket number (any common
  spelling; a carrier named twice is checked once; an MC/MX number the datasets don't have is looked up on SAFER).
- **Live check** (`liveCheck`, on by default): each carrier's SAFER Company Snapshot, one page a second, for current
  USDOT status, operating authority status and the authorities listed, out-of-service status and date, docket numbers,
  names, physical and mailing address, phone, DUNS, fleet, MCS-150, classification, operation, cargo and safety rating
  (with review date and type). SAFER wins over the datasets group by group; `sources` names each group's source
  (`safer`, `motus`, `census`, `oos-orders`, `snapshot-2026-05-14`, `none`) and date; `liveCheck` says how it went.
  A SAFER layout change raises a clear "unexpected response format from SAFER: no '<field>'" error (no silent nulls);
  after 3 SAFER failures in a row the run stops asking it and returns dataset records flagged `live-check-failed`.
- From FMCSA's daily datasets: every operating authority with its status history and first grant date, insurance
  required vs on file, active and pending policies (de-duplicated, dollars), cancellations pending or in the last 30
  days, suspension and revocation orders, the out-of-service order history; trucks, buses and hazmat from the census.
  Carriers not in Motus get insurance and authority history from FMCSA's frozen 2026-05-14 files, flagged.
- Vetting `flags`, including `insurance-from-2026-05-14-snapshot`, `live-check-failed` and `not-on-safer`.
- Monitor mode (`onlyChanges`, `monitorName`, or the task's id): only carriers whose vetting fields (live authority and
  OOS status included) or registered phone/addresses changed since the monitor's last run, with `changeType` and
  `changes`. Memory in the user's own `fmcsa-carrier-check-memory` store, 16 shards per monitor, separate for live and
  dataset-only runs, moved on only for rows the user received; carriers whose live check failed aren't compared.
- Pricing (proposed, COSTS.md): one `apify-default-dataset-item` per carrier returned; `unchanged-carrier` per carrier
  checked and found unchanged in monitor mode; `apify-actor-start` at the default $0.00005. Max results and the
  maximum cost per run are reserved before any carrier is read.
- A batch whose datasets can't all be read fails as a whole (no half-records); two failed batches in a row stop the
  run. Optional user-supplied Socrata app token (`X-App-Token`, sent to data.transportation.gov only), secret, never
  logged. 512 MB default memory.
- Registration details (Michael 2026-10-04): the carrier's registered phone, street and mailing address, DUNS
  number, company officers (census `company_officer_1/2`) and email address (census `email_address`, self-reported)
  are returned for every carrier. Cell phone and fax aren't selected (`EXCLUDED_COLUMNS`, tested): 2.4% and 12.3%
  filled in a 1,000-carrier sample. Emails and phone numbers are still scrubbed from FMCSA's free-text authority
  reasons, which name the filer (usually a filing service or process agent, a third party). No name search.

#### Source and terms (checked 2026-10-04)

- **Published for machines:** FMCSA's datasets on the US DOT open-data portal, data.transportation.gov (Socrata
  SODA API, `/resource/<id>.json`, documented at https://dev.socrata.com/consumers/getting-started and on each dataset
  page): Company Census File `az4n-8mr2`, Out of Service Orders `p2mt-9ige`, Motus Carrier `inys-ebih`, Motus Insur
  `c5y8-a4uz`, Motus InsHist `3uet-3z4i`, Motus RevokeSuspend `wb4f-neki`, Motus AuthHist `yu5v-wbh6`; legacy Carrier
  `6eyk-hxee`, ActPendInsur `qh9u-swkp`, Revocation `sa6p-acbp` (frozen 2026-05-14, "will no longer be updated").
  Field names and value formats verified live against each dataset's `/api/views/<id>.json` and the attached data
  dictionaries (USDOT Motus Operating Authority Data Dictionary as of 2026-05-18; MCMIS Company Census Data Dictionary
  rev. 8, 2026-01-23; OOS Data Dictionary rev. 3, 2025-01-24).
- **robots.txt** (data.transportation.gov, read 2026-10-04): `User-agent: *`, `Crawl-delay: 1`; `/resource/` isn't
  disallowed. datahub.transportation.gov (the catalog's alias) is `Disallow: /`, so it's never used.
- **Terms:** every dataset's metadata says "Public Access Level: public" and "Rights: public"; the licence field
  points to Project Open Data's "unknown-license" page (no licence chosen). FMCSA is a US federal agency, so its data
  isn't under copyright (17 U.S.C. 105). The data dictionaries' only conditions are a disclaimer: "provided as a public
  service ... for informational purposes only and does not constitute a legal contract", and no liability for use.
  Not readable from here: DOT's web policies page (transportation.gov/web-policies, linked from the portal footer:
  HTTP 403 to scripted and fetch-tool requests) and the Socrata/Tyler terms of service linked from the portal
  (socrata.com/terms-of-service and tylertech.com/terms-of-service: HTTP 404). No clause restricting API use or reuse
  was found anywhere that could be read.
- **App tokens** (https://dev.socrata.com/docs/app-tokens.html): requests without one "may be subject to throttling";
  "we do not throttle API requests that are using an application token". The token is the user's own; we never ship
  one (ACTOR-CHECKLIST section 0).
- **SAFER** (safer.fmcsa.dot.gov, read 2026-10-04): robots.txt 404 (the shared guard treats that as allow-all). Home
  page: "The FMCSA Safety and Fitness Electronic Records (SAFER) System offers company safety data and related
  services to industry and the public over the Internet", under the standard federal banner "You are accessing a U.S.
  Government information system ... provided for U.S. Government-authorized use only. Unauthorized or improper use of
  this system is prohibited". No clause on automated access or reuse found. Snapshot pages state "The information
  below reflects the content of the FMCSA management information systems as of <date>". Read one page at a time,
  1 s apart, honest User-Agent. Approved as a source by Michael (2026-10-04).
- **Licensing & Insurance** (li-public.fmcsa.dot.gov, read 2026-10-04): robots.txt 404; its menu says registration
  functionality "will be permanently retired on Thursday, May 14"; the carrier search now requires a Google reCAPTCHA.
  Not used (we never work around a bot check, and its data can't be confirmed current). SAFER's L\&I links now point to
  motus.dot.gov, a JavaScript single-page app with an undocumented backend: not used.
- **Terms, second attempt:** fmcsa.dot.gov/web-policies-and-important-links, fmcsa.dot.gov/about/
  WebPoliciesAndImportantLinks.htm and transportation.gov/web-policies: HTTP 403 to our User-Agent, a browser
  User-Agent and the WebFetch tool; archive.org 429 / refused by the fetch tool. FHWA's disclaimer (sibling DOT agency,
  fhwa.dot.gov/disclaim.cfm): "Information presented on this web site is considered public information and may be
  distributed or copied".
- **Personal data:** Michael's decisions of 2026-10-04 (PLAN.md): legal name, DBA, registered phone, physical and
  mailing address, DUNS, company officers and email are returned (officers and email approved by Michael directly in
  chat: "i dont understand why we wouldnt just include them"); cell phone and fax left out as too sparse.
