FMCSA SAFER Carrier Scraper
Pricing
Pay per event
FMCSA SAFER Carrier Scraper
Look up official FMCSA carrier records by USDOT number or company name, including operating authority, fleet, safety rating, inspection, and crash summaries.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Look up official FMCSA carrier records by USDOT number or company name. This safer data Actor returns carrier identity, operating status, fleet size, visible operating authority, safety rating, and bounded inspection and crash summaries as typed JSON.
It is built for carrier qualification, compliance reviews, insurance workflows, freight operations, and recurring portfolio monitoring. No FMCSA API key is required.
What does FMCSA SAFER Carrier Scraper do?
The Actor joins four official public FMCSA datasets into one carrier snapshot:
- Company Census identity and registration data.
- Motus operating-authority and visible insurance filing data.
- Inspection, violation, and out-of-service aggregates.
- Crash, injury, and fatality aggregates.
Search by one or many USDOT numbers, or discover matching entities from a legal-name or DBA fragment. Optional state and active-status filters narrow the result set.
Who is it for?
- Freight brokers qualifying a carrier before tendering a load.
- Insurance teams reviewing fleet, authority, and public safety indicators.
- Compliance teams building scheduled carrier-monitoring jobs.
- Shippers and procurement teams checking an approved carrier list.
- Data teams enriching a CRM, spreadsheet, warehouse, or internal carrier API.
The Actor exports source facts. It does not make a hiring, insurance, contracting, or legal decision for you.
Why use this safer scraper?
- Uses official
data.transportation.govFMCSA records. - Accepts exact USDOT lookup and company-name discovery in one input.
- Produces one normalized carrier object instead of several raw source rows.
- Includes configurable 1–60 month safety aggregates.
- Works anonymously, with an optional Socrata app token for higher quota.
- Returns direct source and SAFER Snapshot links for review.
- Stops at the requested
maxItemslimit.
What FMCSA carrier data can I extract?
| Group | Example fields |
|---|---|
| Identity | USDOT number, legal name, DBA, entity type |
| Registration | operating status, operation class, MCS-150 date and mileage |
| Contact | public phone, email, physical and mailing addresses |
| Fleet | power units and drivers |
| Review | safety rating, rating date, review date and type |
| Authority | docket, authority type/status, minimum coverage, visible filings |
| Inspection summary | inspections, violations, out-of-service, driver and vehicle totals |
| Crash summary | crashes, fatalities, injuries |
| Provenance | SAFER Snapshot URL, open-data URL, extraction timestamp |
A field can be null when FMCSA does not publish it for that carrier. authorities can be empty, and safetySummary is null when enrichment is disabled.
How to run your first carrier lookup
- Open the Actor input page.
- Enter one or more values in USDOT numbers or Company names.
- Keep authority and safety enrichment enabled for a qualification snapshot.
- Choose a safety lookback, normally 24 months.
- Set the maximum number of carriers.
- Click Start.
- Open the default dataset to export JSON, CSV, Excel, XML, or RSS.
A reliable first input is:
{"usdotNumbers": ["21800"],"includeAuthority": true,"includeSafetySummary": true,"safetyLookbackMonths": 24,"maxItems": 1}
Input parameters
| Field | Type | Default | Meaning |
|---|---|---|---|
usdotNumbers | array | — | Exact USDOT identifiers, as numbers or numeric strings |
companyNames | array | — | Case-insensitive legal-name or DBA fragments |
states | array | — | Optional two-letter physical-address state codes |
activeOnly | boolean | false | Keep only active census records |
includeAuthority | boolean | true | Join visible Motus authority records |
includeSafetySummary | boolean | true | Aggregate inspection and crash facts |
safetyLookbackMonths | integer | 24 | Safety period from 1 to 60 months |
maxItems | integer | 10 | Maximum carrier rows, from 1 to 100 |
appToken | string | — | Optional secret Socrata app token |
At least one USDOT number or company name is required. State filters do not form a standalone discovery query.
Search FMCSA carriers by company name
Use a real business-name fragment when the USDOT number is unknown:
{"companyNames": ["United Parcel Service"],"includeAuthority": true,"includeSafetySummary": true,"maxItems": 5}
Company search can match several legal names or DBAs. Use states, activeOnly, and a conservative maxItems to narrow broad names.
Monitor a qualified carrier list
A scheduled Task can refresh multiple known carriers:
{"usdotNumbers": ["21800", "86876"],"activeOnly": true,"includeAuthority": true,"includeSafetySummary": true,"safetyLookbackMonths": 36,"maxItems": 2}
Schedule the Task daily, weekly, or monthly. Store snapshots in your own database or automation destination to detect changes. The Actor returns the current source view; it does not maintain change history or send alerts by itself.
Output example
This shortened record reflects the Actor's current output shape. Public contact details are omitted from the documentation sample.
{"usdotNumber": "21800","legalName": "UNITED PARCEL SERVICE INC","dbaName": "UPS","operatingStatus": "Active","carrierOperation": "Interstate","entityType": "CORPORATION","phone": null,"email": null,"physicalAddress": {"street": null,"city": "ATLANTA","state": "GA","zip": "30328","country": "US"},"powerUnits": 112321,"drivers": 128806,"safetyRating": "Satisfactory","authorities": [{"docketNumber": "MC115495","authorityType": "Motor Carrier of Property (Except Household Goods)","status": "Active","minimumCoverageUsd": 750000,"bipdCoverageUsd": 1000000,"cargoInsuranceFiled": false,"bondFiled": false}],"safetySummary": {"periodStart": "2024-08-06","periodEnd": "2026-08-06","inspections": 18748,"violations": 12100,"outOfService": 1925,"crashes": 778,"fatalities": 18,"injuries": 355},"saferSnapshotUrl": "https://safer.fmcsa.dot.gov/query.asp?...","scrapedAt": "2026-08-06T14:10:00.000Z"}
Counts depend on the selected period and source refresh, so later runs can differ.
How much does it cost to look up FMCSA carrier records?
The Actor uses pay-per-event pricing: one start event per run and one item event for each carrier saved. The Apify Console shows the exact active tier for your account before you run it.
On the FREE plan, the run fee is $0.005 and each carrier is $0.0051888. Paid plans receive the active tier discount shown in Apify Console.
| Saved carriers | FREE-tier calculation |
|---|---|
| 1 | 0.005 + (1 × 0.0051888) = 0.0101888 USD |
| 10 | 0.005 + (10 × 0.0051888) = 0.056888 USD |
| 100 | 0.005 + (100 × 0.0051888) = 0.52388 USD |
Empty searches pay only the start event. Authority entries and safety aggregates inside a carrier record are not separately charged. Apify compute is included in PPE pricing.
Export and integration workflows
After a run, use the dataset UI or API to:
- download CSV or Excel for a compliance review;
- append records to Google Sheets;
- send a carrier snapshot to Slack or email through an automation;
- upsert by
usdotNumberinto a CRM or warehouse; - compare scheduled snapshots in Make, Zapier, n8n, or your own code;
- feed reviewed source facts into a carrier onboarding checklist.
Use USDOT number as the stable join key. Company names can change and are not unique.
Run through the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~fmcsa-safer-carrier-scraper/runs?token=$APIFY_TOKEN&waitForFinish=300" \-H "Content-Type: application/json" \-d '{"usdotNumbers": ["21800"],"includeAuthority": true,"includeSafetySummary": true,"maxItems": 1}'
Read results from the returned run's defaultDatasetId, or use the synchronous dataset-items endpoint for small jobs.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/fmcsa-safer-carrier-scraper').call({companyNames: ['FedEx'],states: ['TN'],activeOnly: true,includeAuthority: true,includeSafetySummary: true,maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/fmcsa-safer-carrier-scraper').call(run_input={'usdotNumbers': ['21800', '86876'],'includeAuthority': True,'includeSafetySummary': True,'safetyLookbackMonths': 24,'maxItems': 2,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use the Actor through MCP
Add this Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/fmcsa-safer-carrier-scraper"
Claude Desktop, Cursor, and VS Code can use the same remote MCP server configuration. Add it to the client's MCP settings:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/fmcsa-safer-carrier-scraper"}}}
Example prompts:
- “Look up USDOT 21800 and summarize its operating authority and last 24 months of safety counts.”
- “Find active FedEx carrier entities in Tennessee and return their USDOT numbers.”
- “Refresh these USDOT records and format a carrier qualification table.”
Data freshness and source limitations
The Actor queries official FMCSA open-data datasets, whose refresh schedules differ. A successful extraction means the source answered; it does not guarantee that a carrier has filed every field recently.
Safety totals are aggregates of public inspection and crash records over the requested period. They are not a reproduction of every visual SAFER rate or national-average comparison. The Actor does not return private driver details, SMS BASIC percentiles, enforcement advice, insurance verification, or a risk score.
The SAFER website link may apply its own access controls when opened manually. Extraction uses the official structured FMCSA datasets rather than scraping that protected HTML page.
Reliability and troubleshooting
Requests use a 30-second timeout, bounded concurrency, and exponential retry for network failures, HTTP 429, and temporary server errors. Malformed input and deterministic API errors fail the run instead of silently producing misleading empty data.
Why did my run return zero records?
Check the USDOT digits and try a shorter company-name fragment. Remove states or disable activeOnly if those filters exclude the record.
Why is authorities empty?
Not every census entity has a matching visible Motus authority row. It can also mean authority enrichment was disabled.
Why is a safety count zero?
No matching public event may exist inside the selected lookback. Zero is different from safetySummary: null, which means enrichment was disabled.
Responsible use and legality
FMCSA publishes these records for public safety and registration access. Use them responsibly, follow applicable laws and contractual duties, and verify consequential decisions against the linked official record. Do not use public contact information for harassment, unlawful discrimination, or unsolicited messaging that violates applicable rules.
This Actor is an independent automation tool and is not affiliated with or endorsed by FMCSA or the U.S. Department of Transportation.
Related automation-lab Actors
For event-level analysis rather than one carrier snapshot, use FMCSA Inspections, Violations & Crashes Scraper. It exports individual inspection, violation, citation, and crash records and complements this carrier-level qualification Actor.
FAQ
Can I search by MC number?
Not in this release. Search by USDOT number or company name, then inspect the returned authority docket numbers.
Can I submit 100 carriers at once?
Yes. Set maxItems up to 100. Split larger portfolios across Tasks so retries and monitoring remain easy to audit.
Does this Actor send change alerts?
No. Schedule recurring runs and connect the dataset to your preferred database or automation to compare snapshots.
Do I need a proxy or FMCSA key?
No. The selected official structured data route works anonymously. An optional Socrata app token can raise source quota.
Are the safety totals a compliance verdict?
No. They are source counts for the selected period. Review the underlying official record and apply your organization's own qualified decision process.