# CarrierOk — Full API Reference > The most current and most complete FMCSA carrier data API. 4M+ motor carriers and brokers, 280+ fields per record, refreshed 4x daily. Includes all 7 BASIC percentiles (Crash Indicator and Hazmat), policy-level insurance history, VIN-decoded fleet composition with per-vehicle inspections, and 50+ risk signals. REST + JSON. Lookup by DOT, MC, EIN, phone, email, address, VIN, plate, unit number, or company name. ## Base URL https://api.carrierok.com ## Authentication `Authorization: Bearer sk_*` header. Get a free sandbox key at https://developers.carrierok.com. Sandbox returns fixture data from 10 hand-picked carriers — useful for evaluation and CI. Activate live access for $50 (applied as $50 of API credit; pay-as-you-go from card on file after credit drains). ## Built for - **Insurance underwriting**: all 7 BASIC percentiles, policy-level insurance history (cancellations, lapses, carrier changes), 50+ risk signals, and chameleon-detection signals in one call. Replaces stitching together CAB + FMCSA SAFER + carrier-supplied COIs. - **Sales prospecting & CRM enrichment**: enrich a known contact — phone, email, name, address — into a full carrier profile with fleet composition, equipment, age, and recent activity. Lookup by current or historical DBAs, EINs, and contact info. Built for SDR workflows, CRM hygiene, and pre-call research. - **Factoring & financial services**: authority age, EIN/ownership history, name-change chains, MCS-150 cadence, and OOS trend in one lookup. Built for credit decisions and chameleon screening. - **Freight brokers & 3PLs**: real-time authority, insurance, and safety status, refreshed 4x daily. Plate, VIN, and unit-number lookups for driver-at-the-dock verification. - **Platform partners & OEMs**: high-QPS lookups, full field coverage, idempotency-keyed write endpoints for monitoring at scale. Embedded in TMS, telematics, ELD, and freight-matching platforms. ## Common Query Parameters All list-returning endpoints accept: - `page` (integer, default 1): Page number. - `pageSize` (integer, default 100): Results per page. --- ## Carrier Profile — `GET /v2/profile` Returns a full FMCSA carrier profile: identity, authority, safety, all 7 BASIC percentiles (including Crash Indicator and Hazmat), ISS scores, 50+ risk signals, policy-level insurance history, VIN-decoded fleet composition, inspections, violations, and crash history. **Search keys** (provide exactly one): | Parameter | Description | |---|---| | `dot_number` | USDOT number. | | `docket_number` | MC or MX docket number (e.g., `277621`, `MC277621`). | | `company` | Legal name or DBA, current or historical. Partial match supported. | | `ein` | 9-digit Employer Identification Number. | | `email` | Email address or domain. Matches current and historical. | | `phone` | Phone number, digits or formatted. Matches current and historical. | | `address` | Physical address. Matches current and historical. | | `vin` | 17-character Vehicle Identification Number. Response includes NHTSA-decoded vehicle details and vehicle-specific inspection history. | | `plate_number` | License plate. Optional `plate_state` (two-letter code) narrows the search. | | `unit_number` | Fleet unit number. Optional `unit_type` filter: `TRUCK` or `TRAILER`. | --- ## Carrier Profile Lite — `GET /v2/profile-lite` Reduced field set optimized for high-volume integrations, browser extensions, and quick lookups. Same search keys as `/v2/profile`. Metered per unique DOT number per month for OEM partners. --- ## FMCSA Profile — `GET /v2/profile-fmcsa` Consolidated FMCSA data only — no CarrierOk-derived scoring. 236 fields per carrier covering registration and contacts, operating authority (with ages and revocation history), SMS safety measures and violations, inspections and out-of-service rates vs national averages, crashes, insurance filings (BIPD/bond/cargo on-file vs required), cargo classifications, and fleet composition. The field set is FIXED: every response carries all 236 keys, null where FMCSA has no value — map columns once. Billed per request ($0.10 per matched lookup); a 404 no-match is free. Quickstart: https://developers.carrierok.com/docs/guides/fmcsa-api-quickstart **Parameters:** - `dot_number` (string): USDOT number. Provide dot_number or docket_number. - `docket_number` (string): MC or MX docket number. Multi-carrier docket matches rank the operating carrier first and bill once. --- ## Autocomplete — `GET /v2/autocomplete` Sub-100ms prefix search returning minimal carrier identity. Results cached for 5 minutes. Designed for typeahead UIs. **Parameters:** - `q` (string, required): Search query, minimum 2 characters. - `limit` (integer): Maximum results (max 15). --- ## Monitoring — `POST /v2/monitoring/add` Add carrier profiles to the watchlist. Each unique monitored DOT is billed once per calendar month at $0.50; removing mid-month does not refund, and re-adding the same DOT in the same month is free (idempotent). A single request can carry your whole network — profiles are committed in chunks, and the response returns 200 once committed (207 if some chunks failed — retry the remainder). **Body:** - `profile_ids` (string[], required): Profile IDs to monitor, formatted `{dot}-{docket}` (e.g. `568253-MC277621`). --- ## Monitoring — `POST /v2/monitoring/remove` Remove carrier profiles from the watchlist. Removal is free and does not refund the current month's billing — un-monitoring simply stops future months from billing that DOT. **Body:** - `profile_ids` (string[], required): Profile IDs to remove. --- ## Monitoring — `GET /v2/monitoring/list` Paginated list of monitored carriers with optional filtering by change type, date range, and sort order. Granular per-channel change flags surface only the carriers that changed in the channels you care about. **Parameters:** - `view_changes` (boolean): Profiles with any changes. - `view_changes_insurance` (boolean): Insurance changes. - `view_changes_authority` (boolean): Authority changes. - `view_changes_safety` (boolean): Safety changes. - `view_changes_fleet` (boolean): Fleet changes. - `view_changes_contact` (boolean): Contact changes. - `view_changes_risk` (boolean): Risk-factor changes. - `date_type` (string): Date field to filter — `last_changed_date`, `started_monitoring_at`, `last_acknowledged_at`, `mcs150_date_current`, `safety_rating_date_current`, `last_crash_date_current`, `insurance_pending_cancel_date_current`. - `date_min` / `date_max` (string): YYYYMMDD bounds. - `sortBy` / `sortOrder` (string): Sort field and direction (`asc` / `desc`). - `profile_id` (string): Filter to a single profile. - `page`, `pageSize` (integer): Pagination. `pageSize` is clamped to 500. --- ## Pricing Pay-as-you-go. No tiers, no monthly minimums, no commitments. - **Sandbox**: Free with signup. 10 hand-picked carriers, fixture data. For evaluation and CI. No card required. - **Live**: $50 activation = $50 API credit. Per-call billing after credit drains. US and Canada at launch. - **Volume / OEM**: Custom rates for high-volume customers. Contact sales. ## Links - Website: https://carrierok.com - Developer portal: https://developers.carrierok.com - Docs: https://developers.carrierok.com/docs - OpenAPI spec (typed responses + examples): https://developers.carrierok.com/openapi.json - Guides (underwriting risk check, vs FMCSA sources, BASIC percentiles, legacy migration): https://developers.carrierok.com/docs/guides - Data dictionary: https://developers.carrierok.com/docs/data-dictionary - Glossary: https://developers.carrierok.com/glossary - API landing: https://carrierok.com/fmcsa-api - Contact: support@carrierok.com