FMCSA carrier by USDOT or MC number
A US motor carrier, broker or freight forwarder by USDOT or MC/MX number: legal and DBA name, entity type, USDOT status, operating authority status, out-of-service date, MC numbers, power units and drivers, safety rating with rating and review dates, 24-month US inspections (vehicle, driver, hazmat, IEP: inspections, out-of-service counts and rates against the national averages) and crashes (fatal, injury, tow), Canadian inspections and crashes, the company snapshot (addresses, phone, DUNS, MCS-150 date and mileage, operation classification, carrier operation, cargo carried) and the census record (entity types, operation, business type, hazmat, dockets with status, fleet owned and leased by vehicle type, driver counts by radius, cargo, mileage, dates). For sole proprietors the street address and phone are left out; officer names and e-mails are never returned.
Add include=insurance for the carrier's insurance filings (form, BIPD / cargo / bond, primary or excess, insurer, policy number, coverage, effective and filing dates; newest first, history included) and include=authority_history for its operating-authority history (authority type, status, reason, date). Both can be combined (include=insurance,authority_history); inspections and crashes are always in the response.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
dot | string | USDOT number. Example: 80806 |
mc | string | MC/MX/FF docket number (e.g. 135797 or MC-135797), instead of dot. |
include | string | Extra sections, comma list: insurance, authority_history (inspections and crashes are accepted and always included). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/fmcsa/v1/carrier?dot=80806" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/fmcsa/v1/carrier",
params={"dot": "80806"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/fmcsa/v1/carrier");
url.searchParams.set("dot", "80806");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).