# FMCSA Carrier Authority, Insurance & Safety Monitor (`luminar/fmcsa-carrier-monitor`) Actor

Look up and bulk-export official FMCSA carrier profiles, identify fresh registrations, and track explicit MOTUS authority, insurance, suspension and public safety changes.

- **URL**: https://apify.com/luminar/fmcsa-carrier-monitor.md
- **Developed by:** [Luka](https://apify.com/luminar) (community)
- **Categories:** Automation, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.74 / 1,000 current fmcsa carrier profiles

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Find carriers, export up to 500,000 official profiles, build fresh-registration lead lists, and monitor explicit FMCSA authority, insurance, suspension, OOS, inspection, crash, and public-safety changes in one Actor.

The Actor reads only structured first-party FMCSA/DOT datasets over direct HTTPS. It does not call another Actor, scrape SAFER pages, use a browser or proxy, require a QCMobile key, or enrich records from third parties.

### 🚀 Quick start

Keep the safe default, replace the USDOT number if needed, and run:

```json
{
  "workflow": "CURRENT_PROFILE",
  "usdotNumbers": ["21800"],
  "maxResults": 1
}
```

Open the Dataset for carrier rows and the run Output for coverage, source, limit, and billing details.

![FMCSA carrier profiles with USDOT, authority, insurance, fleet, and safety fields](https://api.apify.com/v2/key-value-stores/DJgPR6wwS2tIaLDQW/records/fmcsa_carrier_authority_monitor--0d70e4153d580ca6-fmcsa-carrier-authority-results.png)

This product screenshot uses the Actor's current Input and Dataset schemas with a clearly marked deterministic fixture. It shows the buyer-facing field layout and is not a live carrier record.

### 🎯 Choose the right workflow

#### Current Profile

Look up carriers by USDOT number, MC/MX/FF docket, or legal/DBA company name. A full normalized profile can include:

- public contact and address fields, fleet size, operating status, carrier operation, entity type, hazmat, MCS-150 date, and registration date;
- current modern MOTUS authority by stable docket and authority-type identity;
- current insurance policies plus separately labeled insurance-history events;
- New Entrant carrier-operation OOS orders;
- safety rating, bounded roadside inspection/OOS and crash-involvement summaries;
- public SMS measures where the official cohort publishes them;
- transparent source-fact lead signals, without an opaque score.

#### Bulk Export

Export the same normalized carrier profile contract with filters for company name, state, carrier operation, active status, hazmat, fleet size, registration dates, authority type, included data, and detail level.

The real one-run boundary is **500,000 carrier rows**. Company Census is read first. Up to 10,000 matching carriers use targeted side-source queries; larger scopes stream the required official full datasets through a disk-partitioned, target-scoped join. Results are delivered in bounded chunks instead of being accumulated in memory. Exactly 500,000 rows are accepted and tested; row 500,001 produces `CAPPED` and is never delivered.

#### New Registrations

Find Company Census records added in the last 1–365 days, with the same useful carrier filters. `NEW_REGISTRATION` means a new USDOT/census registration. It does **not** mean operating authority was granted. `authorityGranted=true` appears only when an exhausted targeted AuthHist query confirms the grant; incomplete proof is `null`, never a guessed `false`.

#### Changes

Monitor up to 5,000 USDOT/docket/company targets or use the bounded nationwide daily-difference cycle. The first identical scope seeds versioned state. A repeat run with that same scope, executed sequentially, emits deterministic `NEW`, `UPDATED`, or safely confirmed `ENDED` transitions.

Daily-difference identities are reconciled against matching rows from the corresponding official full baseline. The Actor does not rescan every multi-million-row full file for one small delta, and it never treats an unreconciled tombstone as a deletion.

The Actor does not offer `ALL_CHANGES` or a generic `REVOKED` event. Current RevokeSuspend source values are voluntary or involuntary **suspension notices**. Effective authority inactivity requires explicit AuthHist status evidence.

### 📦 Output you can use

The mixed Dataset keeps `recordType` visible:

| Record type | Buyer result |
|---|---|
| `carrier_profile` | Current or bulk carrier profile |
| `new_registration` | New Company Census registration lead |
| `change` | Explicit official event plus state transition |

Stable identities are source-specific and target-scoped: USDOT for carriers, normalized docket plus authority type for authority, hashed policy identity for insurance, and official inspection/crash IDs where published. Duplicate identities with different payloads fail closed.

This is a **synthetic fixture** showing the declared shape only. Its identifiers and values are invented.

```json
{
  "schemaVersion": "1.0",
  "recordType": "change",
  "stableId": "authority_history:synthetic",
  "changeId": "transition:synthetic",
  "changeType": "NEW",
  "eventType": "AUTHORITY_REINSTATED",
  "eventCategory": "AUTHORITY",
  "attentionLevel": "MEDIUM",
  "usdotNumber": "99999999",
  "docketNumber": "MC99999999",
  "authorityStatus": "Active",
  "sourceReasonClass": "REINSTATED",
  "statusChangeDate": "2026-08-28",
  "observedAt": "2026-08-28T12:00:00.000Z"
}
```

### 🎛️ Input guide

| Input | Workflows | What it changes |
|---|---|---|
| `workflow` | All | Selects Current Profile, Bulk Export, New Registrations, or Changes. |
| `usdotNumbers` | Current, Changes | Exact carriers; all watchlist target types combined cannot exceed 5,000. |
| `docketNumbers` | Current, Changes | Exact MC/MX/FF dockets, resolved to USDOT where officially linked. |
| `companyNames` | Current, Bulk, Changes | Legal/DBA contains-match. It narrows results and cannot prove global absence. |
| `changeScope` | Changes | Watchlist or bounded nationwide official cycle. |
| `eventTypes` | Changes | Explicit event allow-list; unsupported or new source values fail closed. |
| `maxEvents` | Changes | Delivery/charge cap from 1 to 5,000; reaching it reports `CAPPED`. |
| `maxStateTargets` | Changes | Versioned state capacity from 1 to 5,000 monitored targets. |
| `daysBack` | New Registrations | Company Census add-date lookback from 1 to 365 days. |
| `states` | Current, Bulk, New | Optional physical-address state filter. |
| `carrierOperations` | Current, Bulk, New | Exact official Company Census carrier-operation values or codes. |
| `authorityTypes` | Profiles, Changes | Exact modern MOTUS authority types. |
| `activeOnly` | Current, Bulk, New | Company Census active status; not a substitute for authority status. |
| `hazmatOnly` | Current, Bulk, New | Keeps official hazmat-indicated carrier rows. |
| `minPowerUnits`, `maxPowerUnits` | Current, Bulk, New | Fleet-size range. |
| `registeredAfter`, `registeredBefore` | Current, Bulk, New | Company Census add-date range in `YYYY-MM-DD`. |
| `includeAuthority` | Current, Bulk | Adds current modern MOTUS authority joins. |
| `includeInsurance` | Current, Bulk | Adds current/pending policy joins; cancellations remain separate filings. |
| `includeSafetySummary` | Current, Bulk | Adds OOS, rating, SMS, inspection, and crash summaries. This increases source work. |
| `includeSafetyEvents` | Changes | Enables selected stable-ID inspection, violation, and crash events. |
| `includeSmsMeasures` | Profiles, Changes | Adds public monthly measures where officially available. |
| `includePendingAuthorities` | Changes | Permits `AUTHORITY_PENDING`; pending does not mean permission to operate. |
| `safetyLookbackMonths` | Current, Bulk | Inspection/crash window from 1 to 60 months. Longer windows increase transfer, disk, and runtime. |
| `outputProfile` | Current, Bulk | Essential, Standard, or Full declared fields. |
| `maxResults` | Result workflows | Current ≤5,000; Bulk Export ≤500,000; New Registrations ≤10,000. |
| `maxBuyerChargeUsd` | All | Stops before source work if the configured worst-case Actor charge exceeds the guard. |

Hidden request, byte, page, runtime, disk, and estimated-spend limits are fail-closed resource guards. They cannot silently turn stopped work into complete coverage.

### 💰 Pricing

The active schedule uses the same complete event prices on Free, Bronze, Silver, Gold, Platinum, and Diamond.

| Workflow | Verified official-source completion | Delivered result |
|---|---:|---:|
| Current Profile | $0.00875 | $0.00474125 per profile |
| Bulk Export | $0.00875 | $0.00474125 per carrier |
| New Registrations | $0.00875 | $0.00379144 per registration |
| Changes | $0.00875 | $0.0189125 per change |

A completed official scope uses one $0.00875 source-completion event plus its delivered-result events. The fixed event is charged only after usable official evidence exists; blocked or failed source work is free. A positively empty result, Changes seed, or unchanged repeat therefore costs only $0.00875.

Examples: a positively empty successful run is $0.00875; 1,000 Current Profile or Bulk Export records are $4.75; 1,000 New Registrations are $3.80019; and 100 verified Changes are $1.90. Duplicate, suppressed, and undelivered rows add no result event. Result events are delivered atomically with their Dataset rows; state commits only after delivery acknowledgement.

### ✅ Coverage and limits

| Status | Exact meaning |
|---|---|
| `COMPLETE` | Every required source branch and cursor/file boundary for the requested comparable scope finished. |
| `FILTERED` | Source work finished, but buyer filters intentionally limited visible rows. |
| `CAPPED` | A declared result, event, request, page, byte, runtime, disk, or charge limit stopped work. |
| `PARTIAL` | Some trustworthy branches finished and at least one required branch did not. |
| `BLOCKED` | The official source could not be reached because of access or rate-limit behavior. |
| `FAILED` | Input, source contract, parser, reconciliation, state, or runtime failed without a trustworthy complete result. |
| `EMPTY_CONFIRMED` | The expected source shape was reached and positively proved zero matching rows. |

Every Socrata traversal uses an explicit stable order with a `:id` tiebreaker, bounded pages, an N+1 overlap check, page receipts, and metadata before/after locking. The platform's default 1,000-row response is never accepted as full-dataset proof. If a required bulk side join is incomplete, the Actor suppresses composite profiles instead of showing empty arrays as if the join were complete.

Current-entity `ENDED` needs two consecutive comparable complete absences. Historical authority, insurance, inspection, and crash events are not erased because a later file omits them. `PARTIAL`, `FILTERED`, `CAPPED`, `BLOCKED`, and `FAILED` runs preserve prior state.

State is schema-versioned, migration-tested, split into bounded shards, and committed only after confirmed event-aware delivery. A durable outbox prevents duplicate charge, duplicate row delivery, or duplicate state advance across retry/fault boundaries.

### Exact safety and authority meanings

- Insurance cancellation is a filing, not proof that replacement coverage is absent.
- `TERM/REPL` is a termination/replacement history row; a replacement policy is not invented.
- A suspension notice is not automatically an effective inactive authority.
- Roadside inspection OOS is not a carrier-operation OOS order.
- A New Entrant OOS order is not an authority suspension.
- A crash record proves reported involvement, not fault.
- Private driver data, unfiled email addresses, and unavailable property-carrier percentiles are not invented.

### 🔌 Automation and repeat runs

For repeat monitoring, save a tested Changes input as an Apify Task or in your own scheduler. On each repeat run, use the exact same scope and execute it sequentially so state comparisons remain trustworthy. Upsert downstream by `stableId`, `eventId`, or `changeId`. Dataset exports support JSON, CSV, Excel, XML, and RSS; the run-wide report is in the default key-value store's `OUTPUT` record.

### ❓ Support and FAQ

For support, share the Apify run ID, selected workflow, requested scope, and `coverage.state`. Do not include credentials, private driver data, or unrelated account information. Check the run-wide `OUTPUT` record first because it identifies reached sources, caps, and incomplete branches.

**Why is the result `FILTERED` instead of `COMPLETE`?**\
Name, state, date, authority, and event filters intentionally narrow the result. Filtered emptiness cannot prove deletion.

**Why was there no change on the first run?**\
The first exact Changes scope seeds trusted state. Later comparable runs produce transitions.

**Why is there no generic `REVOKED` event?**\
The current official source contract distinguishes suspension notices and explicit AuthHist status transitions. A future official value must receive an allow-listed mapping and regression test before becoming a buyer event.

**Does local `npm start` fetch FMCSA?**\
No. Live extraction fails closed outside Apify Cloud. Local validation uses deterministic fixtures only.

# Actor input Schema

## `workflow` (type: `string`):

Current Profile resolves named carriers. Bulk Export streams the same normalized official profile up to 500,000 rows. New Registrations separates a new USDOT registration from an authority grant. Changes reconciles requested official daily-difference rows against their full baseline.

## `usdotNumbers` (type: `array`):

Exact carrier identifiers for Current Profile or a Changes watchlist. Punctuation and leading zeroes are normalized without changing the raw source value. Combined USDOT, docket and company targets cannot exceed 5,000.

## `docketNumbers` (type: `array`):

Official operating-authority docket identifiers. Use the MC, MX, or FF prefix. They are resolved to USDOT when the source publishes that link.

## `companyNames` (type: `array`):

Legal/DBA contains-match for Current Profile, Bulk Export, or a Changes watchlist. It narrows the requested scope, reports FILTERED coverage, and cannot prove that no other entity exists.

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

Current Profile accepts up to 5,000; Bulk Export up to 500,000; New Registrations up to 10,000. The runtime enforces the selected workflow boundary and reports CAPPED when more official rows may exist.

## `maxBuyerChargeUsd` (type: `number`):

Fail before source work when the worst-case configured event total for the chosen limits exceeds this guard. Increase it deliberately for bulk modes.

## `changeScope` (type: `string`):

Used only by Track verified changes. Watchlist requires at least one target. Nationwide reads the bounded current official daily cycle.

## `eventTypes` (type: `array`):

Only these explicitly mapped official-source events can be delivered. There is no ALL\_CHANGES or generic REVOKED event. Nationwide mode supports daily-difference and append-only safety events; full-snapshot safety rating, OOS-order, and SMS comparisons are watchlist-only.

## `maxEvents` (type: `integer`):

Hard Changes delivery and charging cap. Reaching it reports CAPPED; incomplete work never proves deletion.

## `maxStateTargets` (type: `integer`):

Versioned state capacity for Changes. It must cover every requested watchlist target and is independently tested at 5,000.

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

Used by New Registrations. A census add date proves a new registration, not an operating-authority grant.

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

Optional two-letter state filters for bulk, new registrations, current profiles, or change enrichment. Filtered emptiness is not source-wide absence.

## `carrierOperations` (type: `array`):

Optional exact Company Census carrier-operation values or codes. Unknown text returns a filtered empty result instead of being guessed.

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

Optional exact modern MOTUS authority-type filters. Unknown future values fail as source-contract drift instead of being silently remapped.

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

Applies the official Company Census active status filter. It does not replace authority status.

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

Keeps Company Census rows carrying the official hazmat indicator.

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

Optional fleet-size floor.

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

Optional fleet-size ceiling. It must be at least Minimum power units.

## `registeredAfter` (type: `string`):

Optional YYYY-MM-DD Company Census add-date filter.

## `registeredBefore` (type: `string`):

Optional YYYY-MM-DD Company Census add-date filter.

## `includeAuthority` (type: `boolean`):

Joins official modern MOTUS docket/type/status, requirements and filed indicators.

## `includeInsurance` (type: `boolean`):

Joins official current/pending Motus Insur rows. Cancellation filings are separately labeled and never treated as proof of no replacement coverage.

## `includeSafetySummary` (type: `boolean`):

Adds official safety rating, public SMS measures, OOS orders, and lookback-bounded inspection/crash aggregates to Current Profile and Bulk Export. This increases source transfer, disk work, and runtime.

## `includeSafetyEvents` (type: `boolean`):

Allows selected stable-ID safety events in Changes. Also select their Change types. Crash involvement is not fault; roadside inspection OOS is not a carrier operation OOS order.

## `includeSmsMeasures` (type: `boolean`):

Adds public monthly measures. Passenger percentiles/alerts are included only where the official cohort dataset publishes them; property percentiles are not promised.

## `includePendingAuthorities` (type: `boolean`):

Allows AUTHORITY\_PENDING events. Pending status is not permission to operate.

## `safetyLookbackMonths` (type: `integer`):

Limits inspection and crash rows joined into Current Profile and Bulk Export summaries. A longer window increases official-source transfer, temporary disk use, and run time.

## `outputProfile` (type: `string`):

Controls current/bulk profile detail without changing monitoring identity. Every public field remains declared in the Dataset schema.

## `maxSourceRequests` (type: `integer`):

Fail-closed request guard for metadata and deterministic paginated source exhaustion. It never turns a stopped traversal into COMPLETE.

## `maxSourceBytes` (type: `integer`):

Infrastructure transfer guard for streaming official files.

## `maxRuntimeSecs` (type: `integer`):

Infrastructure source-work deadline below the Actor timeout.

## `maxTemporaryDiskBytes` (type: `integer`):

Disk guard for hash-partitioned full-file joins.

## `maxEstimatedPlatformUsd` (type: `number`):

Fail-closed infrastructure estimate; final settled usageTotalUsd remains authoritative.

## `maxSourceRowsPerDataset` (type: `integer`):

Hard traversal guard. Reaching it with an N+1 row reports CAPPED and prevents a completeness claim.

## `maxSocrataPagesPerDataset` (type: `integer`):

Hard deterministic pagination guard. Every page uses stable order, offset, and N+1 exhaustion receipts.

## `_luminarQaFaultStage` (type: `string`):

Factory-controlled private QA fault probe. Omit for every normal run. Runtime identity, fleet exclusion, actor key and immutable canonical build-tag guards must all pass before this value can take effect.

## Actor input object example

```json
{
  "workflow": "CURRENT_PROFILE",
  "usdotNumbers": [
    "21800"
  ],
  "maxResults": 1,
  "maxBuyerChargeUsd": 0.25,
  "changeScope": "WATCHLIST",
  "eventTypes": [
    "NEW_REGISTRATION",
    "AUTHORITY_GRANTED",
    "AUTHORITY_REINSTATED",
    "AUTHORITY_WITHDRAWN",
    "AUTHORITY_VOLUNTARILY_SUSPENDED",
    "AUTHORITY_INVOLUNTARILY_SUSPENDED",
    "AUTHORITY_VOLUNTARY_SUSPENSION_NOTICE",
    "AUTHORITY_INVOLUNTARY_SUSPENSION_NOTICE",
    "INSURANCE_CANCELLATION_FILED",
    "INSURANCE_TERMINATED_OR_REPLACED",
    "INSURANCE_NAME_CHANGED",
    "INSURANCE_POLICY_ADDED_OR_UPDATED",
    "INSURANCE_POLICY_DROPPED"
  ],
  "maxEvents": 10,
  "maxStateTargets": 1000,
  "daysBack": 30,
  "activeOnly": false,
  "hazmatOnly": false,
  "minPowerUnits": 0,
  "maxPowerUnits": 1000000,
  "includeAuthority": true,
  "includeInsurance": true,
  "includeSafetySummary": true,
  "includeSafetyEvents": false,
  "includeSmsMeasures": true,
  "includePendingAuthorities": false,
  "safetyLookbackMonths": 24,
  "outputProfile": "STANDARD",
  "maxSourceRequests": 30000,
  "maxSourceBytes": 8000000000,
  "maxRuntimeSecs": 3300,
  "maxTemporaryDiskBytes": 8000000000,
  "maxEstimatedPlatformUsd": 3,
  "maxSourceRowsPerDataset": 15000000,
  "maxSocrataPagesPerDataset": 2000
}
```

# Actor output Schema

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

Typed current profiles, new registrations, or explicit verified source changes. Use recordType to distinguish rows.

## `runReport` (type: `string`):

Requested/reached scope, source cycles, limits, state, deduplication, delivery, and charge events.

# 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 = {
    "workflow": "CURRENT_PROFILE",
    "usdotNumbers": [
        "21800"
    ],
    "maxResults": 1,
    "maxBuyerChargeUsd": 0.25,
    "changeScope": "WATCHLIST",
    "maxEvents": 10,
    "maxStateTargets": 1000,
    "daysBack": 30,
    "activeOnly": false,
    "hazmatOnly": false,
    "minPowerUnits": 0,
    "maxPowerUnits": 1000000,
    "includeAuthority": true,
    "includeInsurance": true,
    "includeSafetySummary": true,
    "includeSafetyEvents": false,
    "includeSmsMeasures": true,
    "includePendingAuthorities": false,
    "safetyLookbackMonths": 24,
    "outputProfile": "STANDARD",
    "maxSourceRequests": 30000,
    "maxSourceBytes": 8000000000,
    "maxRuntimeSecs": 3300,
    "maxTemporaryDiskBytes": 8000000000,
    "maxEstimatedPlatformUsd": 3,
    "maxSourceRowsPerDataset": 15000000,
    "maxSocrataPagesPerDataset": 2000
};

// Run the Actor and wait for it to finish
const run = await client.actor("luminar/fmcsa-carrier-monitor").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 = {
    "workflow": "CURRENT_PROFILE",
    "usdotNumbers": ["21800"],
    "maxResults": 1,
    "maxBuyerChargeUsd": 0.25,
    "changeScope": "WATCHLIST",
    "maxEvents": 10,
    "maxStateTargets": 1000,
    "daysBack": 30,
    "activeOnly": False,
    "hazmatOnly": False,
    "minPowerUnits": 0,
    "maxPowerUnits": 1000000,
    "includeAuthority": True,
    "includeInsurance": True,
    "includeSafetySummary": True,
    "includeSafetyEvents": False,
    "includeSmsMeasures": True,
    "includePendingAuthorities": False,
    "safetyLookbackMonths": 24,
    "outputProfile": "STANDARD",
    "maxSourceRequests": 30000,
    "maxSourceBytes": 8000000000,
    "maxRuntimeSecs": 3300,
    "maxTemporaryDiskBytes": 8000000000,
    "maxEstimatedPlatformUsd": 3,
    "maxSourceRowsPerDataset": 15000000,
    "maxSocrataPagesPerDataset": 2000,
}

# Run the Actor and wait for it to finish
run = client.actor("luminar/fmcsa-carrier-monitor").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 '{
  "workflow": "CURRENT_PROFILE",
  "usdotNumbers": [
    "21800"
  ],
  "maxResults": 1,
  "maxBuyerChargeUsd": 0.25,
  "changeScope": "WATCHLIST",
  "maxEvents": 10,
  "maxStateTargets": 1000,
  "daysBack": 30,
  "activeOnly": false,
  "hazmatOnly": false,
  "minPowerUnits": 0,
  "maxPowerUnits": 1000000,
  "includeAuthority": true,
  "includeInsurance": true,
  "includeSafetySummary": true,
  "includeSafetyEvents": false,
  "includeSmsMeasures": true,
  "includePendingAuthorities": false,
  "safetyLookbackMonths": 24,
  "outputProfile": "STANDARD",
  "maxSourceRequests": 30000,
  "maxSourceBytes": 8000000000,
  "maxRuntimeSecs": 3300,
  "maxTemporaryDiskBytes": 8000000000,
  "maxEstimatedPlatformUsd": 3,
  "maxSourceRowsPerDataset": 15000000,
  "maxSocrataPagesPerDataset": 2000
}' |
apify call luminar/fmcsa-carrier-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,luminar/fmcsa-carrier-monitor"
        }
    }
}

```

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/fcTRuIagUMc6dMe5q/builds/HYWfZadM2jeqv8MTL/openapi.json
