# Trucking Company Leads: New FMCSA Carriers, Email & Phone (`pandadad0214/trucking-company-leads`) Actor

Use this to get fresh trucking company leads from official FMCSA data: new USDOT carriers, brokers and freight forwarders with phone, email, officers, fleet size, drivers, cargo and authority. Filter by state, date, fleet and cargo. Excel and CSV.

- **URL**: https://apify.com/pandadad0214/trucking-company-leads.md
- **Developed by:** [Panda Federation](https://apify.com/pandadad0214) (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

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.
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

## Trucking Company Leads: New FMCSA Carriers with Email & Phone

**Get fresh trucking company leads from official FMCSA data.** Trucking Company Leads pulls **new and existing US motor carriers, brokers and freight forwarders** from the FMCSA Company Census File (US DOT open data). Each row has the **USDOT and MC number, legal and DBA name, officers, published phone and email, address, power units, drivers, cargo, operation type and safety rating**. Filter by **registration date, state, city, ZIP, fleet size, cargo, hazmat, for-hire vs private and entity type**. Results come as **Excel and CSV**. Apify's free plan includes $5 of monthly platform credit, enough for about 2,500 carriers at $0.002 each (pricing below).

**No scraping of SAFER pages, no captchas, no proxies: the data comes from the official open-data API on data.transportation.gov, which FMCSA updates daily.**

New trucking companies need insurance, factoring, ELDs, fuel cards, dispatch, compliance help, trailers and loads. Most of them register a USDOT number weeks before their first load. Lead vendors resell this same public list for a monthly fee. **Trucking Company Leads** gives it to you directly:

- 🆕 **New entrants:** carriers registered in the last N days (7 = this week's new authorities), newest first
- 📞 **Contacts as filed:** phone, cell, email and company officers from each carrier's FMCSA registration; ~99% of new carriers list an email
- 🚚 **Fleet and drivers:** power units, trucks, owned tractors and trailers, total and CDL drivers, plus a fleet-size band (owner-operator, small, mid, large)
- 📦 **Cargo:** general freight, refrigerated food, building materials, livestock, oilfield, hazmat and ~25 more
- 🧭 **Filters:** state, city, ZIP prefix, fleet size, drivers, interstate/intrastate, for-hire/private/exempt, carrier/broker/forwarder, name keyword, "updated in the last N days"
- 🔎 **USDOT lookup:** paste up to 1,000 USDOT numbers to get full records
- 🔗 **SAFER link** for each carrier so you can open the official FMCSA snapshot
- 💸 **$0.002 per carrier.** 1,000 fresh leads cost $2. Runs that match nothing cost nothing

### Who it's for

- **Truck insurance agents:** call new authorities before their first policy is bound
- **Freight factoring and fuel card companies:** reach new for-hire carriers in their first weeks
- **ELD, TMS, dispatch and compliance services:** build weekly prospect lists by state and fleet size
- **Freight brokers:** find small carriers by lane state, cargo and equipment
- **Truck dealers, trailer leasing and truck stops:** target fleets of the right size near you
- **Researchers and analysts:** count new carriers by state and month from the official census

### How to use it

1. Click **Try for free**.
2. Pick **What to find**: *New carriers*, *Search all carriers*, or *Look up USDOT numbers*.
3. Add **states** (TX, CA, FL…) and any filters: days back, fleet size, cargo, for-hire, "only with email".
4. Click **Start**. 1,000 carriers take about 20 seconds. Download **CARRIERS_XLSX** or **CARRIERS_CSV** from **Storage → Key-value store**, or use the dataset via API.

#### Input example

```json
{
  "mode": "new",
  "daysBack": 30,
  "states": ["TX", "OK"],
  "minPowerUnits": 2,
  "carrierClass": "forHire",
  "requireEmail": true,
  "maxResults": 500
}
```

### Task examples

- **Weekly new-authority list:** `{"mode": "new", "daysBack": 7, "states": ["TX"], "carrierClass": "forHire"}`, scheduled every Monday.
- **Reefer carriers for a produce broker:** `{"mode": "new", "daysBack": 60, "cargo": ["refrigerated food", "fresh produce"], "states": ["CA", "AZ"]}`.
- **Small fleets for an ELD or fleet-software pitch:** `{"mode": "search", "states": ["GA"], "minPowerUnits": 5, "maxPowerUnits": 50, "updatedWithinDays": 365}`.
- **Hazmat carriers near you:** `{"mode": "search", "zipPrefixes": ["850", "852"], "hazmatOnly": true}`.
- **New freight brokers:** `{"mode": "new", "daysBack": 30, "entityType": "B"}`.
- **CRM refresh:** `{"mode": "lookup", "dotNumbers": ["4841621", "296164"]}` to update fleet size, contacts and status.

### Output example

One row per carrier. A real row from a test run (phone and email masked here; the dataset has them in full):

```json
{
  "dotNumber": "8988129",
  "mcNumber": null,
  "legalName": "Bravo Whiskey Solutions LLC",
  "dbaName": "BW Fuel Transport",
  "status": "active",
  "addedDate": "2026-10-30",
  "daysSinceAdded": 4,
  "entityTypes": ["carrier"],
  "operation": "intrastate non-hazmat",
  "carrierClasses": ["private property", "authorized for hire"],
  "officers": ["Rick Eckerson", "Brent Nedbalek"],
  "phone": "(281) 769-XXXX",
  "email": "b****@aviatorsplus.com",
  "companyEmailDomain": "aviatorsplus.com",
  "city": "Brenham",
  "state": "TX",
  "zip": "77833-5586",
  "powerUnits": 4,
  "trucks": 1,
  "drivers": 8,
  "cdlDrivers": 1,
  "fleetBand": "small (2-10)",
  "cargo": ["liquids / gases", "oilfield equipment"],
  "hazmat": true,
  "tags": ["new entrant", "for-hire", "small", "hazmat", "company email"],
  "saferUrl": "https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=USDOT&query_string=8988129",
  "agentSummary": "Bravo Whiskey Solutions LLC (DBA BW Fuel Transport), USDOT 8988129; active carrier, intrastate non-hazmat; Brenham, TX; registered 2026-10-30 (4 days ago); 4 power units, 8 drivers; cargo: liquids / gases, oilfield equipment; contact: (281) 769-XXXX, b****@aviatorsplus.com"
}
```

#### Fields

| Field | What it is |
|---|---|
| `dotNumber`, `mcNumber`, `dockets` | USDOT number and MC/MX/FF dockets with their status |
| `legalName`, `dbaName`, `status`, `businessType` | Company identity and USDOT status (active, inactive, pending) |
| `addedDate`, `daysSinceAdded`, `lastFilingDate` | When the USDOT number was added and the last MCS-150 update |
| `officers`, `phone`, `cellPhone`, `fax`, `email`, `emailDomain`, `companyEmailDomain` | Contacts as filed with FMCSA (`companyEmailDomain` is empty for Gmail/Yahoo etc.) |
| `street`, `city`, `state`, `zip`, `country`, `mailingAddress` | Physical and mailing address |
| `entityTypes`, `operation`, `carrierClasses` | Carrier/broker/forwarder; interstate or intrastate; for-hire, private, exempt |
| `powerUnits`, `trucks`, `buses`, `drivers`, `cdlDrivers`, `ownedTractors`, `ownedTrailers`, `fleetBand` | Fleet and drivers |
| `cargo`, `hazmat` | Cargo classes and hazmat flag |
| `safetyRating`, `safetyRatingDate`, `mileage`, `mileageYear`, `priorRevoked` | Safety and size signals |
| `tags`, `saferUrl`, `agentSummary` | Quick tags, the official snapshot link, and one plain-English line |

#### Files in the key-value store

| Key | What it is |
|---|---|
| `CARRIERS_XLSX` | Excel workbook: **Carriers** (fleet colors, SAFER links), **By state**, **Run log**, **Read me** |
| `CARRIERS_CSV` | Carriers table as CSV |
| `SUMMARY` | JSON: counts with phone/email, `byState`, `fleetBands`, newest registration, a one-line `takeaway` and `nextStep` |

### For AI agents

Use this Actor to answer "which new trucking companies registered in <state> this week?", to build carrier lead lists by fleet size or cargo, or to look up a USDOT number. Call it with Apify's MCP server (`https://mcp.apify.com`, tool `call-actor`, Actor `pandadad0214/trucking-company-leads`) or the API (`POST https://api.apify.com/v2/acts/pandadad0214~trucking-company-leads/run-sync-get-dataset-items`).

Minimal input:

```json
{"mode": "new", "daysBack": 7, "states": ["TX"], "maxResults": 100}
```

Each dataset item includes:

- `agentSummary`: one line with name, USDOT/MC, status, location, registration date, fleet, cargo and contact
- `dotNumber`, `addedDate`, `phone`, `email`, `powerUnits`, `fleetBand`, `tags`: the fields most tasks need
- `saferUrl`: the official record for citations

The run's key-value store has a `SUMMARY` record with `byState`, `fleetBands`, a one-line `takeaway` and `nextStep`. Errors (unknown state code, lookup without numbers) fail fast with a clear message and no charge.

### Pricing

**Apify paid-plan discounts:** Bronze members pay 10% less, Silver 20% less and Gold 30% less per carrier. Free-plan prices are shown below; the discount applies automatically.

**$0.002 per carrier returned** (pay-per-event), plus a tiny Actor-start fee of $0.00005. Phone, email, officers, fleet, cargo, Excel, CSV and summary are included. Runs that match nothing cost nothing. Your **maximum charge per run** is respected: the run stops at your limit.

### FAQ

**Where does the data come from?** The FMCSA Company Census File published on data.transportation.gov (US DOT open data, public domain). It covers every USDOT-registered carrier, broker, shipper and freight forwarder (about 4.5 million records, 2.2 million active) and is refreshed daily.

**Are the emails and phones real?** They are what each company filed on its FMCSA registration (MCS-150). New carriers almost always list an email; many use Gmail or Yahoo, which is why `companyEmailDomain` is shown separately.

**Is it legal to contact these companies?** The data is public government data. You are responsible for following CAN-SPAM, TCPA, Do-Not-Call and state rules when you call, text or email anyone.

**What is "registered" exactly?** The date the USDOT number was added. Operating authority (MC) dockets are shown with their status as reported in the census file; for the full authority history, open the SAFER link.

**How fresh is it?** FMCSA updates the file daily; the newest registrations are usually 1-3 days old.

**Can I schedule it?** Yes. Save a task with `daysBack: 7` and schedule it weekly; each run returns that week's new carriers.

### More Panda Federation tools

- [Local Business Leads](https://apify.com/pandadad0214/local-business-leads)
- [Federal Contract Finder](https://apify.com/pandadad0214/federal-contract-finder)
- [Company Website Enricher](https://apify.com/pandadad0214/company-website-enricher)
- [Email Domain Security Checker](https://apify.com/pandadad0214/email-domain-security-checker)
- [Company Team & Decision-Maker Finder](https://apify.com/pandadad0214/company-team-finder)

[All Panda Federation Actors on Apify](https://apify.com/pandadad0214)

Questions or ideas? Open an issue on this Actor's **Issues** tab.

### Changelog

- **2026-11-03:** First public release: new-carrier, search and USDOT lookup modes on the FMCSA Company Census File; state, city, ZIP, fleet, drivers, operation, class, entity, cargo, hazmat and contact filters; fleet bands and tags; Excel and CSV; agent-friendly `agentSummary` and `takeaway`; pay-per-event pricing with Bronze/Silver/Gold discounts.

# Actor input Schema

## `mode` (type: `string`):

New carriers = fresh USDOT registrations (the classic trucking-leads list for insurance, factoring, ELD, dispatch and fuel cards). Search = any carrier matching your filters. Lookup = details for a list of USDOT numbers.

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

New-carriers mode: how far back to look. 7 = this week's new entrants.

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

2-letter codes of the physical address (TX, CA, FL, ON…). Empty = all states.

## `cities` (type: `array`):

Optional. Exact city names, e.g. Houston, Laredo.

## `zipPrefixes` (type: `array`):

Optional. ZIP codes or prefixes, e.g. 850 for Phoenix, 770 for Houston.

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

Optional. 1 = owner-operators and up; 5 = small fleets and up.

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

Optional. 1 = owner-operators only.

## `minDrivers` (type: `integer`):

Optional.

## `maxDrivers` (type: `integer`):

Optional.

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

Interstate carriers cross state lines and usually need MC authority.

## `carrierClass` (type: `string`):

For-hire carriers haul other people's freight (best for brokers, factoring and dispatch).

## `entityType` (type: `string`):

Find brokers instead of carriers, for example.

## `cargo` (type: `array`):

Optional. Keep carriers that haul at least one of these, e.g. refrigerated food, building materials, livestock.

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

Only carriers flagged as hazardous materials carriers.

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

Skip records with no published email.

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

Skip records with no published phone.

## `nameContains` (type: `string`):

Optional. Word in the legal or DBA name, e.g. logistics, express, transport.

## `updatedWithinDays` (type: `integer`):

Optional. Carriers that updated their FMCSA registration recently (active, reachable companies).

## `dotNumbers` (type: `array`):

Lookup mode: one USDOT number per line (up to 1,000).

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

On by default. Off includes inactive and pending registrations (search mode).

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

You pay per carrier returned, so this also caps the cost. Newest registrations first.

## Actor input object example

```json
{
  "mode": "new",
  "daysBack": 30,
  "states": [
    "TX",
    "OK",
    "LA"
  ],
  "operation": "any",
  "carrierClass": "any",
  "entityType": "any",
  "hazmatOnly": false,
  "requireEmail": false,
  "requirePhone": false,
  "dotNumbers": [
    "4841621",
    "296164"
  ],
  "activeOnly": true,
  "maxResults": 500
}
```

# Actor output Schema

## `table` (type: `string`):

No description

## `xlsx` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `summary` (type: `string`):

Run-level summary record. Agent-friendly keys: `takeaway` (one-line result), `byState`, `fleetBands`, `nextStep` and `nextSteps`.

# 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"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pandadad0214/trucking-company-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"] }

# Run the Actor and wait for it to finish
run = client.actor("pandadad0214/trucking-company-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 '{
  "states": [
    "TX"
  ]
}' |
apify call pandadad0214/trucking-company-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,pandadad0214/trucking-company-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/Itfqkvs9PrVUPLDVs/builds/hAWhlThDMRtOMt4hl/openapi.json
