# FMCSA Trucking Companies: New Carriers & Fleet Leads (`ensorcelling_melilot/fmcsa-carriers`) Actor

Find new US trucking and bus companies from the official FMCSA census. Filter by state, registration date, fleet size, drivers and cargo type. Phone, email, address and officers included. $3 per 1,000 carriers.

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

## Pricing

$3.00 / 1,000 carrier saveds

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 Trucking Companies: New Carriers & Fleet Leads

Lists US trucking, bus and freight companies from the official FMCSA Company Census (data.transportation.gov). Find carriers that registered in the last few days, companies that just updated their record, and fleets of a given size, state or cargo type. Export to CSV, Excel, JSON or Google Sheets. Official open data, no scraping, no proxies, no login.

### What you get

One row per carrier:

| dotNumber | legalName | city | state | powerUnits | drivers | phone | email | addedDate |
|---|---|---|---|---|---|---|---|---|
| 9800087 | DFW PRECISION TRANSPORT SERVICES LLC | DALLAS | TX | 1 | 2 | 9724046192 | name@example.com | 2026-10-13 |

Each row also has the DBA name, physical and mailing address, last MCS-150 update date, truck and bus units, CDL drivers, operation type (interstate or intrastate), operation classes (for hire, private property...), hazmat flag, cargo types, annual mileage, safety rating when one exists, and a link to the carrier's FMCSA SAFER snapshot.

### Use cases

- **New-carrier lead lists.** Run daily with *Registered in the last N days* set to 1 or 2 and send new companies to a spreadsheet or CRM. Insurance agents, factoring companies, fuel-card and ELD sellers, dispatch services and truck lenders all want to reach a carrier early.
- **Fleet prospecting.** Filter by state, power units (for example 6 to 50) and cargo type such as refrigerated food or building materials.
- **Record-change tracking.** *Record updated in the last N days* shows carriers that just filed an MCS-150 update.
- **Lookups.** Paste USDOT numbers to get the census record for each.

### Pricing

Pay per carrier saved. Set *Maximum carriers* or the run's *Maximum cost per run* and the run stops there. Newest registrations come first. If the census cannot be read the run fails and nothing is charged.

### Good to know

- **Source and freshness.** The FMCSA publishes the census on data.transportation.gov and updates it regularly (usually daily). Each carrier's record is as filed by the company; some fields are blank or out of date. Check the run's `SUMMARY` record for the filters used.
- **Public records, your responsibility.** Phone, email and officer names come from the public census record. Use them in line with the rules that apply to you, such as CAN-SPAM, TCPA and do-not-call rules. Turn off *Include phone, email and officers* if you do not need contacts.
- **Not insurance or authority data.** This Actor reads the company census only. It does not include insurance filings, operating authority status or crash and inspection history.
- **Counts are a registration signal, not a safety rating.** Power units and drivers are self-reported.

# Actor input Schema

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

Two-letter state codes of the carrier's physical address, e.g. TX, CA, FL. Leave empty for all states.

## `addedWithinDays` (type: `integer`):

Only carriers first added to the FMCSA census in the last N days (new companies). Leave empty for any registration date.

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

Only carriers that filed an MCS-150 update in the last N days. Leave empty for any update date.

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

Skip carriers marked inactive in the census.

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

Keep carriers that report at least this many power units. Leave empty for no minimum.

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

Keep carriers that report at most this many power units, e.g. 5 for owner-operators and small fleets.

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

Keep carriers that report at least this many drivers. Leave empty for no minimum.

## `operationClasses` (type: `array`):

Keep carriers with at least one of these operation classes. Leave empty for all.

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

Keep carriers that report at least one of these cargo types. Leave empty for any cargo.

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

Keep only carriers that report hauling hazardous materials.

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

Keep carriers whose legal name or DBA name contains this text, e.g. express or logistics.

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

Look up specific carriers by USDOT number. When set, the other filters are ignored.

## `includeContacts` (type: `boolean`):

Adds the phone number, email address and listed company officers from the public census record. Turn off for a smaller table.

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

Stop after this many carriers. Each carrier saved is charged once. Newest registrations come first.

## Actor input object example

```json
{
  "states": [
    "TX"
  ],
  "addedWithinDays": 30,
  "activeOnly": true,
  "hazmatOnly": false,
  "includeContacts": true,
  "maxItems": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per carrier: name, location, fleet size, phone, email and registration date.

## `allFields` (type: `string`):

Every carrier with all fields, including cargo types and operation classes.

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

How many carriers matched, the filters used and the census freshness date.

# 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"
    ],
    "addedWithinDays": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("ensorcelling_melilot/fmcsa-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 = {
    "states": ["TX"],
    "addedWithinDays": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("ensorcelling_melilot/fmcsa-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 '{
  "states": [
    "TX"
  ],
  "addedWithinDays": 30
}' |
apify call ensorcelling_melilot/fmcsa-carriers --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ensorcelling_melilot/fmcsa-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/FJ2RHh1EliOeTWrU9/builds/HmTbwjFlRzQ75dXD7/openapi.json
