API Documentation

VerifyCarrier API

Developer-friendly FMCSA carrier lookup API. Get carrier safety data in 200ms, not 20 clicks.

Quick Start

Make your first API call in seconds. No authentication required for basic lookups.

cURL
curl "https://verifycarrier.com/api/lookup/dot/123456"
JavaScript
const response = await fetch('https://verifycarrier.com/api/lookup/dot/123456');
const data = await response.json();

console.log(data.data.legal_name);  // "CARRIER NAME LLC"
console.log(data.data.risk.tier);   // "Low" | "Moderate" | "High" | "Extreme"
Python
import requests

response = requests.get('https://verifycarrier.com/api/lookup/dot/123456')
data = response.json()

print(data['data']['legal_name'])  # "CARRIER NAME LLC"
print(data['data']['risk']['tier'])  # "Low" | "Moderate" | "High" | "Extreme"

API Endpoints

GET/api/lookup/dot/{dotNumber}Lookup carrier by DOT number
GET/api/lookup/dot/MC{mcNumber}Lookup carrier by MC number
GET/api/search?q={name}Search carriers by name

Response Format

DOT Lookup Response

GET /api/lookup/dot/123456
{
  "success": true,
  "data": {
    "dot_number": "123456",
    "mc_number": "789012",
    "legal_name": "ACME TRUCKING LLC",
    "dba_name": "ACME FREIGHT",

    "address": {
      "street": "123 MAIN ST",
      "city": "SPRINGFIELD",
      "state": "IL",
      "zip": "62701"
    },
    "phone": "555-123-4567",
    "email": "dispatch@acme.com",

    "fleet": {
      "power_units": 15,
      "drivers": 20
    },

    "safety": {
      "rating": "SATISFACTORY",
      "rating_date": "2023-06-15",
      "out_of_service": false,
      "out_of_service_date": null
    },

    "basics": {
      "unsafe_driving": 45,
      "hos_compliance": 32,
      "driver_fitness": 28,
      "controlled_substances": null,
      "vehicle_maintenance": 55,
      "hazmat_compliance": null,
      "crash_indicator": 40
    },
    "basic_alerts": ["vehicle_maintenance"],

    "authority": {
      "common": "ACTIVE",
      "contract": "ACTIVE",
      "broker": "NONE",
      "details": {
        "common_authority_status": "ACTIVE",
        "contract_authority_status": "ACTIVE",
        "broker_authority_status": "NONE"
      }
    },

    "docket_numbers": [
      { "type": "MC", "number": "789012" },
      { "type": "MX", "number": null }
    ],

    "cargo_carried": ["General Freight", "Machinery"],

    "risk": {
      "score": 38.5,
      "tier": "Moderate",
      "description": "This carrier has some safety concerns that warrant monitoring.",
      "confidence": "medium",
      "factors": [
        "Vehicle Maintenance exceeds intervention threshold (55%)"
      ],
      "methodology": "1.0.0"
    },

    "metadata": {
      "data_source": "FMCSA SAFER Web Services API",
      "api_version": "v1.0",
      "last_updated": "2025-12-30T12:00:00.000Z"
    }
  }
}

BASIC Safety Scores

BASICs (Behavior Analysis and Safety Improvement Categories) are percentile rankings from 0-100. Higher scores indicate worse safety performance relative to peers.

BASIC CategoryAlert ThresholdDescription
unsafe_driving>65%Speeding, reckless driving, improper lane changes
hos_compliance>65%Hours of service violations, logbook issues
driver_fitness>80%CDL, medical certificate, and training requirements
controlled_substances>80%Drug and alcohol violations
vehicle_maintenance>80%Brake, lighting, and cargo securement issues
hazmat_compliance>80%Hazardous materials handling violations
crash_indicator>65%Crash history and severity

Note: High-risk BASICs (unsafe_driving, hos_compliance, crash_indicator) have a lower alert threshold of 65% because they are stronger predictors of crashes.

Risk Scoring Algorithm

Our open-source risk scoring algorithm provides a transparent, reproducible assessment of carrier safety. The algorithm is documented in full at /methodology.

Low (0-30)

Good safety performance and low risk indicators.

Moderate (31-60)

Some safety concerns that warrant monitoring.

High (61-80)

Significant safety issues. Additional due diligence recommended.

Extreme (81-100)

Severe safety problems. Exercise extreme caution.

Scoring Components

  1. Base Risk: Weighted average of top 3 worst BASIC percentiles
  2. Compounding Multiplier: Exponential increase for multiple BASIC alerts
  3. Inspection History: Recent out-of-service violations
  4. Crash History: Severity-weighted crash analysis
  5. Confidence Adjustment: Regresses toward mean when data is limited

Error Responses

StatusErrorDescription
400Invalid number formatDOT/MC number must be numeric
404Carrier not foundNo carrier exists with this DOT/MC number
429Rate limitedToo many requests. Try again later.
500Internal server errorUnexpected error. Contact support.

Rate Limits

Free
100 requests/day
No authentication required
Pro
10,000 requests/month
$49/month
Enterprise
Unlimited
Contact us

Ready to Get Started?

Try our free DOT lookup tool or contact us for API access.