Motor Carrier API
Look up any US motor carrier, broker, or freight forwarder by USDOT number or docket (MC) number. Returns legal and DBA name, address, operating authority, insurance filings, safety rating, out-of-service status, and crash and inspection history — built from the public Federal Motor Carrier Safety Administration (FMCSA) files, covering all 4.4 million registered entities.
Freight fraud and double-brokering are the expensive problem this data solves. After the Supreme Court's 2026 decision in Montgomery v. Caribe Transport II, brokers face state negligent-selection claims, and documented carrier vetting is the control. Every response carries a data_as_of and retrieved_at stamp so you can evidence exactly what the record showed at the moment you checked.
From 8,322 users
Applications using this API
API Status
API Response Times
Average | P50 | P75 | P90 | P95 |
|---|---|---|---|---|
| 386ms | 419ms | 444ms | 732ms | 1326ms |
Similar APIs
Didn't find what you were looking for? Suggest an improvement
https://api.api-ninjas.com/v1/motorcarrier
Canonical carrier profile. Provide exactly one of dot or mc.
Parameters
dotoptionalUSDOT number, for example
428823.mcoptionalDocket number, with or without the prefix —
MC227271or227271. MC, MX and FF prefixes are all supported. Docket numbers were not retired by FMCSA's 2026 registration modernization.checksoptional premiumSet to
trueto include a per-check evaluation against C.H. Robinson's published carrier selection criteria: authority active, safety rating acceptable, BI&PD and cargo coverage thresholds, no out-of-service order, no pending insurance cancellation, and MCS-150 currency. Returns the individual checks and their reasons, not an overall verdict.min_bipdoptional premiumBI&PD threshold in dollars used by
checks. Defaults to1000000, the market contractual floor. The federal minimum is $750,000 under 49 CFR 387.9.min_cargooptional premiumCargo coverage threshold in dollars used by
checks. Defaults to100000.
Response fields
Every key is always present, with null where a value is unavailable. Premium fields return a placeholder string below Business.
foundBoolean.
falsewhen no carrier matches the identifier.carrierObject with the carrier record, or
nullwhenfoundis false. Containsdot_number,legal_name,dba_name,status,entity_types,carrier_operation,business_type,registration_date,physical_address,mailing_address,dockets,authority,power_units,drivers,mcs150_date,safety_rating,safety_rating_date,out_of_service,out_of_service_dateandout_of_service_reasonon every plan; andphone,fax,cell_phone,email_address,company_officer_1,company_officer_2,undeliverable_address,prior_revocation,prior_revocation_dot_number,mcs150_mileage,mcs150_mileage_year,mcs150_due_date,mcs150_overdue,recordable_crash_rate,operation_classifications,cargo_classes,equipment,hazmatanddun_bradstreet_numberon Business and above.criteriaPresent only when
checks=true. Containscriteria_source,checks,checks_passed,checks_failedandnote.data_as_ofUpstream publication date per source, e.g.
census,insurance,authority,inspections. Together withretrieved_atthis is the point-in-time record of what FMCSA showed when you checked.retrieved_atUTC timestamp of this response.
sourceSource attribution string.
disclaimerObject of notices:
affiliation,accuracy, and where applicablepermitted_use,no_safety_determinationandcoverage.
A note on safety ratings. Unrated is a normal and acceptable state: roughly 92% of active interstate carriers hold no rating, because FMCSA only assigns one after a compliance review. Conditional means FMCSA found inadequate safety management controls. Do not treat Unrated as a failure.
Sample Request Live Demo!
Try our APIs in the API playground
Sign up for a free API key to get started — no credit card required.
https://api.api-ninjas.com/v1/motorcarrier?dot=428823Headers
X-Api-KeyLog in or sign up to get your API KeySample Response
Code Examples
1
2
curl -X GET "https://api.api-ninjas.com/v1/motorcarrier?dot=428823" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/motorcarriersearch
Find carriers by name or location, or reverse-look-up a phone number or email address. At least one parameter is required.
Parameters
nameoptionalCompany name, minimum 3 alphanumeric characters. Matching is prefix-based against a normalized form of both the legal name and the DBA name: case, punctuation and a leading "The" are ignored, so
knight transportationandThe Knight Transportation, Inc.match the same records.state,city,zipoptionalFilter by the physical address on file.
statusoptionalOne of
active,inactiveorpending.phone,emailoptional premiumReverse lookup: find every carrier registered with a given phone number, email address, or email domain. A phone or domain shared across several carriers is a standard double-brokering signal.
limit,offsetoptionallimitdefaults to 20, maximum 100.offsetis capped at 10000.
Response fields
countNumber of carriers returned in this page.
limitPage size used.
offsetOffset used.
carriersArray of matches. Each has
dot_number,legal_name,dba_name,city,state,zip,status,carrier_operation,power_units,driversandsafety_rating.data_as_ofUpstream publication date per source, e.g.
census,insurance,authority,inspections. Together withretrieved_atthis is the point-in-time record of what FMCSA showed when you checked.retrieved_atUTC timestamp of this response.
sourceSource attribution string.
disclaimerObject of notices:
affiliation,accuracy, and where applicablepermitted_use,no_safety_determinationandcoverage.
Sample Request Live Demo!
Try our APIs in the API playground
Sign up for a free API key to get started — no credit card required.
https://api.api-ninjas.com/v1/motorcarriersearch?name=knight transportation&state=AZHeaders
X-Api-KeyLog in or sign up to get your API KeySample Response
Code Examples
1
2
curl -X GET "https://api.api-ninjas.com/v1/motorcarriersearch?name=knight%20transportation&state=AZ" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/motorcarrierinsurance
Policy-level insurance filings for a carrier: form code, insurer, policy number, coverage amount, and effective and cancellation dates. Requires a Business or higher subscription.
Parameters
dotormcrequiredUSDOT number or docket number. Provide exactly one.
Catching a lapse before it happens
Insurers must give FMCSA 30 days' written notice on Form BMC-35 before cancelling a policy (49 CFR 387.313(d)). That creates a window in which a carrier still shows insurance on file while counting down to no coverage at all. The summary object exposes it directly:
cancellation_pending— a filing is scheduled to cancel within 30 daysdays_until_cancellation— how many days remain, where0means todaybond_below_threshold— a broker bond under the $75,000 floor in 49 CFR 387.307insurer_count— distinct insurers on file; frequent churn signals financial instability
Response fields
foundBoolean.
dot_numberThe resolved USDOT number.
summaryRolled-up view:
bipd_coverage,cargo_coverage,bond_coverage,active_filings,cancellation_pending,days_until_cancellation,bond_below_threshold,bond_thresholdandinsurer_count.filingsArray of active filings. Each has
form_code,insurance_type,insurer_name,policy_number,coverage_amount,coverage_currency,underlying_limit,effective_date,cancellation_date,days_until_cancellation,cancellation_pendinganddocket.cancellation_noticesBMC-35 filings, listed separately because they are cancellation notices rather than coverage.
noteExplains the dollar normalization and the BMC-35 split.
data_as_ofUpstream publication date per source, e.g.
census,insurance,authority,inspections. Together withretrieved_atthis is the point-in-time record of what FMCSA showed when you checked.retrieved_atUTC timestamp of this response.
sourceSource attribution string.
disclaimerObject of notices:
affiliation,accuracy, and where applicablepermitted_use,no_safety_determinationandcoverage.
Two things worth knowing about this data. All coverage_amount values are in US dollars. FMCSA's legacy files state coverage in thousands while the current system states it in dollars, and we normalize both to dollars on ingest. Separately, BMC-35 filings are cancellation notices, not coverage, so they are returned under cancellation_notices and excluded from filings and from every coverage total.
Sample Request Live Demo!
Try our APIs in the API playground
Sign up for a free API key to get started — no credit card required.
https://api.api-ninjas.com/v1/motorcarrierinsurance?dot=428823Headers
X-Api-KeyLog in or sign up to get your API KeySample Response
Code Examples
1
2
curl -X GET "https://api.api-ninjas.com/v1/motorcarrierinsurance?dot=428823" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/motorcarriersafety
Crash counts by severity, inspection and out-of-service rates measured against the national average, and public BASIC results from FMCSA's Safety Measurement System.
Parameters
dotormcrequiredUSDOT number or docket number. Provide exactly one.
Response fields
foundBoolean.
dot_numberThe resolved USDOT number.
carrier_classpropertyorpassenger. Determines whether percentiles exist.window_monthsMeasurement window, 24 months.
crashestotal,fatal,injury,tow_away. A crash can be both fatal and injury, so the parts do not sum to the total.inspectionsKeyed by
vehicleanddriver, each withinspections,out_of_service,out_of_service_pctandnational_average_pct(Business+).basicsArray of BASIC results with
basic,code,measure,inspections_with_violation,acute_critical_violation,percentile,alert,trend(Business+), andavailabilityon the two withheld BASICs.percentile_availabilitypassenger_carriers_onlyoravailable.percentile_noteWhy percentiles are null for property carriers.
not_publicBASICs FMCSA withholds: Crash Indicator and HazMat Compliance.
coverage_noteScope limits, including the absence of Canadian data.
data_as_ofUpstream publication date per source, e.g.
census,insurance,authority,inspections. Together withretrieved_atthis is the point-in-time record of what FMCSA showed when you checked.retrieved_atUTC timestamp of this response.
sourceSource attribution string.
disclaimerObject of notices:
affiliation,accuracy, and where applicablepermitted_use,no_safety_determinationandcoverage.
Why percentile is usually null. FMCSA does not publish BASIC percentiles for property carriers. Section 5223 of the FAST Act removed public display in 2015, and the replacement methodology adopted at 89 FR 91874 has not launched. Percentiles and alert flags are published only for passenger carriers, so percentile and alert are null for everyone else and percentile_availability says so explicitly. Absolute measures are available for all carriers. Any property-carrier percentile you see elsewhere is a modelled estimate, not an FMCSA figure.
Crash Indicator and HazMat Compliance are returned with availability: "not_public", mirroring FMCSA's own display. Coverage is United States only: Canadian inspections and crashes are not published in the FMCSA bulk files.
Sample Request Live Demo!
Try our APIs in the API playground
Sign up for a free API key to get started — no credit card required.
https://api.api-ninjas.com/v1/motorcarriersafety?dot=428823Headers
X-Api-KeyLog in or sign up to get your API KeySample Response
Code Examples
1
2
curl -X GET "https://api.api-ninjas.com/v1/motorcarriersafety?dot=428823" \
-H "X-Api-Key: YOUR_API_KEY"https://api.api-ninjas.com/v1/motorcarrierlinks
Other carriers that share a physical address, telephone number, email domain or company officer with the carrier you asked about, flagged when any of them holds revoked or suspended authority. Requires a Business or higher subscription.
Parameters
dotormcrequiredUSDOT number or docket number. Provide exactly one.
Why linkage matters
Freight fraud in 2026 shifted from creating fake carriers to buying real ones. When a ring purchases an active authority with its insurance and phone number intact, every single-entity check passes: the authority is active, the insurance is current, the phone connects. The pattern only appears across entities — a shared address, a reused officer name, an email domain that also belongs to a carrier whose authority was revoked last month.
Answering that question requires holding the complete 4.4-million-record census rather than looking up one carrier at a time.
Response fields
foundBoolean.
falsewhen the carrier shares no indexed attribute with another carrier.dot_numberThe resolved USDOT number.
linked_carrier_countDistinct carriers linked by any attribute.
linksArray grouped by attribute. Each has
link_type(address,phone,email_domainorofficer),description,shared_value,association,linked_carrier_countandlinked_carriers.linked_to_revoked_authorityTrue when any linked carrier has held revoked or suspended authority. The chameleon-carrier signal.
revoked_linked_dot_numbersUSDOT numbers of those carriers.
noteHow to read linkage.
data_as_ofUpstream publication date per source, e.g.
census,insurance,authority,inspections. Together withretrieved_atthis is the point-in-time record of what FMCSA showed when you checked.retrieved_atUTC timestamp of this response.
sourceSource attribution string.
disclaimerObject of notices:
affiliation,accuracy, and where applicablepermitted_use,no_safety_determinationandcoverage.
Read these as leads, not verdicts. Legitimate carriers share addresses with affiliates, and officers commonly appear on more than one company. Values shared by more than 500 carriers — registered-agent addresses, filing-service phone numbers — are excluded as registration artefacts.
Sample Request Live Demo!
Try our APIs in the API playground
Sign up for a free API key to get started — no credit card required.
https://api.api-ninjas.com/v1/motorcarrierlinks?dot=5920Headers
X-Api-KeyLog in or sign up to get your API KeySample Response
Code Examples
1
2
curl -X GET "https://api.api-ninjas.com/v1/motorcarrierlinks?dot=5920" \
-H "X-Api-Key: YOUR_API_KEY"Frequently Asked Questions
Can I use the Motor Carrier API for commercial purposes?
Yes, but you must have a premium subscription. Commercial use of the Motor Carrier API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.How do I get an API key and start using the Motor Carrier API?
Sign up for a free account to instantly get your API key, then pass it in theX-Api-Keyheader on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.What happens if I exceed my quota for the month?
Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.What happens if a request to the Motor Carrier API fails?
The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.What can I look up with the Motor Carrier API?
Query any US motor carrier, broker, or freight forwarder by USDOT number (dot) or docket number (mc). The/v1/motorcarrierendpoint returns legal and DBA name, physical and mailing address, entity type, operating authority, power units, driver count, MCS-150 filing date, safety rating, and out-of-service status. Companion endpoints cover insurance filings, crash and inspection history, and carriers sharing an address or phone. For vehicle-level data see the VIN Lookup API.Where does the data come from, and how current is it?
All data comes from public Federal Motor Carrier Safety Administration (FMCSA) files published at data.transportation.gov. Operating authority, insurance filings, out-of-service orders, crashes, and inspections refresh daily; SMS/BASIC results are published monthly by FMCSA. Every response carries adata_as_ofobject with per-source freshness and aretrieved_attimestamp, so you can evidence exactly what the record showed at the moment you checked. API Ninjas is not affiliated with or endorsed by FMCSA or the US Department of Transportation.Why is the BASIC percentile null for most carriers?
Because FMCSA does not publish it. Section 5223 of the FAST Act removed public display of BASIC percentiles for property carriers in 2015, and the replacement methodology adopted at 89 FR 91874 has not launched. Percentiles and alert flags are published only for passenger carriers, sopercentileandalertarenullfor everyone else and the response explains why inpercentile_note. Absolute BASIC measures are available for all carriers. Any property-carrier percentile you see elsewhere is a modelled estimate, not an FMCSA figure.What does days_until_cancellation mean?
Insurers must give FMCSA 30 days' written notice on Form BMC-35 before cancelling a policy (49 CFR 387.313(d)). That creates a window where a carrier still shows insurance on file while counting down to no coverage. The insurance endpoint surfacescancellation_pendinganddays_until_cancellationso you can catch it before tendering a load.Which fields require a paid plan?
Identity, address, operating authority, power units, drivers, safety rating, and out-of-service status are available on all plans. The contact block (phone,email_address, company officers), fleet composition, cargo classes, derived flags such asmcs150_overdue, the criteria checks, and the insurance and entity-graph endpoints require a Business or higher subscription.Can I use this for driver screening or credit decisions?
No. This API is not a consumer report and API Ninjas is not a consumer reporting agency under the Fair Credit Reporting Act. It is intended for carrier vetting, freight brokerage, logistics operations, compliance monitoring, and research. It may not be used for employment or driver-hiring decisions, credit or tenant screening, individual insurance underwriting, or any adverse action against an individual. No driver-level data is included.
Data source and permitted use
All data comes from public Federal Motor Carrier Safety Administration records published at data.transportation.gov. Operating authority, insurance, out-of-service orders, crashes and inspections refresh daily; SMS and BASIC results are published monthly by FMCSA.
API Ninjas is not affiliated with, endorsed by, or sponsored by the U.S. Department of Transportation or the Federal Motor Carrier Safety Administration. API Ninjas is a private third-party data provider, and fees are for API access only, not for any government service. The authoritative record is the FMCSA SAFER Company Snapshot at safer.fmcsa.dot.gov, and corrections are filed through FMCSA DataQs.
This data is provided as-is with no warranty of accuracy, completeness or timeliness. This API does not make a safety determination about any carrier and does not endorse any carrier. Per FMCSA, readers should not draw conclusions about a carrier's overall safety condition simply based on the data displayed in this system; unless a carrier has received an UNSATISFACTORY safety rating, it is authorized to operate.
Not a consumer report. API Ninjas is not a consumer reporting agency as defined by the Fair Credit Reporting Act. Permitted uses are carrier vetting, freight brokerage, logistics operations, compliance monitoring and research. This data may not be used for consumer eligibility determinations, employment or driver-hiring decisions, credit or tenant screening, or individual insurance underwriting, and may not form the basis of any adverse action against an individual. No driver-level data is included. Contact information returned by this API may not be used for marketing or resold as a lead list.
Coverage is United States only. Canadian inspection and crash data are not published in the FMCSA bulk files and are not included.