# FMCSA New Trucking Company Leads + Insurance Status (DOT/MC) (`johto.data/fmcsa-new-carrier-leads`) Actor

New USDOT trucking companies from the official FMCSA census with authority and BI\&PD insurance-on-file status: DOT/MC number, legal name, phone, email, officers, fleet size, hazmat, cargo. Filter by state, days back, for-hire. Only-new mode. $0.003/carrier.

- **URL**: https://apify.com/johto.data/fmcsa-new-carrier-leads.md
- **Developed by:** [Jo](https://apify.com/johto.data) (community)
- **Categories:** Lead generation, Agents, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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 New Carrier Leads – New Trucking Companies with Phone, Email & Insurance Status

New USDOT trucking companies from the official FMCSA census, every day, with phone, email, officers, fleet size, hazmat, cargo, and (new) operating-authority status and whether liability insurance is on file with FMCSA, including the insurer name. $3 per 1,000 carriers. Only-new mode means a daily schedule charges you only for fresh carriers.

**Who uses it:** truck insurance agents, freight factoring companies, ELD and fuel-card vendors, dispatch services, compliance/filing services, equipment dealers, and AI agents that build trucking prospect lists.

### For AI agents

**Questions this answers:**

- Find new trucking companies in Texas registered this week with no insurance on file
- List new for-hire carriers in Florida with phone and email
- How many new USDOT carriers registered in the last 7 days in California?

**Call it when:**

- The user wants carriers newly registered in the last N days (use daysBack >= 5; FMCSA data lags 2-3 days).
- The user wants for-hire carriers whose required BI\&PD insurance is not on file (insuranceFilter: none_on_file).
- A scheduled daily feed needs only carriers not seen before (onlyNew: true).

**Don't call it when:**

- Looking up one known carrier's safety/CSA record or inspections (this returns new registrations only).
- The user needs insurance cancellations or renewal dates (not in this Actor).
- The use is consumer eligibility decisions (FCRA-type use).

Use this instead of `scrapesage/fmcsa-trucking-scraper` when you specifically need **new** registrations with an L\&I insurance-on-file flag at $0.003 per carrier (scrapesage: $0.005 per carrier, 2026-10-22). Use scrapesage or a lookup tool when you need existing carriers.

**Input - TX for-hire carriers with no insurance on file, last 7 days:**

```json
{"daysBack": 7, "states": ["TX"], "authorizedForHireOnly": true, "insuranceFilter": "none_on_file", "requirePhone": true, "maxItems": 25}
```

**Input - Daily only-new feed, small fleets:**

```json
{"daysBack": 5, "states": ["FL", "GA"], "maxPowerUnits": 5, "onlyNew": true, "maxItems": 100}
```

**Output:** one dataset row per carrier. Real row from run `LDrMpr7wiJWE91Td3` (long lists trimmed, named people redacted):

```json
{
 "dotNumber": "5354682",
 "mcNumber": null,
 "docketNumbers": [],
 "legalName": "CALEO MEDICAL TRANSPORTATION INC",
 "dbaName": null,
 "addDate": "2026-10-20",
 "street": "6005 VINELAND AVE STE 112",
 "city": "NORTH HOLLYWOOD",
 "state": "CA",
 "zip": "91606-4983",
 "country": "US",
 "mailingAddress": "6005 VINELAND AVE STE 112, NORTH HOLLYWOOD, CA, 91606-4983",
 "phone": "(844) 401-4848",
 "cellPhone": null,
 "fax": null,
 "email": "care@caleomd.com",
 "officers": ["<redacted>"],
 "powerUnits": 1,
 "trucks": 0,
 "buses": 1,
 "totalDrivers": 2,
 "cdlDrivers": 0,
 "operationType": "Intrastate non-hazmat",
 "entityType": "Carrier",
 "classification": "PRIVATE PASSENGER, BUSINESS;PRIVATE PASSENGER, NON-BUSINESS;AUTHORIZED FOR HIRE",
 "hazmat": false,
 "cargoTypes": [],
 "businessType": null,
 "statusCode": "A",
 "snapshotUrl": "https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=5354682",
 "authorityStatus": "No for-hire authority on file",
 "authorities": [],
 "hasActiveInsurance": false,
 "insuranceStatus": "Not applicable (no for-hire authority)",
 "insuranceLead": false,
 "bipdRequiredUsd": null,
 "bipdOnFileUsd": null,
 "cargoRequired": false,
 "cargoOnFile": false,
 "bondRequired": false,
 "bondOnFile": false,
 "insurerName": null,
 "bipdEffectiveDate": null,
 "insurancePolicies": [],
 "insuranceCheckedAt": "2026-10-22T08:49:16.753Z"
}
```

**Price:** $0.003 per carrier (event `carrier`) + $0.005 per run start. 100 carriers = $0.305.

**Limits:**

- FMCSA publishes with a 2-3 day lag; use daysBack >= 5.
- New registrations usually have no MC number yet (mcNumber null in sample).
- Insurance status reflects FMCSA L\&I filings at insuranceCheckedAt; 'no insurance on file' does not mean uninsured.
- Contact fields are as filed with FMCSA and may be personal; follow TCPA/CAN-SPAM.

**Call it:** MCP `https://mcp.apify.com/?tools=johto.data/fmcsa-new-carrier-leads` (tool `johto-dot-data--fmcsa-new-carrier-leads`), or `POST https://api.apify.com/v2/acts/johto.data~fmcsa-new-carrier-leads/run-sync-get-dataset-items` with `Authorization: Bearer <APIFY_TOKEN>` and the JSON input.
**Agent pays with USDC (x402), no Apify account:** `https://mcp.apify.com/?tools=johto.data/fmcsa-new-carrier-leads&payment=x402`

**Quick, cheap first call:** An empty-input call returns up to 10 new carriers from the last 7 days, all states: at most $0.035 ($0.005 start + 10 x $0.003).

### Quick start

Click **Start**. The prefilled input (Texas, last 7 days, 25 carriers) returns real leads in about a minute for under $0.10. Raise `maxItems` for the full list.

### What you get per carrier

| Field | Example |
|---|---|
| `dotNumber`, `mcNumber` | 8074921, MC-1234567 |
| `legalName`, `dbaName` | DOUBLE L TOWING LLC |
| `addDate` | 2026-10-15 |
| `phone`, `cellPhone`, `email` | as filed with FMCSA |
| `officers` | company officer names |
| `powerUnits`, `totalDrivers` | 2, 2 |
| `operationType`, `classification`, `hazmat`, `cargoTypes` | Interstate, Authorized for hire, false, genfreight |
| `authorityStatus` | Pending, Active, Withdrawn, or No for-hire authority on file |
| `insuranceStatus`, `hasActiveInsurance` | None yet (BI\&PD required) / BI\&PD on file, true / false |
| `insuranceLead` | true = authority needs liability insurance and none is on file yet |
| `insurerName`, `bipdOnFileUsd`, `bipdEffectiveDate` | PROGRESSIVE COUNTY MUTUAL, 750000, 2026-07-20 |
| `snapshotUrl` | SAFER snapshot link |

### Insurance & authority status (new)

Every carrier is now joined with FMCSA's public **Licensing & Insurance (L\&I)** records, at no extra charge:

| Field | Meaning |
|---|---|
| `authorityStatus` | Pending, Active, Withdrawn/Inactive, or "No for-hire authority on file" (intrastate/private carriers) |
| `insuranceStatus` | `BI&PD on file`, `BI&PD filed, effective in future`, `None yet (BI&PD required)`, `No BI&PD (Bond only)`, `Not applicable` |
| `hasActiveInsurance` | `true` when a BI\&PD liability filing (BMC-91/91X) is on file and already effective |
| `insuranceLead` | `true` when a pending/active authority requires BI\&PD and none is on file, so the carrier is shopping for insurance now |
| `bipdRequiredUsd` / `bipdOnFileUsd` | Liability required by the authority vs on file |
| `insurerName`, `bipdEffectiveDate` | Insurer and effective date on the latest BI\&PD filing |
| `cargoRequired/OnFile`, `bondRequired/OnFile` | Cargo insurance and broker bond flags |
| `authorities[]`, `insurancePolicies[]` | Full detail: docket, authority type and status, insurer, form, limit, policy number, effective and received dates |

**Hot insurance leads:** set **Insurance filter = "No insurance on file yet"** to get only carriers whose authority is pending a liability filing.

Source: FMCSA L\&I datasets on data.transportation.gov (Motus Carrier, Motus Insur, Carrier, and Insur, all "All With History"), updated daily. Insurance status is as of the last FMCSA publish. Always confirm on the carrier's SAFER snapshot before quoting.

### Filters

State, days back, authorized-for-hire only, hazmat, interstate/intrastate, fleet size min/max, only with email, only with phone, active only, insurance status (any / no insurance on file yet / insurance on file), max results.

### Pricing

- **$0.003 per carrier** returned ($3 per 1,000), plus a **$0.005 run start** fee.
- Paid Apify plans get Store discounts automatically.
- Set a max total charge on any run; the Actor stops cleanly at your limit.

### Scheduled alerts (only-new mode)

- `onlyNew: true` remembers what earlier runs returned (stored in your own account) and returns only new carriers.
- `webhookUrl` POSTs every new batch as JSON with a ready-to-post `text` summary (Slack, Discord, Zapier, Make, n8n).

### Use from AI agents (MCP) and code

- Apify MCP server (`https://mcp.apify.com`): agents find this Actor with `search-actors` ("FMCSA trucking leads") and run it with `call-actor`. Every input field is documented in the input schema.
- REST: `POST https://api.apify.com/v2/acts/johto.data~fmcsa-new-carrier-leads/run-sync-get-dataset-items?token=YOUR_TOKEN` with `{"states":["TX"],"daysBack":1,"onlyNew":true}`
- Python: `ApifyClient(token).actor("johto.data/fmcsa-new-carrier-leads").call(run_input={...})`

### FAQ

- **Where is the data from?** FMCSA Company Census plus FMCSA Licensing & Insurance (L\&I) authority and insurance filings on data.transportation.gov, public U.S. government data. No logins, cookies or proxies.
- **How fresh?** FMCSA updates regularly; the newest records are usually 1 to 3 days old.
- **Why does a new carrier show no insurance?** Most carriers file liability insurance (BMC-91X) days to weeks after applying for authority. Until then `insuranceLead` is true, which is the best time to quote them. Intrastate/private carriers have no FMCSA authority, so their status is "Not applicable".
- **Why no MC number?** MC numbers appear when FMCSA issues operating authority, often weeks after the USDOT number.
- **Can I call or text these leads?** Contact details are self-reported to FMCSA. Calls and texts to cell numbers fall under the TCPA, emails under CAN-SPAM. Check the Do Not Call registry. You are responsible for how you use the data.

### Related Actors

- [Building Permits Leads](https://apify.com/johto.data/us-city-building-permits-leads)
- [New Business Filings Leads](https://apify.com/johto.data/us-new-business-filings-leads)

# Actor input Schema

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

Carriers added to the FMCSA census in the last N days (default 7). FMCSA data lags 2-3 days, so use 5+ for results.

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

Two-letter physical-address states, e.g. \["TX","FL"]. Empty = all states.

## `authorizedForHireOnly` (type: `boolean`):

Only for-hire carriers (best for insurance, factoring, dispatch leads).

## `hazmat` (type: `string`):

Filter by hazmat indicator.

## `operationTypes` (type: `array`):

Empty = all.

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

0 = no minimum.

## `maxPowerUnits` (type: `integer`):

0 = no maximum.

## `requireEmail` (type: `boolean`):

Only carriers that listed an email address.

## `requirePhone` (type: `boolean`):

Only carriers that listed a phone number.

## `activeOnly` (type: `boolean`):

Only carriers with active USDOT status.

## `includeInsurance` (type: `boolean`):

Join FMCSA Licensing & Insurance data: authority status (pending/active), BI\&PD required vs on file, insurer name, policy, effective date, cargo/bond. Adds a few seconds per 1,000 carriers. No extra charge.

## `insuranceFilter` (type: `string`):

'No insurance on file yet' keeps carriers whose authority requires BI\&PD liability but FMCSA has none on file - they are shopping for a policy right now.

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

Maximum carriers to return; each is one charged result ($0.003). Default 10 keeps an empty-input call a cheap sample; raise it for the full list.

## `onlyNew` (type: `boolean`):

Remember results across runs (per account) and return only items not seen before. Ideal for scheduled runs: you pay only for new records.

## `webhookUrl` (type: `string`):

Optional. POSTs the new items as JSON with a 'text'/'content' summary (Slack, Discord, Zapier, Make, n8n compatible).

## Actor input object example

```json
{
  "daysBack": 7,
  "states": [
    "TX"
  ],
  "authorizedForHireOnly": false,
  "hazmat": "any",
  "operationTypes": [],
  "minPowerUnits": 0,
  "maxPowerUnits": 0,
  "requireEmail": false,
  "requirePhone": false,
  "activeOnly": true,
  "includeInsurance": true,
  "insuranceFilter": "any",
  "maxItems": 25,
  "onlyNew": false
}
```

# Actor output Schema

## `carriers` (type: `string`):

One item per new carrier.

# 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": 7,
    "states": [
        "TX"
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("johto.data/fmcsa-new-carrier-leads").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": 7,
    "states": ["TX"],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("johto.data/fmcsa-new-carrier-leads").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": 7,
  "states": [
    "TX"
  ],
  "maxItems": 25
}' |
apify call johto.data/fmcsa-new-carrier-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,johto.data/fmcsa-new-carrier-leads"
        }
    }
}
```

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/Ey1cl64Hdpj03aQ4R/builds/GQOLzom2v0klPoGIG/openapi.json
