# New Trucking Carrier Leads — FMCSA New-Authority Feed (`industrious_emphasis/fmcsa-new-carrier-leads`) Actor

Daily feed of newly-registered US motor carriers (new USDOT authority) with phone, address, and fleet size — for freight-factoring, truck-insurance, ELD/dispatch, and fuel-card sales teams. Diff-based: only NEW carriers since your last run. No API keys.

- **URL**: https://apify.com/industrious\_emphasis/fmcsa-new-carrier-leads.md
- **Developed by:** [Brock Bangasser](https://apify.com/industrious_emphasis) (community)
- **Categories:** Lead generation, Automation, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 new carrier leads

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## New Trucking Carrier Leads — FMCSA New-Authority Feed

A brand-new motor carrier is the most sought-after cold-call in trucking — the day a carrier gets its USDOT authority, it's flooded by factoring, insurance, ELD, and fuel-card sales teams. This Actor gives you that list first: a **daily feed of newly-registered US carriers** — legal name, **phone, address, fleet size** — pulled from official FMCSA data. **Only NEW carriers since your last run** (not another bulk scraper), and **no API keys required**.

Built for **freight-factoring & commercial-truck-insurance sales, ELD/dispatch and fuel-card vendors, and trucking-lead resellers** who need fresh new-authority leads without a $129/month list subscription.

### What you get

One **`carrier_lead` row per newly-registered carrier**:

```json
{
  "type": "carrier_lead",
  "legal_name": "HODALE CARRIERS LLC",
  "dba_name": "",
  "phone": "5025551212",
  "cell_phone": "",
  "email": "ops@example.com",
  "address": "1 MAIN ST",
  "city": "LOUISVILLE",
  "state": "KY",
  "zip": "40202",
  "power_units": 2,
  "drivers": 3,
  "operation": "Authorized For Hire",
  "dot_number": "8574807",
  "docket": "MC1234567",
  "add_date": "2026-07-14",
  "first_seen": "2026-07-16"
}
```

Contact info ships **in the source** — the raw row is a callable lead, no enrichment step. Every run ends with a **`run_summary`** receipt (how many new, scope, whether the source was fully reachable), so "0 new today" is an explicit answer, never a blank table.

### Why "new since last run" (not a bulk scraper)

This Actor remembers which carriers it has already delivered (in a private key-value store) and emits **only carriers new since your previous run**. Schedule it daily and you get a clean, deduplicated stream of fresh leads — the general FMCSA "download everything" scrapers make you diff it yourself.

#### Your first run — you choose

- **Default (`skipBacklog` off):** the first run returns *every* carrier in your lookback window — a one-time backlog batch (capped by **Max leads**), so you start with a list in hand. Subsequent runs deliver only the daily new arrivals.
- **`skipBacklog` on:** the first run silently records a baseline **for free** and delivers nothing; from then on you get only carriers registered *after* you started watching. Ideal if you want a pure going-forward feed and don't want to pay for (or wade through) the backlog.

### How to use it

1. Pick your **states** (e.g. `["TX"]`) or leave empty for all.
2. Choose **operation type** — *Authorized For Hire* are the prime insurance/factoring targets.
3. Optional: **minimum fleet size**, **require a phone number**, **max leads** (spend cap).
4. Run once for the recent window, or **schedule it daily** and pipe the dataset to your CRM, dialer, or a Google Sheet.

### What this costs

Pay-per-result: a small actor-start fee + **per new-carrier lead**. Compare: TruckerDB sells new-DOT lists at **$129/month**; you pay only for the fresh rows in the states you want, on the schedule you want.

### Data source & honest notes

- **Source:** FMCSA **Company Census File** on `data.transportation.gov` (dataset `az4n-8mr2`) — official US-government open data, refreshed daily, public. No scraping, no login, no CAPTCHA.
- **"New" = new USDOT registration** (`add_date`). A carrier registers for a USDOT number when it starts operating; that's the new-authority trigger this feed detects.
- **~2–3 day publish lag.** FMCSA typically adds a new carrier to the public census 2–3 days after registration, so `lookbackDays` should stay ≥ 7 (the default). With the built-in diff, a wide window costs you nothing — each carrier is still emitted only once, the first run it appears; a too-narrow window (1–2 days) just misses carriers the census hasn't published yet.
- **Contact fields come from the carrier's own FMCSA filing.** Some rows lack a phone or email — use `requirePhone` to keep only directly-callable leads.
- **Compliance is yours.** These are business leads (carriers), addresses and public filing data only. Follow the rules that apply to you — TCPA/DNC for calls and texts, CAN-SPAM for email — and scrub against the DNC registry before dialing. New carriers are heavily solicited; call responsibly.
- **Resilient by design:** the FMCSA API is queried with retries and back-off; if it's briefly slow, the run returns a *partial* feed with a note and succeeds, rather than failing. Bad input returns a guiding receipt, not a crash. Every run's spend is capped by `maxResults`.

### Roadmap

Authority **status-change** feed (out-of-service / revoked / reinstated) off the same source, insurance-lapse signals, and MC-authority-grant date (distinct from DOT registration) as a premium tier.

# Actor input Schema

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

2-letter US state codes to include, e.g. TX, CA, FL. Leave empty for all states.

## `operationType` (type: `string`):

Which carriers to include. 'Authorized For Hire' are the prime insurance/factoring targets.

## `lookbackDays` (type: `integer`):

How far back to look for newly-registered carriers. The KV diff prevents re-sending the same carrier on scheduled runs, so a small window (7) is ideal for a daily schedule. First run returns the whole window.

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

Optional. Only carriers with at least this many trucks. 0 = all (most new authorities are 1-2 trucks).

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

Optional. Drop rows with no phone/cell (not directly callable).

## `skipBacklog` (type: `boolean`):

Off (default): your first run returns every carrier in the lookback window (a one-time backlog batch, capped by Max leads). On: the first run silently records a baseline for FREE and delivers nothing, then future runs deliver only carriers registered from that point forward — ideal if you only want a going-forward daily feed.

## `maxResults` (type: `integer`):

Hard cap on billed lead rows for the whole run. Default 500.

## `socrataAppToken` (type: `string`):

Free token from data.transportation.gov for higher rate limits. Not required. Stored encrypted.

## Actor input object example

```json
{
  "states": [
    "TX"
  ],
  "operationType": "all",
  "lookbackDays": 7,
  "minPowerUnits": 0,
  "requirePhone": false,
  "skipBacklog": false,
  "maxResults": 25
}
```

# Actor output Schema

## `leads` (type: `string`):

No description

## `leadsCsv` (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 = {
    "states": [
        "TX"
    ],
    "operationType": "all",
    "lookbackDays": 7,
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("industrious_emphasis/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 = {
    "states": ["TX"],
    "operationType": "all",
    "lookbackDays": 7,
    "maxResults": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("industrious_emphasis/fmcsa-new-carrier-leads").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "states": [
    "TX"
  ],
  "operationType": "all",
  "lookbackDays": 7,
  "maxResults": 25
}' |
apify call industrious_emphasis/fmcsa-new-carrier-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=industrious_emphasis/fmcsa-new-carrier-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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