# Changelog of FMCSA Carrier Contact Takeover Monitor (`automa-flow/fmcsa-carrier-contact-takeover-monitor`) Actor

- **URL**: https://apify.com/automa-flow/fmcsa-carrier-contact-takeover-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/automa-flow/fmcsa-carrier-contact-takeover-monitor.md

## Changelog

### 2026-10-02: First public release

#### Features

- Watch up to 10,000 USDOT numbers against the official FMCSA Company Census and get before/after rows when a carrier's phone, cell phone, email, officer, legal name, DBA or address changes.
- The first run stores a baseline and writes `BASELINE_CREATED` rows, so you see the current contacts right away. Later runs return `CHANGE` rows. Set `emitUnchanged` to false on a scheduled task to receive changes only.
- Formatting-only differences, such as punctuation, case, spacing, `L.L.C.` against `LLC` or a leading US `1` on a phone number, are not reported as changes. Raw values stay on every change row.
- A carrier that leaves the census is `NO_RESULTS` with `CENSUS_RECORD_REMOVED`. One that comes back is `CENSUS_RECORD_RESTORED`, and a USDOT that appears for the first time is `CENSUS_RECORD_ADDED`.
- Use one `snapshotKey` per roster. Baselines are kept in a named store in your account, so a scheduled run compares against the last successful check.

#### Reliability and billing

- You pay only for completed checks. `SOURCE_FAILED` and `UNPROCESSED` carriers are not billed, and a check interrupted by a stopped run is not billed again on the next run.
- A census failure never replaces a good baseline. The next successful run compares against the last good one.
- A census-wide format change, an empty census row or a column that suddenly goes blank is reported as `SOURCE_FAILED` instead of a wave of false alerts.
- Large rosters run in slices of 450 carriers, so 10,000 carriers fit the default memory. A run that reaches its time limit or your charge limit keeps the slices it finished and marks the rest `UNPROCESSED`.
- When the census rate-limits requests, the run slows down instead of dropping batches.
- Two runs on the same `snapshotKey` never write at the same time. The lock of a stopped run expires after about three minutes.
- `RUN_SUMMARY` in the run's key-value store counts every outcome, including unchanged carriers that were not written to the dataset.
