# FMCSA Authority Revocation & Suspension Alerts (`transparent_meteorite/fmcsa-authority-revocation-alerts`) Actor

Find trucking carriers that just received an FMCSA operating authority suspension notice. Each row has days until it takes effect, a 0-100 risk score, phone, email, address, power units and a SAFER link. Public federal data, no login.

- **URL**: https://apify.com/transparent_meteorite/fmcsa-authority-revocation-alerts.md
- **Developed by:** [Detroit Web Agent - Open Data](https://apify.com/transparent_meteorite) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.90 / 1,000 authority alert rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## FMCSA Authority Revocation & Suspension Alerts

**FMCSA authority revocation alerts**: trucking carriers that just received an FMCSA notice that their operating authority will be suspended or revoked, with days until it takes effect, a 0-100 risk score and the public phone, email and fleet size of the carrier.

Find US trucking carriers that FMCSA has just served a notice that their operating authority will be suspended or revoked. You get one row per notice, with the serve date, the date it takes effect, how many days are left, a 0 to 100 risk score, and the carrier's public phone, email, address and fleet size. Everything comes from free federal open data. No login, no proxy, no API key.

### What is FMCSA Authority Revocation & Suspension Alerts?

Find trucking carriers that just received an FMCSA operating authority suspension notice. Each row has days until it takes effect, a 0-100 risk score, phone, email, address, power units and a SAFER link. Public federal data, no login. Run it from the Apify Console, the API or a schedule, and export the results as JSON, CSV, Excel or HTML.

### Why use it

- **Public data only.** The actor reads open datasets published by the US Department of Transportation. It does not log in anywhere.
- **Already joined.** Notices and census contacts are merged for you, matched by USDOT number.
- **Ranked.** The risk score puts the most urgent carriers first, so a small `maxItems` still gives the best rows.

### Output

One row per authority notice.

| Field | Meaning |
|---|---|
| `legalName`, `dbaName`, `usdotNumber`, `docketNumber` | Who the notice is about. |
| `actionType`, `actionCategory`, `authorityType` | What FMCSA did and which authority it affects. |
| `serveDate`, `effectiveDate` | When the notice was served and when it takes effect. |
| `daysSinceServed`, `daysUntilEffective` | Time counters worked out on the run date. |
| `riskScore` | 0 to 100, higher means the carrier is closer to losing authority and has more at stake. |
| `phone`, `email`, `street`, `city`, `state`, `zip` | Business contact data from the public census, when the carrier is matched. |
| `powerUnits`, `drivers`, `carrierOperation`, `censusStatus` | Fleet size and status from the census. |
| `saferUrl`, `source`, `scrapedAt` | Link to the public record, data source and run time. |

### Sample output

```json
{
  "usdotNumber": "1234567",
  "legalName": "EXAMPLE FREIGHT LLC",
  "actionCategory": "involuntary-suspension",
  "authorityType": "COMMON",
  "serveDate": "2026-10-10",
  "effectiveDate": "2026-11-09",
  "daysUntilEffective": 16,
  "riskScore": 78,
  "state": "TX",
  "powerUnits": 12,
  "saferUrl": "https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=1234567"
}
```

The values above illustrate the format and are not a real carrier.

### Input

| Field | What it does |
|---|---|
| `daysBack` | Keep notices served in the last N days (1 to 120). Default 14. |
| `includeVoluntary` | Also include voluntary suspensions. Off by default. |
| `actionTypes` | Optional override: `involuntary-suspension`, `involuntary-revocation`, `voluntary-suspension`, `revocation`, `reinstatement`. |
| `states` | Optional two-letter state codes of the carrier address. Empty means all states. |
| `minPowerUnits` | Keep carriers with at least this many trucks and tractors on their census filing. |
| `minRiskScore` | Keep only rows at or above this 0 to 100 score. |
| `maxItems` | Stop after this many rows, highest risk first. Default 100. |

Sample input:

```json
{ "daysBack": 14, "includeVoluntary": false, "states": ["TX", "CA"], "minPowerUnits": 3, "maxItems": 100 }
```

### Pricing

Pay per event. You pay a small fixed price per authority alert row delivered, shown on the Pricing tab, plus a tiny start fee per run. Rows removed by your filters are not charged, and you can set a maximum cost per run in the run options.

### What does this Actor do?

FMCSA, the Federal Motor Carrier Safety Administration, publishes the authority actions it takes against motor carriers on data.transportation.gov. The actor reads the most recent notices, joins each one to the public FMCSA company census by USDOT number, and returns a flat table you can sort, filter and export.

- Reads involuntary suspension and revocation notices by default. These are the ones FMCSA starts itself, usually about 30 days before authority is suspended.
- Optionally adds voluntary suspensions (requested by the carrier) and reinstatements.
- Adds contact and fleet fields from the census: phone, email, physical address, power units, drivers and carrier operation type.
- Calculates `riskScore` from 0 to 100 and sorts the highest first, so the carriers closest to losing authority come first.
- Gives a `saferUrl` so you can open the carrier's public SAFER company snapshot.

**Run in 30 seconds**

1. Open the Actor and press **Try for free**.
2. Keep the prefilled input and press **Start**.
3. Open the **Output** tab and download JSON, CSV or Excel.

### Use cases and workflows

- Give insurance agents and brokers a daily list of carriers that need new filings before their authority lapses.
- Help factoring companies, fuel card providers and equipment lenders watch exposure on accounts that are about to lose authority.
- Let freight brokers check carriers in their network before tendering loads.
- Run it on a schedule and send new rows to a spreadsheet, CRM, Slack or an n8n workflow.
- Track state by state how many carriers are receiving notices over time.

### Limits

- Only notices in the public dataset are returned, and only up to 120 days back.
- Contact data comes from the carrier's own census filing and can be out of date.
- A notice does not always end in suspension; carriers can fix the cause before the effective date.
- Business contacts only. The actor does not look up personal profiles.

### Related Actors

- [FMCSA Insurance Cancellation Leads](https://apify.com/transparent_meteorite/fmcsa-insurance-cancellation-leads) finds carriers whose filed liability or cargo insurance is about to cancel.
- [FMCSA New Carrier Leads](https://apify.com/transparent_meteorite/fmcsa-new-carrier-leads) lists newly registered motor carriers.

Found a bug or need a field? Open an issue on the Issues tab with the run URL.

### FAQ

**Where does the data come from?**
The FMCSA authority revoke and suspend history dataset and the FMCSA company census, both on data.transportation.gov.

**How fresh is it?**
It is as fresh as the federal dataset at the time of the run. The date of each notice is in `serveDate`.

**Why are some contact fields empty?**
Not every carrier matches a census record, and some census records have no email or phone. Those fields are then empty and `censusStatus` says so.

**Is the risk score official?**
No. It is a transparent rule-based score from the notice type, days left, fleet size and authority type. It is not an FMCSA rating.

**Is this legal or safety advice?**
No. It lists public notices. Check the carrier's record on the FMCSA site before you act.

**Did this actor do the job?** If it saved you time, a short honest review on the [Reviews tab](https://apify.com/transparent_meteorite/fmcsa-authority-revocation-alerts/reviews) helps other people judge it. If something was off, open an Issue on this page with the input you used. I read every one and fix real bugs, usually the same day.

**This Actor vs scrapesage/fmcsa-trucking-scraper:** that one is a broad carrier census scraper filtered by state and registration date. Choose this one for the revocation and suspension notices themselves, with serve and effective dates, days left and a risk score.

### Changelog

- 2026-10-24: Initial release.
- 2026-10-25: Documentation updated: README refreshed.
- 2026-10-25: Listing refresh: new Store icon, README reorganised (overview, data fields, pricing, FAQ) and changelog tab added. No code change.

# Changelog

This Actor's version history is a separate document: https://apify.com/transparent_meteorite/fmcsa-authority-revocation-alerts/changelog.md

# Actor input Schema

## `daysBack` (type: `integer`):

Keep notices FMCSA served in the last N days (1 to 120). Default 14.

## `includeVoluntary` (type: `boolean`):

Off by default: only involuntary notices (FMCSA-initiated, usually 30 days before authority is suspended). Turn on to add voluntary suspensions requested by the carrier.

## `actionTypes` (type: `array`):

Optional override. Allowed values: involuntary-suspension, involuntary-revocation, voluntary-suspension, revocation, reinstatement. When empty, the include-voluntary switch decides.

## `states` (type: `array`):

Optional two-letter US state codes of the carrier physical address, for example TX, CA. Empty means all states.

## `minPowerUnits` (type: `integer`):

Keep carriers with at least this many power units (trucks and tractors) on their census filing. 0 keeps everyone, including carriers with no census match.

## `minRiskScore` (type: `integer`):

Optional 0 to 100. Keep only rows at or above this risk score.

## `maxItems` (type: `integer`):

Stop after this many rows, highest risk score first. You pay only for rows delivered.

## Actor input object example

```json
{
  "daysBack": 14,
  "includeVoluntary": false,
  "minPowerUnits": 0,
  "minRiskScore": 0,
  "maxItems": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "daysBack": 14,
    "includeVoluntary": false,
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("transparent_meteorite/fmcsa-authority-revocation-alerts").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "daysBack": 14,
    "includeVoluntary": False,
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("transparent_meteorite/fmcsa-authority-revocation-alerts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "daysBack": 14,
  "includeVoluntary": false,
  "maxItems": 100
}' |
apify call transparent_meteorite/fmcsa-authority-revocation-alerts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,transparent_meteorite/fmcsa-authority-revocation-alerts"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fgDOmpuWvnCivIR2t/builds/LT8uOb5S25S8vC8g6/openapi.json
