CarrierOk API vs FMCSA Data Sources
FMCSA publishes carrier data across four separate public systems — SAFER, the QCMobile API, SMS, and L&I — plus the Socrata bulk datasets for history. This guide maps what each one gives you, what it withholds, and what it takes to build an underwriting, brokerage, or compliance workflow on free sources versus one CarrierOk call.
The five options, side by side
| System | What it gives you | API | Updates | Gaps |
|---|---|---|---|---|
| SAFER | Web lookup of registration, authority, fleet size, inspection/crash summaries | No — web only (scraping violates FMCSA ToS) | Irregular | 5 of 7 BASICs, no ISS, no insurance detail, no history |
| QCMobile API | Registration, authority, and basic safety data by DOT/docket (free WebKey) | Yes — REST, JSON/XML | Follows SAFER refresh | No BASIC percentiles, no insurance filings, no history, DOT/docket keys only |
| SMS | BASIC percentiles and measures; downloadable snapshot files | No — website + monthly file downloads | Monthly | Crash Indicator & Hazmat percentiles withheld from public view |
| L&I | Insurance filings (BIPD/cargo/bond), pending cancellations | No — web query system | As insurers file | No safety data; separate ID reconciliation with the other systems |
| CarrierOk API | All of the above in one flat profile: registration, authority, insurance, all 7 BASICs, ISS, history arrays, computed risk signals | Yes — REST, typed OpenAPI spec | 4x daily | Commercial (free sandbox; $50 activation credit, pay-as-you-go) |
When the free sources are enough
Capability matrix
| Capability | Public FMCSA systems | CarrierOk /v2/profile |
|---|---|---|
| Registration & authority status | SAFER / QCMobile | Included |
| Programmatic (API) access | QCMobile only | Included |
| BASIC percentiles — 5 public categories | SMS (monthly) | Included |
| BASIC percentiles — Crash Indicator & Hazmat | Not displayed | Included |
| ISS inspection score | Not public | Included |
| Insurance filings & pending cancellations | L&I (web only) | Included |
| Authority / insurance / inspection history arrays | Socrata bulk datasets | Included |
| Search by name, EIN, phone, email, VIN, plate | — | Included |
| Computed risk score & chameleon signals | — | Included |
| Change monitoring & alerts | — | Included |
The same workflow as one call
Each commented block below is a lookup you'd otherwise make against a different FMCSA system (and then reconcile by DOT number yourself):
# One call replaces: SAFER lookup + QCMobile + SMS download + L&I check
curl "https://api.carrierok.com/v2/profile?dot_number=1234567" \
-H "Authorization: Bearer YOUR_API_KEY"{
"items": [
{
"dot_number": "1234567",
"legal_name": "EXAMPLE TRANSPORT LLC",
"usdot_status": "Active",
"authority_common": "Active",
"insurance_bipd_on_file": "1000000",
"basic_percentile_crash_indicator": 0.19,
"iss_value": "34",
"risk_score": "Low",
"...": "320+ fields total — see the data dictionary"
}
],
"total_count": 1
}Field-level detail for everything in the response is in the data dictionary and the machine-readable OpenAPI spec.
FAQ
What FMCSA databases are available to the public?
FMCSA provides several public systems: SAFER for basic carrier lookups (web only), the QCMobile API for programmatic registration and basic safety data, SMS for BASIC percentile scores (5 of 7 categories public), and the L&I query system for insurance filing verification. They are fragmented, updated on different schedules, and none includes computed fields like ISS scores or all seven BASICs.
Does FMCSA have a free API for carrier data?
Yes — QCMobile (mobile.fmcsa.dot.gov/qc) is FMCSA's official free API. It returns carrier registration, authority, and basic safety data by DOT or docket number with a registered WebKey. It does not return BASIC percentiles, insurance filing detail, ISS scores, inspection/crash history, or any computed risk signals — those require SMS downloads, L&I lookups, and the Socrata datasets.
Why can't I see all seven BASIC scores on SAFER or SMS?
FMCSA withholds two of the seven BASIC percentiles from public display: Crash Indicator and Hazardous Materials Compliance. The underlying inspection and crash data is public, though — CarrierOk computes both percentiles from it, so the API returns all seven.
When should I just use the free FMCSA sources?
If you need occasional one-off lookups of registration status, SAFER's website or the QCMobile API is enough. Reach for CarrierOk when you need programmatic access to the combined picture — authority + insurance + all 7 BASICs + history + risk signals — at 4x-daily freshness, or search keys beyond DOT/docket (name, EIN, phone, email, VIN, plate).