FMCSA carrier by USDOT or MC number

GET https://api.api.sh/fmcsa/v1/carrier
1 credit / call government & registries try it in the playground →

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

nametypedescription
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"

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).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.