# FMCSA Carrier Leads – New US Trucking Companies (DOT Census) (`yuvalstudios/fmcsa-carriers`) Actor

Find US trucking companies from the official FMCSA Company Census: filter by state, status, fleet size, date added. 'New since last run' mode for fresh carrier leads. No API key.

- **URL**: https://apify.com/yuvalstudios/fmcsa-carriers.md
- **Developed by:** [Yuval Gabay](https://apify.com/yuvalstudios) (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 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

## FMCSA Carrier Leads – New US Trucking Companies (USDOT Census)

Get **fresh US trucking company leads** from the official **FMCSA Company Census File**: USDOT number, legal/DBA name, phone, email, address, power units (trucks), drivers, cargo types, hazmat flag and **date added to FMCSA**. Filter by state, operating status, fleet size and registration date. Schedule it daily with **New since last run** and you only get carriers you haven't seen yet.

No API key, no login, no scraping. The data comes from the U.S. DOT open-data portal (data.transportation.gov, dataset `az4n-8mr2`), which is updated daily.

### Who uses it

- **Truck insurance agents**: reach new authorities in their first weeks.
- **Factoring, fuel card and ELD vendors**: build a daily feed of new fleets.
- **Freight brokers**: find carriers by state, fleet size and cargo type.
- **Compliance / DOT filing services, dispatch services, truck dealers, market researchers.**

### Features

- Filter by **state(s)**, **status** (active/inactive), **date added** range or rolling **added in the last N days**, **min/max power units**, interstate/intrastate operation, **hazmat only**, **email required** and **name contains**.
- **New since last run**: the DOT numbers you've already received are stored in a named key-value store (per `stateKey`), so scheduled runs return only new carriers.
- Clean, normalized JSON: ISO dates, numbers instead of strings, cargo list in plain English, a SAFER snapshot link.
- Export to CSV, Excel or JSON, or use the API, Zapier, Make or Google Sheets.

### Input example

```json
{ "states": ["TX","OK"], "status": "A", "addedWithinDays": 30, "minPowerUnits": 1, "maxPowerUnits": 20,
  "requireEmail": true, "newSinceLastRun": true, "stateKey": "tx-ok-insurance", "maxItems": 2000 }
```

### Output example

```json
{ "dotNumber": 5298712, "legalName": "TEAM WILLIAMSON LLC", "status": "Active", "city": "...", "state": "FL",
  "phone": "...", "email": "...", "powerUnits": 3, "drivers": 3, "operation": "Interstate",
  "cargo": ["General freight"], "hazmat": false, "addedDate": "2026-10-13", "mcs150Date": "2026-10-13",
  "fmcsaUrl": "https://safer.fmcsa.dot.gov/query.asp?...", "source": "FMCSA Company Census File (data.transportation.gov az4n-8mr2)" }
```

### What's new (October 2026)

- **More contact data:** `mobilePhone`, both listed officers (`officers`), D\&B number, `operatingRadius` and `daysSinceAdded`.
- **New filters:** *Only carriers with a phone number* and *Cargo types* (e.g. refrigerated food, hazmat-free general freight, household goods).

### Pricing

Pay per result: **$0.003 per carrier** ($3 per 1,000). You pay nothing for runs that return zero new carriers beyond the tiny start fee.

### Tips

- Daily new-carrier feed: set `addedWithinDays` to 30 (a rolling window, no date to update), turn on `newSinceLastRun`, and schedule a daily run.
- Results are ordered by newest add date first.

### FAQ

**Is this legal?** Yes. It reads public U.S. government open data through the official Socrata API. Respect the CAN-SPAM Act and TCPA when you contact carriers.
**How fresh is the data?** FMCSA refreshes the census file on data.transportation.gov daily.
**Keywords:** FMCSA scraper, USDOT lookup, new trucking authorities, MC number leads, carrier census, trucking leads, DOT carrier list.

### How to use

1. Click **Try for free** (or **Start**) — the form is pre-filled with a small working example.
2. Adjust the filters and **Max results**, then run. Most runs finish in under a minute.
3. Open the **Output** tab to view the table, or export CSV, Excel or JSON, or pull it via the API, Zapier, Make, Google Sheets or webhooks.
4. For alerts, save the input as a task, turn on **New since last run**, and schedule it daily or weekly.

### Related actors

- [FDA Recalls: food, drug & device enforcement reports](https://apify.com/yuvalstudios/fda-recalls)
- [USAspending Federal Awards: new contracts & grants](https://apify.com/yuvalstudios/usaspending-awards)
- [Grants.gov Federal Grant Opportunities](https://apify.com/yuvalstudios/grants-gov-opportunities)
- [SEC Form D private offerings (startup funding)](https://apify.com/yuvalstudios/sec-form-d)
- [UK New Companies (Companies House)](https://apify.com/yuvalstudios/uk-new-companies)
- [Bulk DMARC, SPF & DKIM Checker](https://apify.com/yuvalstudios/dmarc-spf-dkim-checker)
- [Israel Open Data (data.gov.il)](https://apify.com/yuvalstudios/israel-open-data)

### Data source & disclaimer

- **Source:** FMCSA Company Census File on the U.S. DOT open data portal ([data.transportation.gov](https://data.transportation.gov/Trucking-and-Motorcoaches/Company-Census-File/az4n-8mr2)), with links to [FMCSA SAFER](https://safer.fmcsa.dot.gov).
- **How fresh:** the census file is refreshed by FMCSA regularly (typically daily to weekly); new USDOT registrations can take a few days to appear. Each row has `scrapedAt` (when this run fetched it) plus the source's `addedDate` (USDOT registration) and `mcs150Date`.
- **Licence & attribution:** U.S. federal government open data, public domain. No attribution required; we credit "Source: FMCSA / U.S. DOT".
- **Disclaimer:** Data is provided **as is** from public records, without warranty of any kind. Records can contain errors, omissions or delays from the source or from processing, so check anything important against the official source. This actor and its output are **not legal, financial, compliance or medical advice**. You are responsible for using the data lawfully: many carriers are owner-operators, so phone numbers and emails can belong to individuals. The **TCPA** (calls/texts), **CAN-SPAM** (email), the Do-Not-Call registry and state privacy laws apply. This actor is independent and **not affiliated with or endorsed by** FMCSA or the U.S. Department of Transportation.
- **Last verified:** 2026-10-19.

# Actor input Schema

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

Physical-address states, e.g. TX, FL. Empty = all.

## `status` (type: `string`):

Filter by carrier operating status.

## `addedAfter` (type: `string`):

Registration (add) date lower bound.

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

Rolling window: only carriers added to FMCSA in the last N days (ignored when 'Added after' is set). Ideal for scheduled daily lead feeds.

## `addedBefore` (type: `string`):

Only carriers added to FMCSA before this date.

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

Minimum number of power units (trucks).

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

Maximum number of power units.

## `carrierOperation` (type: `string`):

Interstate / intrastate operation type.

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

Only return hazmat carriers.

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

Keep carriers that haul at least one of these cargo types. Leave empty for all.

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

Only return rows that have an email address.

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

Keep only carriers that list an office or mobile phone.

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

Case-insensitive substring match on legal or DBA name.

## `newSinceLastRun` (type: `boolean`):

Return only DOT numbers not returned by previous runs with the same stateKey (schedule it daily).

## `stateKey` (type: `string`):

Key used to remember seen carriers for new-since-last-run mode.

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

Maximum number of results to return.

## Actor input object example

```json
{
  "states": [
    "TX"
  ],
  "status": "A",
  "addedWithinDays": 14,
  "carrierOperation": "any",
  "hazmatOnly": false,
  "requireEmail": false,
  "requirePhone": false,
  "newSinceLastRun": false,
  "stateKey": "default",
  "maxItems": 50
}
```

# Actor output Schema

## `carriers` (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"
    ],
    "addedWithinDays": 14,
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("yuvalstudios/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": 14,
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("yuvalstudios/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": 14,
  "maxItems": 50
}' |
apify call yuvalstudios/fmcsa-carriers --silent --output-dataset

```

## MCP server setup

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