Skip to content
Haul10

API and MCP

Before you book a load, onboard a carrier or pay an invoice, ask whether the carrier is current. The answer comes from FMCSA open data and says when it was read. It is read-only.

Try it without a key

curl -s https://www.haul10.com/api/v1/carriers/1234567/status

The answer has the USDOT status, each operating authority with liability insurance on file against the required minimum, the MCS-150 deadline and state, the UCR bracket and fee, and a signals object for yes/no checks. It is a reading of public data on the day it names, not a legal determination. UCR payment is not public and comes back as paymentVisibleInPublicData: false.

Keyless requests are limited to 30 an hour per address. A free API key from Settings allows 200 calls a day, and 5000 a day once your account has a Pro carrier.

MCP

Streamable HTTP, JSON responses. Add it to any MCP client. Every tool is read-only.

claude mcp add --transport http haul10 https://www.haul10.com/api/mcp \
  --header "Authorization: Bearer h10_live_..."
  • carrier_status: is this USDOT number current (no key)
  • ucr_fee: the UCR bracket and fee for a vehicle count (no key)
  • mcs150_schedule: the MCS-150 month, year parity and next deadline (no key)
  • my_carriers: the carriers on your account and what is due (key)

REST endpoints

Method and pathWhat it doesKey
GET /api/v1/carriers/{usdot}/statusFiling status of a carrierOptional
GET /api/v1/ucr/feeUCR bracket and feeNone
GET /api/v1/me/carriersCarriers tracked by the key's account, and what is dueRequired

The full description is at /openapi.json, and a plain-text map for language models is at /llms.txt. Errors are JSON with a sentence in error and a stable code: invalid, not_found, unavailable (safe to retry), rate_limited, unauthorized.

Not built yet: asking for a filing over the API or MCP. Filing is done in the app, where the carrier signs the authorisation.