# FMCSA Trucking Carrier Leads (`yanairon/fmcsa-trucking-carrier-leads`) Actor

US carrier businesses from the official FMCSA Company Census: USDOT, registered phone/email, address and fleet size. Filter by location, fleet and registration date. Explicit corporations/partnerships only; narrower than the full census. Contacts may be personal. No authority verification.

- **URL**: https://apify.com/yanairon/fmcsa-trucking-carrier-leads.md
- **Developed by:** [Yanai Ron](https://apify.com/yanairon) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 carrier records

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 Carrier Leads

Export US for-hire carrier businesses by default from the official FMCSA Company Census File. Filter by state, city, fleet size, carrier operation and registration date. JSON, CSV and Excel exports are available from the Apify dataset.

### What you get

One record per USDOT number: business and DBA name, registered phone/email when valid, physical address, organization type, census status, power/truck/bus units, driver count, cargo codes, operation/classification, registration date, MCS-150 date and any recorded safety rating/date. Missing or invalid values are null. Cargo values retain the official field-code suffixes. No company-officer names, fax, cell-phone field or mailing-address fields are exported.

### Coverage and privacy limitations

Default `forHireOnly: true` keeps census classifications `AUTHORIZED FOR HIRE` or `EXEMPT FOR HIRE` and excludes private-only fleets such as a dairy or steel supplier hauling its own goods. A carrier with both private and for-hire classifications remains included. Set `forHireOnly: false` to include private-only business fleets. This classification is self-reported census data, not current authority or insurance verification.

This is a deliberately narrow business-only subset, not the full FMCSA census. Only records explicitly marked Partnership or Corporation (business_org_id 2 or 3), with a carrier operation (CARSHIP contains C) and a US physical address, are included. Individuals and missing organization types are always excluded, even when activeOnly is false. The official dictionary says organization type is populated from reviews only, so many genuine companies are omitted.

On October 13, 2026, the source had 98,637 active US carrier records with those explicit business types, compared with 2,109,777 active US carrier entries overall. That historical count includes private-only fleets and is not the default for-hire output count. Counts change as the source updates; missing required names or invalid USDOT IDs can reduce output further.

A classified business can still register a home address, personal phone or personal email. These are public registered contacts, not verified corporate contacts or guaranteed deliverable leads. No claim is made that every returned contact is non-personal. Respect privacy, consent and outreach laws. The Actor does not enrich data or retrieve hidden information.

### Input

| Field | Default | Meaning |
| --- | --- | --- |
| maxRecords | 1000 | Output cap, 1 to 1,000,000. Start small. |
| forHireOnly | true | Keep AUTHORIZED FOR HIRE or EXEMPT FOR HIRE classifications; false also includes private-only fleets. Not authority verification. |
| activeOnly | true | Census status A only. False includes inactive/pending business carriers. |
| state | blank | Two-letter physical-address state code. |
| city | blank | Exact physical-address city, case-insensitive. |
| operation | blank | A interstate, B intrastate hazmat, C intrastate non-hazmat. |
| registeredSince | blank | Inclusive FMCSA ADD_DATE cutoff, YYYY-MM-DD. Not authority grant date. |
| minPowerUnits | blank | Inclusive minimum self-reported power units. |
| maxPowerUnits | blank | Inclusive maximum self-reported power units. |

```
{"state":"TX","maxRecords":100,"minPowerUnits":5,"activeOnly":true}
```

Fleet filters exclude unknown fleet size. Empty results can be valid. Records are paginated in ascending USDOT order; the changing daily source is not a transactionally frozen snapshot. There is no delta mode, cross-run tracking or new-authority feed.

### Source and freshness

Official source: [FMCSA Company Census File, DOT Open Data](https://data.transportation.gov/Trucking-and-Motorcoaches/Company-Census-File/az4n-8mr2), dataset az4n-8mr2. Publisher: Federal Motor Carrier Safety Administration. The portal metadata lists a daily update frequency. We query its public Socrata endpoint at run time, without login or proxy.

Field meanings follow the portal's MCMIS Company Census Data Dictionary, Revision 8 (January 23, 2026). Self-reported fleet/contact information can be old or incomplete. Census active status is not proof of current operating authority, insurance, safety fitness or permission to operate. Safety ratings can be historical or absent. Not affiliated with or endorsed by FMCSA/DOT.

### Pricing

$0.005 per returned record ($5 per 1,000 records), pay per event. No monthly subscription. The run's charge limit is respected. Check the displayed run estimate and platform charges before running a large export.

### Development

From the monorepo root: `npm test`. Live source check: `node actors/fmcsa/src/smoke.js`. Unit tests cover business exclusion, every filter, date/contact cleanup, validation, query escaping, pagination, output caps and source-layout errors.

# Actor input Schema

## `maxRecords` (type: `integer`):

Cap on returned records; 1 to 1,000,000. Start small.

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

Return active FMCSA census records only. This is not operating-authority verification.

## `state` (type: `string`):

Optional two-letter physical-address state, for example TX.

## `city` (type: `string`):

Optional exact physical-address city, case-insensitive.

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

FMCSA operation code.

## `registeredSince` (type: `string`):

Optional inclusive FMCSA add-date cutoff, YYYY-MM-DD. Not a first-authority date.

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

Inclusive minimum self-reported fleet size. Missing values do not match.

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

Inclusive maximum self-reported fleet size. Missing values do not match.

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

Keep records classified AUTHORIZED FOR HIRE or EXEMPT FOR HIRE. Excludes private-only fleets. This is a census classification, not operating-authority verification.

## Actor input object example

```json
{
  "maxRecords": 1000,
  "activeOnly": true,
  "operation": "",
  "forHireOnly": true
}
```

# Actor output Schema

## `records` (type: `string`):

Cleaned US carrier corporation and partnership records matching the filters.

# 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 = {};

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

# Run the Actor and wait for it to finish
run = client.actor("yanairon/fmcsa-trucking-carrier-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 '{}' |
apify call yanairon/fmcsa-trucking-carrier-leads --silent --output-dataset

```

## MCP server setup

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