API reference
Carriers
Last updated:
The motor carrier register: name → DOT number → fleet
- GET
/v2/carriersFind a carrier by name, DOT number or VIN - GET
/v2/carriers/{dotNumber}The carrier: identity, what it declared, what the road record shows - GET
/v2/carriers/{dotNumber}/vehiclesEvery unit observed under a carrier
/v2/carrierssince 2026-10-27Find a carrier by name, DOT number or VIN
One door into the motor carrier register. `q` is read as a US DOT number when it is all digits, as a VIN when it is 17 characters (the carriers that unit was observed under), and otherwise as a name to match against legal and trade names, best match first. `state` and `country` narrow a name match. Each item links to the carrier read and its fleet. Costs 1 credit.
Query parameters
qstringrequiredA carrier name or part of one, a DOT number, or a VIN
statestringoptionalState or province, two letters
countrystringoptionalCountry: US, CA or MX
limitintegeroptionalMatch cap
curl "https://api.cardog.app/v2/carriers?q=bison%20transport&country=CA" \
-H "x-api-key: $CARDOG_API_KEY" \
-H "Cardog-Version: 2026-10-26"Response
200CarrierSearchqueryobjectqstringmatchedAs"name" | "dotNumber" | "vin"How q was read: as a name to match, a DOT number to look up, or a VIN to walk from.
statestring | nullcountrystring | nullcarriersobjectcountintegerItems returned (bounded by limit)
itemsobject[]Best match first
dotNumberintegerrefstring"org:usdot/{dotNumber}"
legalNamestring | nulldbaNamestring | nullTrade name, when the carrier filed one
domicileobjectcitystring | nullstatestring | nullState or province, two letters
countrystring | null"US", "CA" or "MX"
operation"interstate" | "intrastate-hazmat" | "intrastate" | "unknown"The carrier's operating classification on its filing: "interstate" (A), "intrastate-hazmat" (B), "intrastate" (C), or "unknown".
powerUnitsinteger | nullDeclared power units on the latest filing
linksobjectcarrier: the full read. vehicles: the fleet walk.
linksobjectoptionalRelated resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}
Example response
2 keysErrors400401402429500every non-2xx body is the error envelope
/v2/carriers/{dotNumber}since 2026-10-27The carrier: identity, what it declared, what the road record shows
The carrier on the federal register by DOT number: legal and trade name, domicile (city, state, country), operating classification, the scale it declared on its latest filing (`declared`, self-reported and dated by `filedOn`), and what roadside inspections and crash reports recorded under it (`observed`: distinct units, inspections, crashes, first and last seen). Declared and observed never mix. A DOT number the road record names but the register does not answers 200 with `legalName` and every `declared` field null, the same DOT numbers `/vehicles` answers for; 404 when the DOT number is on neither. Costs 5 credits.
Path parameters
dotNumberintegerrequiredThe carrier's US DOT number, e.g. 245330
curl "https://api.cardog.app/v2/carriers/245330" \
-H "x-api-key: $CARDOG_API_KEY" \
-H "Cardog-Version: 2026-10-26"Response
200CarrierdotNumberintegerrefstringlegalNamestring | nullnull when the DOT number is on the road record but not on the register
dbaNamestring | nulldomicileobjectcitystring | nullstatestring | nullState or province, two letters
countrystring | null"US", "CA" or "MX"
operation"interstate" | "intrastate-hazmat" | "intrastate" | "unknown"The carrier's operating classification on its filing: "interstate" (A), "intrastate-hazmat" (B), "intrastate" (C), or "unknown".
declaredobjectWhat the carrier filed about itself. Self-reported; dated by filedOn. Every field null when the DOT number is not on the register.
powerUnitsinteger | nulldriversinteger | nullmileageobject | nullAnnual mileage as filed. Self-reported and often years old; read filedOn before using it as a denominator.
valueintegerMiles
yearinteger | nullThe year the mileage figure is for
filedOnstring | nullDate of the latest filing these figures come from, YYYY-MM-DD
registeredOnstring | nullDate the DOT number was first registered, YYYY-MM-DD
hazmatboolean | nullFiled as carrying hazardous materials
passengersboolean | nullFiled as a passenger carrier
observedobjectWhat the roadside record shows. Counts, never rates.
vehiclesintegerDistinct VINs seen under this carrier on an inspection or crash report
inspectionsintegerEvery roadside inspection under this carrier, with or without a VIN on it; vehicles, firstSeen and lastSeen count only rows that carry a VIN, so do not divide one by the other
crashesintegerfirstSeenstring | nullEarliest event under this carrier, YYYY-MM-DD
lastSeenstring | nullLatest event under this carrier, YYYY-MM-DD
linksobjectoptionalRelated resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}
Example response
9 keysErrors400401402404429500every non-2xx body is the error envelope
/v2/carriers/{dotNumber}/vehiclessince 2026-10-27Every unit observed under a carrier
The fleet walk: every VIN an inspector or a crash report put under this DOT number, most recently seen first, with the roles it was seen in, first and last seen, its event counts, and a link to every carrier it was observed under. These are observed associations on dated rows, not a confirmed current fleet and not ownership. Pages by `cursor`; `vehicles.count` is the total across pages. 404 when the DOT number is on neither the register nor the road record. Costs 5 credits per page.
Path parameters
dotNumberintegerrequiredThe carrier's US DOT number, e.g. 245330
Query parameters
limitintegeroptionalPage size
cursorstringoptionalpage.nextCursor from the previous page
curl "https://api.cardog.app/v2/carriers/245330/vehicles?limit=100" \
-H "x-api-key: $CARDOG_API_KEY" \
-H "Cardog-Version: 2026-10-26"Response
200CarrierVehiclesdotNumberintegercarrierobject | nullnull when the DOT number is not on the register but units were observed under it
dotNumberintegerrefstring"org:usdot/{dotNumber}"
legalNamestring | nulldbaNamestring | nullTrade name, when the carrier filed one
domicileobjectcitystring | nullstatestring | nullState or province, two letters
countrystring | null"US", "CA" or "MX"
operation"interstate" | "intrastate-hazmat" | "intrastate" | "unknown"The carrier's operating classification on its filing: "interstate" (A), "intrastate-hazmat" (B), "intrastate" (C), or "unknown".
powerUnitsinteger | nullDeclared power units on the latest filing
linksobjectcarrier: the full read. vehicles: the fleet walk.
vehiclesobjectcountintegerDistinct units observed under this carrier, all pages
itemsobject[]Most recently seen first
vinstringroles"power" | "towed"[]The roles this unit was observed in under this carrier: ["power"], ["towed"], or both
firstSeenstring | nullYYYY-MM-DD
lastSeenstring | nullYYYY-MM-DD
inspectionsintegercrashesintegerlinksobjectoperators: every carrier this unit was observed under
pageobjectlimitintegernextCursorstring | nullPass as cursor for the next page; null on the last page
linksobjectoptionalRelated resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}
Example response
5 keysErrors400401402404429500every non-2xx body is the error envelope
Generated from the contract. Machine-readable spec: GET https://api.cardog.app/v2/openapi.json · markdown twin: /docs/reference/carriers.md
Was this helpful?