Introduction

The LINQ API gives you programmatic access to the most comprehensive carrier intelligence database ever built — 2.8 million carrier profiles, 26M+ data points across 16 FMCSA datasets, enriched with tech stack intelligence and real-time risk signals.

The API follows REST conventions. All requests and responses use JSON. Authentication uses API key headers. TLS is required on all endpoints.

DetailValue
Base URLapi.morprolinq.com/v1
ProtocolHTTPS only
FormatJSON (UTF-8)

Authentication

LINQ uses API key authentication. Include your key in the X-Manifest-Key header on every request. Never expose your API key in client-side code — always call the API from your backend.

Key PrefixEnvironmentDescription
mfst_sk_...ProductionCounts against your monthly quota. Use for live applications.
mfst_sk_test_...TestSandbox data only. Free, unlimited calls. No real carrier data.
bash
curl "https://api.morprolinq.com/v1/carriers/1234567" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx" \
  -H "Content-Type: application/json"

Base URL & Versioning

All API requests are made to the following base URL:

The current version is v1. Version is included in the URL path. When breaking changes are introduced, a new version will be released and the old version will be deprecated with 90 days notice.

text
https://api.morprolinq.com/v1

Rate Limits

Rate limits are applied per API key, per minute and per month based on your plan. When you exceed a rate limit, the API returns a 429 Too Many Requests response.

Check the X-RateLimit-Remaining and X-RateLimit-Reset response headers to monitor your usage.

PlanPer MinutePer MonthPrice
Free10 requests100 calls$0
Pro120 requests10,000 calls$299/mo
Enterprise1,000 requestsUnlimitedCustom
text
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1710345600

Errors

LINQ uses standard HTTP status codes. All errors return a JSON body with a code and message field.

CodeStatusDescription
200OKRequest succeeded.
400Bad RequestMissing or invalid parameters.
401UnauthorizedInvalid or missing API key.
404Not FoundCarrier DOT number not found in database.
429Too Many RequestsRate limit exceeded. Check X-RateLimit-Reset.
500Server ErrorSomething went wrong on our end. We're alerted automatically.
json
{
  "code": "NOT_FOUND",
  "message": "No carrier found with DOT number 9999999"
}
GET/v1/carriers/:dotCarriers

GET Carrier Profile

Returns a complete operational profile for a carrier by DOT number. Includes authority status, safety rating, fleet size, contact info, and key compliance flags.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier (e.g. "1234567")
Request
curl "https://api.morprolinq.com/v1/carriers/1234567" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "legal_name": "APEX FREIGHT SOLUTIONS LLC",
  "dba_name": "APEX FREIGHT",
  "entity_type": "CARRIER",
  "operating_status": "AUTHORIZED FOR HHG",
  "physical_address": "1200 Industrial Blvd, Dallas, TX 75201",
  "phone": "(214) 555-0192",
  "email": "dispatch@apexfreight.com",
  "carrier_operation": "Interstate",
  "cargo_carried": ["General Freight", "Refrigerated Food"],
  "total_drivers": 47,
  "total_power_units": 52,
  "added_date": "2018-03-14"
}
GET/v1/carriers/:dot/authorityCarriers

GET Authority

Returns current authority status and full history of authority grants, revocations, and reinstatements. Essential for vetting carrier reliability over time.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/authority" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": 1234567,
  "docket_number": "MC-123456",
  "common_authority": "ACTIVE",
  "contract_authority": "ACTIVE",
  "broker_authority": "NONE",
  "common_app_pending": false,
  "contract_app_pending": false,
  "broker_app_pending": false,
  "common_revocation_pending": false,
  "contract_revocation_pending": false,
  "broker_revocation_pending": false,
  "property": true,
  "passenger": false,
  "hhg": false,
  "enterprise": false,
  "private_auth": false,
  "bipd_file": "Y",
  "cargo_file": "Y",
  "bond_file": "N",
  "cargo_required": "Y",
  "bond_required": "N",
  "min_cov_amount": "750000",
  "mx_type": null,
  "rfc_number": null,
  "business_address": {
    "street": "1200 INDUSTRIAL BLVD",
    "city": "DALLAS",
    "state": "TX",
    "zip": "75201"
  },
  "mail_address": {
    "street": "PO BOX 4410",
    "city": "DALLAS",
    "state": "TX",
    "zip": "75208"
  },
  "authority_history": [
    {
      "docket_number": "MC-123456",
      "sub_number": "1",
      "action": "GRANT OF AUTHORITY",
      "served_date": "2018-03-14",
      "disp_served_date": "2018-03-20",
      "disposition": "GRANTED",
      "disposition_date": "2018-03-20"
    }
  ]
}
GET/v1/carriers/:dot/safetyCarriers

GET Safety (SMS)

Returns FMCSA Safety Measurement System (SMS) scores across all 7 BASIC categories, percentile rankings, and the carrier's official safety rating.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/safety" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "safety_rating": "SATISFACTORY",
  "safety_rating_date": "2022-06-15",
  "basics": {
    "unsafe_driving": { "measure": 3.2, "percentile": 22, "alert": false },
    "hours_of_service": { "measure": 1.8, "percentile": 15, "alert": false },
    "driver_fitness": { "measure": 0.5, "percentile": 8, "alert": false },
    "controlled_substances": { "measure": 0.0, "percentile": 0, "alert": false },
    "vehicle_maintenance": { "measure": 4.1, "percentile": 34, "alert": false },
    "hazmat_compliance": { "measure": 0.0, "percentile": 0, "alert": false },
    "crash_indicator": { "measure": 0.8, "percentile": 18, "alert": false }
  },
  "total_inspections": 127,
  "total_violations": 23,
  "oos_rate_vehicle": 0.12,
  "oos_rate_driver": 0.04
}

Percentile scores range from 0-100. Higher percentiles indicate worse relative performance. FMCSA alert thresholds vary by BASIC category (typically 65-80th percentile).

GET/v1/carriers/:dot/inspectionsCarriers

GET Inspections

Returns paginated roadside inspection records. Includes BASIC category breakdowns, driver/vehicle OOS flags, and inspection outcomes.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier

Query Parameters

NameTypeDescription
pageintegerPage number (default: 1)
limitintegerRecords per page, max 100 (default: 25)
fromdateFilter from date (YYYY-MM-DD)
todateFilter to date (YYYY-MM-DD)
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/inspections?limit=5" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "total": 127,
  "page": 1,
  "limit": 5,
  "inspections": [
    {
      "inspection_id": "TX2024031401",
      "inspection_date": "2024-03-14",
      "state": "TX",
      "level": 1,
      "basic_violations": ["Unsafe Driving"],
      "vehicle_oos": false,
      "driver_oos": false,
      "hazmat": false
    }
  ]
}
GET/v1/carriers/:dot/violationsCarriers

GET Violations

Returns all violation records enriched with section descriptions, BASIC group classifications, and severity indicators.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/violations" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "total_violations": 23,
  "violations": [
    {
      "inspection_id": "TX2024031401",
      "violation_date": "2024-03-14",
      "code": "392.2",
      "description": "Failing to obey traffic control device",
      "basic_category": "Unsafe Driving",
      "severity_weight": 5,
      "oos": false,
      "time_weight": 3
    }
  ]
}
GET/v1/carriers/:dot/crashesCarriers

GET Crashes

Returns crash records enriched with weather conditions, road type, hazmat involvement, fatalities, and vehicle classification details.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/crashes" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "total_crashes": 3,
  "crashes": [
    {
      "report_number": "TX-2023-08912",
      "crash_date": "2023-09-22",
      "state": "TX",
      "city": "Fort Worth",
      "fatalities": 0,
      "injuries": 1,
      "tow_away": true,
      "hazmat_released": false,
      "weather": "Clear",
      "road_surface": "Dry",
      "light_condition": "Daylight"
    }
  ]
}
GET/v1/carriers/:dot/insuranceCarriers

GET Insurance

Returns active insurance policies, full history including cancellation dates, rejected filings, and BOC-3 process agent records.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/insurance" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "active_policies": [
    {
      "type": "Bodily Injury & Property Damage",
      "insurer": "National Indemnity Company",
      "policy_number": "TSP-4928371",
      "coverage_from": "2024-01-15",
      "coverage_to": "2025-01-15",
      "amount": 1000000,
      "status": "ACTIVE"
    }
  ],
  "boc3_agent": {
    "name": "CT Corporation System",
    "form_date": "2018-03-20"
  },
  "rejected_forms": 0
}
GET/v1/carriers/:dot/fleetCarriers

GET Fleet

Returns current fleet composition including power units, drivers, and equipment breakdowns.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/fleet" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "total_drivers": 47,
  "total_power_units": 52,
  "mcs150_date": "2024-01-10",
  "mcs150_mileage": 4200000,
  "mcs150_mileage_year": 2023,
  "carrier_operation": "Interstate",
  "hazmat": false,
  "passenger": false
}
GET/v1/carriers/:dot/cargoCarriers

GET Cargo

Returns all 30 FMCSA cargo capability flags with human-readable labels. Shows exactly what types of freight a carrier is authorized and equipped to haul.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/cargo" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": 1234567,
  "total_types": 3,
  "cargo_carried": ["General Freight", "Fresh/Frozen Foods", "Chemicals"],
  "other_description": null,
  "hazmat": true,
  "passenger": false,
  "flags": {
    "crgo_genfreight": true,
    "crgo_coldfood": true,
    "crgo_chem": true,
    "crgo_household": false,
    "...": "28 more flags"
  }
}
GET/v1/carriers/:dot/documentsCarriers

GET Documents

Returns registration documents, docket numbers with status codes, MCS-150 filing details, insurance filing requirements, and D&B number.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/documents" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": 1234567,
  "dockets": [
    { "number": "608558", "prefix": "MC", "status": "A" }
  ],
  "mcs150": {
    "date": "20240110",
    "mileage": 4200000,
    "mileage_year": "2023",
    "update_code": "3"
  },
  "registration_date": "20180314",
  "dun_bradstreet_no": null,
  "insurance_requirements": {
    "bipd_file": "00001",
    "cargo_file": "00001",
    "bond_file": "00000",
    "cargo_required": "Y",
    "bond_required": "N",
    "min_coverage_amount": "750000"
  }
}
GET/v1/carriers/:dot/percentilesCarriers

GET Carrier Percentiles

Compares a carrier's fleet size and driver count against state-level benchmarks. Returns the carrier's stats alongside P25/P50/P75/P90 percentiles for their domicile state.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/percentiles" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": 1234567,
  "legal_name": "APEX FREIGHT SOLUTIONS LLC",
  "state": "TX",
  "carrier": { "power_units": 52, "drivers": 47 },
  "state_benchmarks": {
    "total_carriers": 48291,
    "fleet_size": { "p25": 1, "p50": 2, "p75": 5, "p90": 14 },
    "drivers": { "p25": 1, "p50": 1, "p75": 3, "p90": 8 }
  }
}
GET/v1/carriers/:dot/reportCarriers

GET Full Report

Returns a complete carrier intelligence report as a structured JSON object — or as a PDF download by passing `?format=pdf`. Aggregates all endpoints into one response.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier

Query Parameters

NameTypeDescription
formatstring"json" (default) or "pdf"
Request
curl "https://api.morprolinq.com/v1/carriers/1234567/report" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "generated_at": "2026-04-05T12:00:00Z",
  "profile": { "..." : "Full carrier profile" },
  "authority": { "..." : "Authority & registration" },
  "safety": { "..." : "SMS scores & BASIC ratings" },
  "inspections": { "total": 127, "..." : "Recent inspections" },
  "violations": { "total": 23, "..." : "Violation history" },
  "crashes": { "total": 3, "..." : "Crash records" },
  "insurance": { "..." : "Active policies" },
  "fleet": { "..." : "Fleet composition" },
  "related": { "..." : "Related entities" }
}

The full report endpoint aggregates all carrier data into a single response. PDF format generates a formatted report suitable for client presentations.

GET/v1/market/percentilesIntelligence

GET Market Percentiles

Returns national benchmark data for safety scores, fleet sizes, OOS rates, and crash indicators. Use to contextualize a carrier's performance against its peer group.

Query Parameters

NameTypeDescription
segmentstringFilter by carrier type: "OTR", "regional", "local", "hazmat"
statestring2-letter state code to filter by domicile state
Request
curl "https://api.morprolinq.com/v1/market/percentiles?segment=OTR&state=TX" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "segment": "OTR",
  "state": "TX",
  "carrier_count": 48291,
  "benchmarks": {
    "fleet_size": { "p25": 3, "p50": 8, "p75": 24, "p90": 67, "p99": 412 },
    "oos_rate": { "p25": 0.0, "p50": 0.08, "p75": 0.18, "p90": 0.32, "p99": 0.61 },
    "unsafe_driving": { "p25": 0.0, "p50": 12, "p75": 38, "p90": 62, "p99": 89 },
    "crash_rate_per_pmu": { "p25": 0.0, "p50": 0.02, "p75": 0.08, "p90": 0.15 }
  }
}
POST/v1/watchlistWatchlist

POST Create Watchlist

Create a watchlist to monitor up to 10,000 carriers for real-time changes — authority revocations, insurance lapses, safety rating changes, OOS rate spikes, and more.

Request Body

NameTypeDescription
carriers*string[]Array of DOT numbers to monitor
webhook_url*stringHTTPS URL to receive event notifications
eventsstring[]Event types to subscribe to (default: all)
Request
curl -X POST "https://api.morprolinq.com/v1/watchlist" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "carriers": ["1234567", "2345678", "3456789"],
    "webhook_url": "https://yourapp.com/webhooks/manifest",
    "events": ["authority.revoked", "insurance.lapsed"]
  }'
Response
{
  "watchlist_id": "wl_a1b2c3d4",
  "carrier_count": 3,
  "webhook_url": "https://yourapp.com/webhooks/manifest",
  "events": ["authority.revoked", "insurance.lapsed"],
  "status": "active",
  "created_at": "2026-04-05T12:00:00Z"
}

Webhooks

When a monitored carrier triggers an alert, LINQ POSTs a signed JSON payload to your webhook URL. Verify the signature using the X-Manifest-Signature header.

All webhook payloads include the event type, carrier DOT number, a human-readable description, and a timestamp. Your endpoint should return a 200 status code within 10 seconds.

json
{
  "event": "carrier.authority.revoked",
  "carrier": {
    "dot_number": "2345678",
    "legal_name": "SUMMIT RIDGE TRANSPORT LLC"
  },
  "detail": "Common authority revoked by FMCSA",
  "previous_value": "ACTIVE",
  "new_value": "REVOKED",
  "timestamp": "2026-04-05T14:23:00Z",
  "signature": "sha256=a1b2c3d4..."
}
carrier.authority.revokedcarrier.authority.reinstatedcarrier.insurance.lapsedcarrier.insurance.reinstatedcarrier.safety_rating.changedcarrier.oos_rate.spikedcarrier.fleet.expanded

SMS + SAFER Overview

These endpoints are explicitly snapshot-based — powered by the 4 official FMCSA SMS Output files (1.7M scored carriers) and the 4 SMS Input files. Every response includes snapshot_date and data_source so you always know exactly which FMCSA release the data reflects.

Data source priority: 1. sms_output table (official FMCSA SMS Output, latest snapshot), 2. Legacy FMCSA Query API data, 3. Calculated live from sms_inspections + sms_violations.

FMCSA uses a time-weighting system for all SMS math. Inspections in the most recent 12 months receive a weight of 3, inspections 12-24 months old receive a weight of 2, and inspections older than 24 months receive a weight of 1.

carriersauth_historyinsur_activeoos_ordersrevocationssms_inspectionssms_crashessms_output
GET/v1/sms/:dot/scoresSMS

GET BASIC Scores

Returns the 7 BASIC scores with measures, alert flags, and percentile rankings where available. Automatically selects the best data source for each carrier.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier

Query Parameters

NameTypeDescription
alert_onlybooleanIf true, only return BASICs above the FMCSA intervention threshold
ac_flagbooleanAcute/Critical violation from an investigation in the previous 12 months
rd_alertbooleanRoadside alert — carrier is above the FMCSA intervention threshold
Request
curl "https://api.morprolinq.com/v1/sms/1234567/scores" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "snapshot_date": "2026-03-15",
  "data_source": "sms_output",
  "basics": {
    "unsafe_driving": { "measure": 3.2, "percentile": 22, "alert": false, "threshold": 65 },
    "hours_of_service": { "measure": 1.8, "percentile": 15, "alert": false, "threshold": 65 },
    "vehicle_maintenance": { "measure": 4.1, "percentile": 34, "alert": false, "threshold": 80 },
    "controlled_substances": { "measure": 0.0, "percentile": 0, "alert": false, "threshold": 80 },
    "driver_fitness": { "measure": 0.5, "percentile": 8, "alert": false, "threshold": 80 },
    "hazmat_compliance": { "measure": 0.0, "percentile": 0, "alert": false, "threshold": 80 },
    "crash_indicator": { "measure": 0.8, "percentile": 18, "alert": false, "threshold": 65 }
  }
}
GET/v1/sms/:dot/inspectionsSMS

GET SMS Inspections

Returns only the inspections that fall within FMCSA's 24-month SMS scoring window. Each record includes a `computed_time_weight` (3/2/1) so your system can replicate the SMS math exactly.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/sms/1234567/inspections" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "snapshot_date": "2026-03-15",
  "window_start": "2024-03-15",
  "window_end": "2026-03-15",
  "total": 42,
  "inspections": [
    {
      "inspection_id": "TX2025121401",
      "inspection_date": "2025-12-14",
      "state": "TX",
      "level": 1,
      "computed_time_weight": 3,
      "violations_count": 2,
      "vehicle_oos": false,
      "driver_oos": false
    }
  ]
}
GET/v1/sms/:dot/violationsSMS

GET SMS Violations

Returns violations within the 24-month SMS window with FMCSA time-weights applied. The `computed_total_weight` field equals `time_weight x severity_weight` — the exact numerator value FMCSA uses in the BASIC measure formula.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/sms/1234567/violations" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "snapshot_date": "2026-03-15",
  "total": 18,
  "by_basic": {
    "unsafe_driving": 8,
    "hours_of_service": 4,
    "vehicle_maintenance": 6
  },
  "violations": [
    {
      "violation_code": "392.2",
      "description": "Failing to obey traffic control device",
      "basic_category": "Unsafe Driving",
      "severity_weight": 5,
      "time_weight": 3,
      "computed_total_weight": 15,
      "inspection_date": "2025-12-14",
      "oos": false
    }
  ]
}
GET/v1/sms/:dot/crashesSMS

GET SMS Crashes

Crash records scoped to the 24-month SMS window with time weights applied. Includes fatal, injury, tow-away, and hazmat breakdown.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/sms/1234567/crashes" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "snapshot_date": "2026-03-15",
  "total": 2,
  "fatal": 0,
  "injury": 1,
  "tow_away": 1,
  "hazmat": 0,
  "crashes": [
    {
      "report_number": "TX-2025-04211",
      "crash_date": "2025-04-21",
      "state": "TX",
      "time_weight": 3,
      "fatalities": 0,
      "injuries": 1,
      "tow_away": true
    }
  ]
}
GET/v1/sms/:dot/universeSMS

GET SMS Universe

FMCSA only scores carriers that meet minimum inspection thresholds. This endpoint tells you instantly whether a carrier is in the SMS scoring universe and eligible for percentile rankings.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/sms/1234567/universe" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "in_universe": true,
  "inspection_count_24mo": 42,
  "minimum_required": 5,
  "snapshot_date": "2026-03-15",
  "peer_group": "OTR > 10 power units",
  "peer_group_size": 28491
}
GET/v1/safer/:dotSAFER

GET SAFER Snapshot

Mirrors exactly what FMCSA's SAFER.fmcsa.dot.gov shows for a carrier — registration, operations, safety rating, authority history, active insurance, OOS orders, inspection summary, crash summary, and BASIC scores. All in one call.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier
Request
curl "https://api.morprolinq.com/v1/safer/1234567" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot_number": "1234567",
  "snapshot_date": "2026-04-05",
  "registration": {
    "legal_name": "APEX FREIGHT SOLUTIONS LLC",
    "dba_name": "APEX FREIGHT",
    "carrier_operation": "Interstate",
    "hazmat_carrier": false
  },
  "authority": { "common": "ACTIVE", "contract": "ACTIVE", "broker": "NONE" },
  "safety_rating": "SATISFACTORY",
  "insurance_active": true,
  "oos_orders": 0,
  "inspection_summary": { "total": 127, "vehicle_oos_rate": 0.12, "driver_oos_rate": 0.04 },
  "crash_summary": { "total": 3, "fatal": 0, "injury": 1, "tow": 2 }
}
GET/v1/chameleon/:dotFraud Detection

GET Chameleon Scan

Runs a chameleon carrier fraud detection scan. Analyzes address matches, phone overlaps, authority timeline gaps, OOS rates, and other signals to produce a risk score from 0-100.

Path Parameters

NameTypeDescription
dot*stringUSDOT number of the carrier (numeric only)
Request
curl "https://api.morprolinq.com/v1/chameleon/1234567" \
  -H "X-Manifest-Key: mfst_sk_xxxxxxxxxxx"
Response
{
  "dot": "1234567",
  "legalName": "APEX FREIGHT SOLUTIONS LLC",
  "state": "TX",
  "status": "AUTHORIZED FOR HHG",
  "score": 45,
  "riskLevel": "MODERATE",
  "signalsDetected": 2,
  "signals": [
    { "name": "Phone Match", "detected": true, "weight": 25, "detail": "Phone matches 1 revoked carrier(s)" },
    { "name": "Physical Address Match", "detected": true, "weight": 20, "detail": "Address matches 2 revoked carrier(s)" },
    { "name": "Authority Timeline Gap", "detected": false, "weight": 25, "detail": null },
    { "name": "High OOS Before Drop", "detected": false, "weight": 15, "detail": null }
  ],
  "relatedCarriers": [
    { "dot": "2345678", "name": "APEX LOGISTICS INC", "status": "NOT AUTHORIZED", "matchType": "Phone match" }
  ]
}

Risk levels: LOW (0-25), MODERATE (26-50), HIGH (51-75), CRITICAL (76-100). Signal weights: EIN Match (40), Equipment Match (30), Phone Match (25), Timeline Gap (25), Address Match (20), Officer Match (20), High OOS (15).