CarrierOk

FMCSA API documentation: where to find it.

Two documentation sets matter. FMCSA’s official QCMobile docs cover the free raw-data API, on the QCMobile developer site. For computed risk scores, monitoring, and the full commercial API, the CarrierOk developer docs cover everything, with an OpenAPI spec and a free sandbox.

The short answer

FMCSA documents QCMobile on its developer site, endpoint by endpoint, with a WebKey required for every call. CarrierOk documents its own API at developers.carrierok.com with a typed OpenAPI spec, per-field definitions and a free sandbox key, so a response can be read before anything is paid.

The official docs
mobile.fmcsa.dot.gov/QCDevsite covers QCMobile's endpoints and the WebKey. It documents raw FMCSA records, which is all QCMobile returns.
What is missing there
No BASIC percentiles, no ISS score, no insurance history and no change feed, because the API does not return them.
CarrierOk's docs
Every endpoint, field, error code and limit, with a typed OpenAPI spec for code generation and a data dictionary defining each field.
Reading a real response
A free sandbox key is issued at signup with no card and returns every endpoint on fixture data from ten evaluation carriers.
Field counts
The full profile returns 300+ fields; the FMCSA mirror returns exactly 236, null where FMCSA has no value, so every response has the same shape.
Quick Answer

What you need → where it’s documented.

You needDocumentation
Raw FMCSA record lookups, free, low volumeFMCSA QCMobile developer site
Full REST reference with computed risk data (ISS, BASICs, signals)CarrierOk developer docs
Machine-readable spec for client codegenOpenAPI spec on the CarrierOk developer portal
Try requests without an account or cardCarrierOk free sandbox (fixture data, all endpoints)
Feature-by-feature comparison of the two APIsCarrierOk vs. QCMobile
Working Example

One request, the full carrier record.

The CarrierOk API authenticates with a Bearer token in the Authorization header and returns a {"items": […], "total_count"} envelope with flat, snake_case fields, 300+ of them per carrier, refreshed throughout the day.

Request
curl "https://api.carrierok.com/v2/profile?dot_number=1234567" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response (trimmed)
{
  "items": [{
    "dot_number": "1234567",
    "legal_name": "APEX TRANSPORT LLC",
    "usdot_status": "Active",
    "iss_value": "82",
    "iss_recommendation": "INSPECT",
    "basic_percentile_unsafe_driving": 0.84,
    "basic_percentile_vehicle_maintence": 0.83,
    "...": "300+ fields per carrier"
  }],
  "total_count": 1
}

The sandbox returns fixture data for 10 evaluation carriers with no card required.

Coverage

What the CarrierOk developer docs cover.

Carrier profiles · GET /v2/profile

The full computed record: ISS score, all 7 BASIC percentiles, 50+ risk signals, policy-level insurance, and identity. 300+ fields on every FMCSA registrant.

Raw FMCSA data · GET /v2/profile-fmcsa

Consolidated FMCSA record without the intelligence layer: registration, authority with revocation history, SMS measures, inspections, crashes, and insurance filings in one fixed-schema response.

Monitoring · /v2/monitoring/add and /list

Watch a portfolio of carriers and pull only what changed, instead of re-fetching full profiles. 15+ alert event types.

Sandbox and billing

How the free sandbox works, the $50 activation credit, and how each endpoint is billed: the raw FMCSA endpoint per call, full profiles and monitoring per unique carrier per month.

Getting a key takes a minute; the walkthrough is at how to get an FMCSA API key. Evaluating the official API instead? Start with the QCMobile API guide or the side-by-side comparison.

FMCSA API Documentation: Frequently Asked Questions

CarrierOk is a carrier intelligence API. It consolidates the FMCSA record on any motor carrier or broker and adds the scoring FMCSA does not publish: all 7 BASIC percentiles, a computed ISS score, 50+ named risk signals, and policy-level insurance history, with monitoring that reports changes the same day. The same record is delivered however you consume it: a REST API, the web app, a Chrome extension, or bulk files.
Yes. FMCSA's official developer API is QCMobile. Registration and documentation live on the QCMobile developer site (mobile.fmcsa.dot.gov/QCDevsite), where you request a free WebKey and get access to raw FMCSA data: carrier identity, operating authority, basic safety records, and out-of-service information. It does not return computed risk scores such as ISS or BASIC percentile ranks.
QCMobile's documentation is on FMCSA's developer site at mobile.fmcsa.dot.gov/QCDevsite. It covers WebKey registration, the available carrier endpoints, and response formats. For a walkthrough with endpoint examples and practical limits, see the QCMobile API guide.
CarrierOk's developer documentation is at developers.carrierok.com/docs. It includes a quickstart, authentication (Bearer token in the Authorization header), the full endpoint reference (carrier profiles, raw consolidated FMCSA data, monitoring, and market intelligence), a machine-readable OpenAPI spec, and a free sandbox that returns fixture data so you can integrate before paying anything.
SAFER is FMCSA's public website for manual, one-at-a-time carrier lookups. It is not an API, and scraping it is brittle and rate-limited. QCMobile is the official programmatic interface to much of the same data. If you're currently scraping SAFER, either QCMobile (free, raw data) or a commercial API like CarrierOk (computed risk scores, monitoring, one-call profiles) replaces the scraper with a supported interface.
QCMobile is free with a registered WebKey, subject to rate limits, and returns raw data only. CarrierOk's API is pay-as-you-go and priced by endpoint: the raw FMCSA endpoint per call, full profiles and monitoring per unique carrier per month. The sandbox is free with no card required, and a $50 activation is applied as $50 of API credit.

Read the docs, then try the sandbox.

Full REST reference, OpenAPI spec, and a free sandbox with fixture data. No card required to start.