FMCSA API Quickstart
One GET request returns 236 fields of consolidated FMCSA datafor any US motor carrier — registration, operating authority, safety measures, inspections, crashes, and insurance filings, unified across FMCSA's census, licensing, and safety systems. No scraping SAFER, no juggling QCMobile rate limits, no joining five FMCSA files yourself. $0.10 a lookup, and lookups that find nothing are free.
This endpoint is deliberately just the FMCSA truth— none of CarrierOk's derived risk scoring. If you want ISS scores, BASIC percentiles, risk signals, and fraud indicators, use /v2/profile instead.
Get a free sandbox key
Sign up — a sk_test_ sandbox key is issued instantly. No card, no expiration. Sandbox keys serve real live data for 10 demo carriers, in exactly the production response shape — what you build against the sandbox works unchanged in production.
Make your first call
Look up sandbox carrier DOT 456295. You can also run this in the sandbox console without leaving the browser — pick the FMCSA endpoint and press Run.
curl "https://api.carrierok.com/v2/profile-fmcsa?dot_number=456295" \
-H "Authorization: Bearer YOUR_SANDBOX_KEY"{
"items": [
{
"_id": "456295-0",
"usdot_status": "Active",
"dot_number": "456295",
"docket": null,
"legal_name": "RAOCAT RUBBER INC",
"telephone_number": "3047565000",
"physical_address": "1290 RABEL MT ROAD, SOUTH CHARLESTON, WV 25309",
"entity_type_desc": "Carrier",
"authority_common": null,
"total_power_units": "4",
"total_drivers": "4",
"inspections_total": "9",
"inspections_vehicle_out_of_service_pct": "0.429",
"safety_rating_desc": null,
"crashes_total": "0",
"snapshot_date": "2026-07-08"
// …all 236 fields, every response. null = FMCSA has no value.
}
],
"total_count": 1
}Read the response — the schema never moves
Every response carries the same fixed 236 keys, in the same order, for every carrier. Where FMCSA has no value, the field is null — never omitted. Map your columns once and they hold for all 4M+ carriers. The full field list is in the OpenAPI spec (schema FmcsaProfile, ready for client codegen) and the endpoint reference.
Docket lookups can match more than one carrier
docket_number occasionally resolves to multiple carriers (fleet consolidations). The response ranks the operating carrier first, and the lookup still bills once.Go live
Activate live access for $50 — applied as $50 of API credit, which is 500 FMCSA lookups. Pay-as-you-go after that, no subscription. Swap your sk_test_ key for the sk_live_ key and the same call reaches every carrier in the FMCSA system:
curl "https://api.carrierok.com/v2/profile-fmcsa?docket_number=277621" \
-H "Authorization: Bearer YOUR_LIVE_KEY"{
"items": [
{
"_id": "568253-MC277621",
"usdot_status": "Active",
"dot_number": "568253",
"docket": "MC277621",
"legal_name": "HANSEN & ADKINS AUTO TRANSPORT INC",
// …all 236 fields
}
],
"total_count": 1
}Errors are conventional: 400 for a missing/invalid identifier, 404 when no carrier matches (free), 429 past 150 requests/min, and a rare 503 if the data store is briefly unavailable — never billed, just retry. Details on the rate limits page.
Re-checking carriers every day?