# New Trucking Companies (FMCSA) - New Carrier & Authority Leads (`leadmagnet/new-trucking-companies`) Actor

Daily list of newly registered US trucking companies and new MC authority grants/applications from official FMCSA open data. Filter by state, fleet size, cargo, hazmat, carrier type and insurance-on-file. Phone, email, address, USDOT/MC numbers.

- **URL**: https://apify.com/leadmagnet/new-trucking-companies.md
- **Developed by:** [Travis O](https://apify.com/leadmagnet) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 carrier results

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

## New Trucking Companies (FMCSA): New Carrier, MC Authority & Insurance Leads

Get a fresh list of **newly registered US trucking companies** and carriers that **just applied for or were just granted MC operating authority**, straight from official FMCSA open data. Each row has the company name, USDOT and MC numbers, address, phone, email (if the carrier filed one), fleet size, drivers, cargo types, authority dates, and **who insures them (or whether they have no insurance on file yet)**.

Built for **truck insurance agents, freight factoring companies, dispatch services, ELD / fuel-card / compliance vendors and freight brokers**, who all want to reach a carrier in its first weeks of business.

No login, no proxies, no browser. It reads the official U.S. DOT Socrata API, so runs finish in seconds.

### Why this Actor

| | This Actor |
|---|---|
| New USDOT registrations in the last N days | ✅ |
| **MC authority granted** in the last N days (carriers ready to haul) | ✅ |
| **MC authority applied / pending** in the last N days (they still need insurance + process agent) | ✅ |
| Filter: **no liability insurance on file** / has insurance | ✅ |
| Current liability **insurer name** + policy effective date | ✅ |
| Filters: state, carrier type, interstate/intrastate, fleet size min/max, cargo types, hazmat, USDOT status | ✅ |
| Exclude one-person owner-operators (lower privacy risk) | ✅ |
| Email: all / business domains only / none | ✅ |
| Monitor mode: only carriers you haven't received before | ✅ |
| Officer / owner personal names | ❌ never output (privacy by design) |

### Typical uses

- **Insurance agents:** `dateMode = authority_applied`, `insuranceOnFile = none`. These carriers can't get their authority granted until insurance is filed.
- **Factoring & dispatch:** `dateMode = authority_granted`, `daysBack = 7`. Brand-new for-hire carriers about to book their first loads.
- **ELD / fuel cards / compliance:** `dateMode = usdot_registered`, filter by state and fleet size.
- **Renewal / switching campaigns:** the `liabilityInsurer` field shows who wrote the first policy.

### Input

```json
{
  "dateMode": "authority_granted",
  "daysBack": 7,
  "states": ["TX", "OK", "LA"],
  "carrierTypes": ["authorized_for_hire"],
  "minPowerUnits": 2,
  "maxPowerUnits": 50,
  "cargoTypes": ["refrigerated_food", "general_freight"],
  "hazmat": "any",
  "insuranceOnFile": "any",
  "excludeSoleOperators": true,
  "emailMode": "business_domain_only",
  "monitorMode": false,
  "maxResults": 500
}
```

| Field | Meaning |
|---|---|
| `dateMode` | `usdot_registered` (new USDOT number), `authority_granted` (MC authority granted), `authority_applied` (MC authority applied, pending) |
| `daysBack` | Look-back window, 1-365 days |
| `states` | Physical-address states. Empty = nationwide |
| `carrierTypes` | `authorized_for_hire`, `private_property`, `exempt_for_hire`, `private_passenger`, `government` (match any) |
| `operationTypes` | `interstate`, `intrastate_hazmat`, `intrastate_non_hazmat` |
| `authorityTypes` | For authority modes: `motor_carrier_property`, `household_goods`, `passengers`, `broker`, `freight_forwarder` |
| `minPowerUnits` / `maxPowerUnits` | Fleet size (power units) |
| `cargoTypes` | Any of 30 FMCSA cargo classes (general freight, refrigerated food, livestock, auto haul, etc.) |
| `hazmat` | `any`, `yes`, `no` |
| `statusFilter` | USDOT status: `active_or_pending` (default), `active`, `any` |
| `insuranceOnFile` | `any`, `none`, `yes` (liability/BIPD filings with FMCSA) |
| `excludeSoleOperators` | Skip carriers with 1 or fewer power units and 1 or fewer drivers |
| `emailMode` | `all`, `business_domain_only` (drops gmail/yahoo/etc.), `none` |
| `monitorMode` / `monitorStoreName` | Return only carriers not delivered in earlier runs (use with a daily Schedule) |
| `maxResults` | Cap on carriers (you pay per carrier) |
| `socrataAppToken` | Optional free data.transportation.gov token for higher rate limits |

### Output (one row per carrier)

```json
{
  "legalName": "M 3 EXPRESS LLC",
  "dbaName": null,
  "usdotNumber": "7311337",
  "mcNumber": "MC99839563",
  "street": "…", "city": "JEMISON", "state": "AL", "zip": "…",
  "phone": "+1 (205) 469-5624",
  "email": "douglas@m3expressllc.com",
  "powerUnits": 5, "drivers": 5, "isSoleOperator": false,
  "carrierType": "AUTHORIZED FOR HIRE", "operationType": "Interstate", "hazmat": false,
  "cargoTypes": ["General Freight", "Building Materials", "Construction"],
  "usdotStatus": "Active", "usdotRegisteredDate": "2026-07-09",
  "authorityType": "Motor Carrier of Property (Except Household Goods)",
  "authorityStatus": "Active",
  "authorityAppliedDate": "…", "authorityPublishedDate": "…", "authorityGrantedDate": "2026-10-29",
  "insuranceRequiredUsd": 750000, "liabilityInsuranceOnFileUsd": 750000,
  "hasLiabilityInsuranceOnFile": true,
  "liabilityInsurer": "PROGRESSIVE SPECIALTY INS. CO.", "liabilityPolicyEffectiveDate": "2026-10-29",
  "saferUrl": "https://safer.fmcsa.dot.gov/query.asp?…",
  "scrapedAt": "2026-10-29T20:30:00.000Z"
}
```

Export to CSV, Excel, JSON, or Google Sheets from the dataset tab, or pull it with the Apify API, Make, Zapier, or n8n.

### Pricing (pay per event)

- **Run start:** small flat fee per run
- **Carrier result:** charged per carrier row delivered

There is no monthly rental. Set a maximum charge per run in Apify and the Actor stops cleanly when it hits that limit.

### Data source & terms

All data comes from the **U.S. Department of Transportation / FMCSA open data portal**, [data.transportation.gov](https://data.transportation.gov), using the public Socrata SODA API:

| Dataset | ID | Used for |
|---|---|---|
| [Company Census File](https://data.transportation.gov/d/az4n-8mr2) | `az4n-8mr2` | Name, address, phone, email, fleet, drivers, cargo, hazmat, USDOT status, registration date |
| [Motus Carrier – All With History](https://data.transportation.gov/d/inys-ebih) | `inys-ebih` | MC/docket numbers, authority type & status, required insurance |
| [Motus AuthHist – All With History](https://data.transportation.gov/d/yu5v-wbh6) | `yu5v-wbh6` | Authority applied / published / granted dates |
| [Motus Insur – All With History](https://data.transportation.gov/d/c5y8-a4uz) | `c5y8-a4uz` | Insurance policies on file (insurer, coverage, effective date) |

- This is public U.S. government data, published under the federal open-data program. Works of the U.S. Government are generally not subject to copyright (17 U.S.C. §105). The data was self-reported by carriers on FMCSA forms (MCS-150, OP-1) and may contain errors. FMCSA refreshes the census daily and the Motus files several times a day.
- This Actor is an independent tool. It is **not affiliated with, endorsed by, or sponsored by FMCSA or U.S. DOT.**
- **Privacy:** company officer and owner names are never output. Many new carriers are one-person businesses, so phone, email, and address can still identify a person. Use `excludeSoleOperators` and `emailMode = business_domain_only` to keep personal data to a minimum. You are responsible for lawful use of the output, including TCPA (calls and texts), CAN-SPAM (email), state telemarketing and do-not-call rules, and privacy laws such as CCPA/CPRA if you resell or enrich the data. Don't use the data for FCRA purposes (credit, employment, or insurance eligibility decisions about individuals).

### FAQ

**How fresh is it?** FMCSA updates the data daily. Carriers usually show up within 1 to 2 days of registering or of an authority action.

**Why is the MC number empty for some rows?** Private and intrastate-only carriers don't need MC authority. Among new for-hire carriers, many haven't applied yet.

**Why do pending carriers show no insurance?** FMCSA grants authority only after the insurance filing arrives. That gap is exactly why `authority_applied` + `insuranceOnFile = none` works so well for insurance leads.

**Duplicates?** Each USDOT number appears once per run. Turn on monitor mode to skip carriers you received in earlier runs.

# Actor input Schema

## `dateMode` (type: `string`):

<b>New USDOT registrations</b>: companies that just got a USDOT number. <b>Authority granted</b>: carriers whose MC operating authority was just granted (ready to haul for hire). <b>Authority applied</b>: carriers that just applied for MC authority and are pending; they usually still need insurance and a process agent.

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

Look-back window for the event chosen above (1-365). FMCSA data refreshes daily.

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

Leave empty for all states.

## `carrierTypes` (type: `array`):

Match any. Empty = all types.

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

Empty = all.

## `authorityTypes` (type: `array`):

Which operating authority events to track when using an authority mode.

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

Optional fleet-size floor.

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

Optional fleet-size ceiling.

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

Carrier hauls any of these. Empty = all.

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

Filter on the FMCSA hazmat indicator.

## `statusFilter` (type: `string`):

USDOT registration status from the Company Census File.

## `insuranceOnFile` (type: `string`):

Based on the BIPD amount filed with FMCSA. 'None on file' is a strong lead for insurance agents.

## `excludeSoleOperators` (type: `boolean`):

Skip carriers with 1 or fewer power units and 1 or fewer drivers (typically one-person owner-operators, whose contact details are more likely to be personal). Recommended for lower privacy risk.

## `emailMode` (type: `string`):

Emails come from the carrier's own MCS-150 filing. 'Business domains only' drops gmail/yahoo/etc. addresses.

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

You are charged per carrier returned.

## `monitorMode` (type: `boolean`):

Remember USDOT numbers already delivered and return only carriers you have not received before. Pair with a daily Apify Schedule for a fresh-leads feed.

## `monitorStoreName` (type: `string`):

Named key-value store that remembers delivered carriers. Use a different name per feed (lowercase letters, digits, hyphens).

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

Optional free data.transportation.gov app token for higher API rate limits.

## Actor input object example

```json
{
  "dateMode": "usdot_registered",
  "daysBack": 7,
  "states": [
    "TX"
  ],
  "carrierTypes": [
    "authorized_for_hire"
  ],
  "operationTypes": [],
  "authorityTypes": [
    "motor_carrier_property",
    "household_goods"
  ],
  "cargoTypes": [],
  "hazmat": "any",
  "statusFilter": "active_or_pending",
  "insuranceOnFile": "any",
  "excludeSoleOperators": false,
  "emailMode": "all",
  "maxResults": 100,
  "monitorMode": false,
  "monitorStoreName": "fmcsa-new-carriers-monitor"
}
```

# Actor output Schema

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

All carrier rows in the default dataset (overview view selected by default).

## `runSummary` (type: `string`):

Input used, look-back cutoff, result count and API request count.

# 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 = {
    "dateMode": "usdot_registered",
    "daysBack": 7,
    "states": [
        "TX"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadmagnet/new-trucking-companies").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 = {
    "dateMode": "usdot_registered",
    "daysBack": 7,
    "states": ["TX"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("leadmagnet/new-trucking-companies").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 '{
  "dateMode": "usdot_registered",
  "daysBack": 7,
  "states": [
    "TX"
  ],
  "maxResults": 100
}' |
apify call leadmagnet/new-trucking-companies --silent --output-dataset

```

## MCP server setup

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

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/hB5peEA8igezE1dQn/builds/45BdSeLzW0N7bl7dY/openapi.json
