# FMCSA New Carrier Leads: New Trucking Companies (`greatwork/fmcsa-new-carriers`) Actor

Trucking companies that registered a USDOT number in the last few days, straight from the FMCSA census: phone, email, address, fleet size, drivers, cargo and operation type. Filter by state, fleet size and cargo. Run it daily for fresh carrier leads.

- **URL**: https://apify.com/greatwork/fmcsa-new-carriers.md
- **Developed by:** [Great Work](https://apify.com/greatwork) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 carriers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### What does FMCSA New Carrier Leads do?

**FMCSA New Carrier Leads gives you the trucking companies that registered a USDOT number in the last few days**, straight from the FMCSA Company Census File, with **phone, email, address, fleet size, drivers, cargo and operation type**. About **500 new carriers register every weekday**. Each one needs insurance, factoring, an ELD, fuel cards, equipment, dispatch, compliance filings and freight, usually all in its first 90 days. This Actor puts them in front of you the day they appear, filtered to the ones you sell to.

**Try it now:** click **Start**. The prefilled input returns 25 for-hire carriers from the last 3 registration days in a few seconds, for about $0.19.

### Who uses new trucking company leads?

- **Commercial truck insurance agents.** New authorities need primary liability and cargo coverage before they can run.
- **Freight factoring and fuel card companies.** New carriers have cash-flow gaps from day one.
- **ELD, TMS and dispatch services, compliance and permit agencies** (BOC-3, UCR, IFTA, drug and alcohol consortiums).
- **Truck and trailer dealers, leasing and equipment finance.**
- **Freight brokers** building carrier capacity in a lane.

### What data do you get?

| Field | Example |
|---|---|
| `legalName`, `dbaName` | DDLC FREIGHT LLC |
| `dotNumber`, `mcNumber`, `docketStatus` | 6383552 (MC appears once the docket is assigned) |
| `registeredOn` | 2026-09-27 |
| `usdotStatus` | Active |
| `operationClasses`, `isForHire`, `isPrivateCarrier` | \["AUTHORIZED FOR HIRE"], true, false |
| `carrierOperation` | Interstate, Intrastate (hazmat), Intrastate (non-hazmat) |
| `hazmat` | false |
| `powerUnits`, `trucks`, `tractors`, `trailers` | 2, null, 1, null |
| `drivers`, `cdlDrivers` | 4, 0 |
| `cargoTypes` | \["General freight"] |
| `phone`, `fax`, `email` | business phone and email on the registration |
| `street`, `city`, `state`, `zip`, `countyCode` | 678 S BURGESS AVE, COLUMBUS, OH, 43204 |
| `mailingStreet` to `mailingZip` | mailing address |
| `safetyRating`, `mileage`, `priorRevokedDot` | prior revoked USDOT flags reincarnated carriers |
| `saferUrl` | link to the carrier's FMCSA SAFER snapshot |
| `officers`, `cellPhone` (optional) | only when **Include officer names and cell phone** is on |

In a week of new registrations we checked (September 21 to 27, 2026), **every carrier had a phone number and an email address** on file.

#### Sample output

Contact details are masked in this README; the Actor returns them in full.

| Company | City | State | Trucks | Drivers | Operation | Registered |
|---|---|---|---|---|---|---|
| DDLC FREIGHT LLC | Columbus | OH | 2 | 4 | Interstate, for hire | 2026-09-27 |
| TGKTRUCKING LLC | Dallas | TX | 2 | 4 | Interstate, for hire | 2026-09-26 |
| JORGES AUTO TRANSPORT LLC | Framingham | MA | 2 | 4 | Interstate, for hire | 2026-09-26 |
| ROUTEPROS DELIVERY LLC | Detroit | MI | 1 | 1 | Interstate, for hire | 2026-09-26 |
| OCALA FENCE LLC | Ocala | FL | 16 | 30 | Intrastate, for hire | 2026-09-26 |

One full record:

```json
{
  "dotNumber": "6383552",
  "legalName": "DDLC FREIGHT LLC",
  "registeredOn": "2026-09-27",
  "usdotStatus": "Active",
  "operationClasses": ["AUTHORIZED FOR HIRE"],
  "isForHire": true,
  "carrierOperation": "Interstate",
  "hazmat": false,
  "powerUnits": 2,
  "tractors": 1,
  "drivers": 4,
  "cargoTypes": ["General freight"],
  "phone": "614972xxxx",
  "email": "d•••@gmail.com",
  "street": "678 S BURGESS AVE",
  "city": "COLUMBUS",
  "state": "OH",
  "zip": "43204",
  "saferUrl": "https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=6383552",
  "source": "FMCSA Company Census File"
}
```

In Apify Console the Output tab has three views: **Leads** (contact details and fleet size), **Fleet and cargo** and **Addresses**. Download any run as CSV, Excel, JSON or XML.

### How to get new trucking company leads

1. Click **Start** with the prefilled input, or choose **states**, **operation** (interstate or intrastate), **for-hire only**, **fleet size**, **cargo types** or **hazmat only**.
2. Pick a window: the last N registration days, or an exact date range for a backfill of up to a year.
3. Open the **Output** tab and export the table, or connect it to your CRM or dialer.
4. Save the input as a task and **schedule it daily** with **Only carriers not delivered before** switched on, so each morning's run has only new companies.

#### Input examples

**Everything from the last 3 registration days:**

```json
{ "daysBack": 3 }
```

**For-hire interstate carriers in Texas, Oklahoma and Louisiana, for an insurance agency:**

```json
{
  "daysBack": 7,
  "states": ["TX", "OK", "LA"],
  "operation": "interstate",
  "forHireOnly": true,
  "requireEmail": true
}
```

**Reefer carriers with 3 or more trucks, anywhere:**

```json
{ "daysBack": 14, "cargoTypes": ["Refrigerated food"], "minPowerUnits": 3 }
```

**Daily feed that never repeats a carrier:**

```json
{ "daysBack": 3, "states": ["FL", "GA"], "forHireOnly": true, "onlyNew": true, "feedName": "southeast-for-hire" }
```

### How much does it cost?

You pay per carrier returned. Filters run before you are charged, and there is no subscription or platform usage fee on top.

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Carrier | $0.007 | $0.0065 | $0.006 |
| Run start | $0.01 | $0.01 | $0.01 |

What that looks like in practice:

| Use | Carriers | Cost |
|---|---|---|
| The prefilled first run | 25 | about $0.19 |
| Daily feed: every new carrier in Texas | about 1,600 a month | about $11 a month |
| Daily feed: for-hire interstate carriers nationwide | about 5,600 a month | about $39 a month |
| Daily feed: every new carrier in the US | about 11,500 a month | about $81 a month |

Set **Max results**, or a maximum cost per run in the run options, to cap any single run. Apify's free plan includes monthly credit you can spend on this Actor.

### Run it as a daily lead feed

- **Only carriers not delivered before** (`onlyNew`) skips carriers the same feed already returned in the last 60 days, so overlapping windows never bill you twice for the same company. The list lives in a key-value store in your own account.
- **Feed name** (`feedName`) keeps separate lists for separate schedules, for example `texas-reefer` and `southeast-for-hire`.
- In Console, save your input as a **task** and add a **schedule** (daily at 8:00 is a good default) with `"daysBack": 3, "onlyNew": true`.

### Integrations and API

- **Google Sheets, HubSpot, Salesforce, Slack, email:** through Apify integrations, **Make**, **Zapier** or **n8n**.
- **Webhooks:** fire on every finished run to push carriers into a dialer or your own database.
- **AI agents over MCP:** add `https://mcp.apify.com?tools=greatwork/fmcsa-new-carriers` to Claude, ChatGPT, Cursor or any MCP client and ask for "new reefer carriers in Georgia this week".
- **REST API, Python and JavaScript clients:**

```bash
curl -X POST "https://api.apify.com/v2/acts/greatwork~fmcsa-new-carriers/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"daysBack": 2, "states": ["CA"], "forHireOnly": true}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("greatwork/fmcsa-new-carriers").call(run_input={"daysBack": 3, "states": ["TX"], "forHireOnly": True})
for carrier in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(carrier["legalName"], carrier["phone"], carrier["powerUnits"])
```

### FAQ

#### How fresh is the data?

FMCSA refreshes the Company Census File daily, and it trails real time by about a day. **Days back** counts from the newest registration date in the file, so the default run always has data.

#### Why is the MC number usually empty?

A new carrier gets its USDOT number first. The MC docket and operating authority come later, through a separate FMCSA process, so most carriers in their first days show `mcNumber: null`. **Has MC number** keeps only the few that already have one.

#### Why do some carriers show zero trucks?

Fields are what the carrier filed on its MCS-150. Some new carriers leave fleet counts at zero or blank until their first update. Use **Minimum power units** to skip them.

#### Can I get the owner's name and cell phone?

Yes, with **Include officer names and cell phone**. It is off by default because those are personal details; use them in line with the rules that apply to you.

#### Is it legal to use FMCSA data for sales outreach?

FMCSA registration data is published by the U.S. Department of Transportation as public open data. When you contact carriers, follow the rules that apply to you: CAN-SPAM for email, and TCPA plus the Do Not Call registry for calls and texts.

#### Does it include insurance filings or safety scores?

No. Operating authority status, insurance filings and SMS safety scores live in other FMCSA systems. Each record has a `saferUrl` link to the carrier's SAFER snapshot.

### How it works and limits

- Reads the FMCSA **Company Census File** from the U.S. DOT open data portal (data.transportation.gov) through its public API. No login, no browser and no scraping of FMCSA web pages.
- Many owner-operators list a personal Gmail and a cell phone as the business contact.
- If the census has not advanced in 10 days, or a multi-day national window returns nothing, the run fails on purpose so you notice.

### Data source

FMCSA registration data is published by the U.S. Department of Transportation as public open data. This Actor is independent and is not affiliated with or endorsed by FMCSA or DOT.

### More lead feeds by Great Work

| Actor | What you get |
|---|---|
| [SEC Form D Scraper](https://apify.com/greatwork/sec-form-d-leads) | Companies that just raised private money, with phone, amount raised and investors |
| [US Building Permits Scraper](https://apify.com/greatwork/us-building-permits) | New building permits from 7 US cities and counties, with job value and contractor |

### Support

Found a bug or need a field? Open an issue on the **Issues** tab and we usually reply within one business day. For a custom feed or a bulk historical export, email hello@greatwork.company.

# Changelog

This Actor's version history is a separate document: https://apify.com/greatwork/fmcsa-new-carriers/changelog.md

# Actor input Schema

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

Registration days to include, counting back from the newest day in the FMCSA census (the file trails real time by about a day). Ignored when 'Date from' is set.

## `dateFrom` (type: `string`):

First USDOT registration date (YYYY-MM-DD). Leave empty to use 'Days back'.

## `dateTo` (type: `string`):

Last USDOT registration date (YYYY-MM-DD). Defaults to the newest date in the census.

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

Two-letter codes of the carrier's physical address, e.g. TX, FL, CA. Empty = all.

## `operation` (type: `string`):

Interstate carriers cross state lines and usually need an MC number and federal insurance filings.

## `forHireOnly` (type: `boolean`):

Keep only companies registered to haul other people's freight (skip private fleets that only move their own goods).

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

Minimum trucks/tractors reported. 0 = no minimum.

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

Maximum trucks/tractors reported. 0 = no maximum.

## `cargoTypes` (type: `array`):

Keep carriers that haul any of these. Leave empty for all cargo.

## `hazmatOnly` (type: `boolean`):

Keep only carriers flagged as hauling hazardous materials.

## `hasMcNumber` (type: `boolean`):

Keep only carriers that already have an MC docket number. Brand-new registrations rarely show one yet, so this filter returns few results on short windows.

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

Skip carriers with no email on file.

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

Skip carriers with no phone on file.

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

Skip inactive USDOT numbers.

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

For scheduled runs: skip carriers this feed already returned in the last 60 days, so each run only has new ones. Tracked in a key-value store in your own account.

## `feedName` (type: `string`):

Keeps separate 'already delivered' lists for different schedules, e.g. 'texas-reefer'.

## `includeOwnerDetails` (type: `boolean`):

Add the company officer names and cell phone listed on the registration. Off by default.

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

Stop after this many carriers. You pay per carrier returned, so this is also your cost cap.

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

Only needed for very large pulls. Free at data.transportation.gov.

## Actor input object example

```json
{
  "daysBack": 3,
  "states": [],
  "operation": "any",
  "forHireOnly": true,
  "minPowerUnits": 0,
  "maxPowerUnits": 0,
  "hazmatOnly": false,
  "hasMcNumber": false,
  "requireEmail": false,
  "requirePhone": false,
  "activeOnly": true,
  "onlyNew": false,
  "feedName": "default",
  "includeOwnerDetails": false,
  "maxResults": 25
}
```

# Actor output Schema

## `results` (type: `string`):

Every record from this run. Open it as a table in the Output tab, or download JSON, CSV or Excel from the dataset API.

# 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": 3,
    "states": [],
    "forHireOnly": true,
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("greatwork/fmcsa-new-carriers").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": 3,
    "states": [],
    "forHireOnly": True,
    "maxResults": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("greatwork/fmcsa-new-carriers").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": 3,
  "states": [],
  "forHireOnly": true,
  "maxResults": 25
}' |
apify call greatwork/fmcsa-new-carriers --silent --output-dataset

```

## MCP server setup

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

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/78Lu0KSfbbzb60n9T/builds/1RDfE0LCm0dn6HyXd/openapi.json
