FreightProof API Reference

Integration Guide for TMS, Dispatch Systems, and AI Agents

FreightProof is API-first. Every capability available on the website is available through REST endpoints and MCP tools. One API call at dispatch time creates a signed vetting record.


Quick Start

Vet a carrier (one call)

``bash curl -X POST https://freight.rootz.global/api/vet \ -H "Content-Type: application/json" \ -d '{"dot_number": "123456", "broker_id": "YOUR_COMPANY"}' `

Response: `json { "vetting_id": "VET-a1b2c3d4-...", "dot_number": 123456, "carrier": "EXAMPLE TRUCKING LLC", "risk_score": 18, "risk_level": "LOW", "recommendation": "APPROVE", "red_flags": [], "data_hash": "a3f8b2c1d4e5...(SHA-256)", "vetting_date": "2026-06-17T14:30:00.000Z", "basics": { "unsafe_driving": 42, "crash_indicator": 28, ... }, "snapshot_available": true } `

That's it. One POST, one signed record, courtroom-ready.


REST API Endpoints

Carrier Intelligence

MethodEndpointDescription
GET/api/carriers?name=ACMESearch carriers by name, DOT, MC, or state
GET/api/safety?dot=123456BASIC safety scores (7 categories)
GET/api/crashes?dot=123456Crash history (fatalities, injuries, VINs)
GET/api/crashes?vin=1HGBH41J...Crash history by vehicle VIN
GET/api/inspections?dot=123456Inspection/violation history with OOS rates
GET/api/enforcement?dot=123456Enforcement cases + out-of-service orders

Vetting (The Montgomery Defense)

MethodEndpointDescription
POST/api/vetRun full vetting — live FMCSA data + risk score + SHA-256 proof
POST/api/vet-previewQuick preview from local DB (no signed record)
GET/api/vetting?dot=123456Vetting history for a carrier
GET/api/vetting?id=VET-xxxRetrieve specific vetting record
POST/api/batch-vetBatch vet multiple carriers (array of DOTs)

Proof of Good Care

MethodEndpointDescription
POST/api/careCreate a new care document (shipment + parties)
POST/api/care/:id/eventAppend custody event (tender, pickup, delivery)
GET/api/careList recent care documents
GET/api/care/:idView care document (HTML or JSON with .json)
GET/api/care/:id/verifyVerify hash chain (pure SHA-256, no auth needed)

System

MethodEndpointDescription
GET/api/statusDatabase statistics (record counts, version)
GET/api/attestationRoot hash + table hashes + provenance chain
GET/.well-known/aiAI discovery (MCP tools, endpoint, capabilities)


MCP Tools (for AI Agents)

FreightProof exposes 12 MCP tools via HTTP transport at POST /mcp (JSON-RPC 2.0).

Any AI agent that supports MCP can call these tools directly:

ToolParametersWhat It Returns
freight_carrier_lookupdot_number or mc_number or nameCarrier profile from 4.4M records
freight_carrier_safetydot_number7 BASIC scores with percentiles and threshold flags
freight_carrier_vetdot_number, optional broker_idFull vetting: risk score, recommendation, SHA-256 hash
freight_crash_historydot_number, optional limitCrash records with fatality/injury counts
freight_inspection_historydot_number, optional limitInspections with OOS violation rates
freight_enforcement_historydot_numberEnforcement cases + out-of-service orders
freight_vetting_historydot_number or vetting_idPast vetting records (audit trail)
freight_compare_carriersdot_numbers (array)Side-by-side comparison of 2+ carriers
freight_red_flag_searchstate, min_risk, safety_ratingFind high-risk carriers matching criteria
freight_crash_by_vinvinVehicle-level crash lookup
freight_statusnoneDatabase record counts and version
freight_attestationnoneRoot hash, table hashes, data provenance

MCP Configuration

Add to your AI agent's MCP configuration:

`json { "mcpServers": { "freight": { "url": "https://freight.rootz.global/mcp", "transport": "http" } } } `


Integration Patterns

Pattern 1: Dispatch-Time Vetting (Recommended)

Call /api/vet at the moment of dispatch. Store the vetting_id and data_hash with the load record.

`javascript // At dispatch time const response = await fetch('https://freight.rootz.global/api/vet', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ dot_number: carrier.dotNumber, broker_id: 'YOUR_COMPANY' }) });

const vetting = await response.json();

if (vetting.recommendation === 'REJECT') { // Do not dispatch — document the rejection return { dispatched: false, reason: vetting.red_flags }; }

// Store proof with the load load.vetting_id = vetting.vetting_id; load.vetting_hash = vetting.data_hash; load.vetting_score = vetting.risk_score; `

Pattern 2: Batch Daily Vetting

Vet your entire active carrier list daily. Flag changes.

`javascript const response = await fetch('https://freight.rootz.global/api/batch-vet', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ dot_numbers: [123456, 234567, 345678, ...], broker_id: 'YOUR_COMPANY' }) }); `

Pattern 3: Proof of Good Care (Full Lifecycle)

Create a care document at dispatch, append events through the shipment lifecycle.

`javascript // 1. Create document at dispatch const care = await fetch('https://freight.rootz.global/api/care', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ shipment: { ref: 'SHIP-001', commodity: 'Electronics', value_usd: 50000 }, parties: { broker: 'YOUR_CO', carrier: 'CARRIER_CO' }, vetting_id: 'VET-xxx' // Links to the dispatch vetting record }) });

// 2. Append pickup event await fetch(https://freight.rootz.global/api/care/${care.document_id}/event, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ stage: 'PICKUP_HANDOFF', actor: 'Driver: John Smith', evidence: { condition: 'good', seal_number: 'SEAL-12345', pieces: 24 } }) });

// 3. Verify the document at any time const verify = await fetch( https://freight.rootz.global/api/care/${care.document_id}/verify ); // Returns: { valid: true, events_verified: 3, problems: [] } `

Pattern 4: AI Agent Integration

Your AI dispatch agent uses MCP tools to vet carriers automatically:

` Agent: "Vet carrier DOT 123456 for a load from Chicago to Miami" → Calls freight_carrier_vet(dot_number: 123456, broker_id: "AGENT_DISPATCH") → Returns: risk_score: 32, recommendation: "CAUTION", red_flags: ["BASIC Unsafe Driving at 72nd percentile"] Agent: "Risk is medium. Flagging for human review before dispatch." `


Verification (No Auth Required)

Any vetting record can be independently verified:

`bash

Get the vetting record

curl https://freight.rootz.global/api/vetting?id=VET-xxx

The response includes snapshot_json and data_hash

Verify: SHA-256(snapshot_json) should equal data_hash

echo -n "$SNAPSHOT_JSON" | sha256sum

Should match the data_hash field

`

Care documents verify the same way:

`bash curl https://freight.rootz.global/api/care/POGC-xxx/verify

Returns: { valid: true, events_verified: N, problems: [] }

``


Data Behind the API

SourceRecordsUpdated
FMCSA Carrier Census4,437,486Bulk quarterly + live API
FMCSA Crash File3,575,222Bulk quarterly
FMCSA Inspection File4,850,003Bulk quarterly
FMCSA BASIC ScoresOn-demandLive via QCMobile API
FMCSA EnforcementSchema readyPending source access
FMCSA OOS OrdersSchema readyPending source access


Rate Limits & Pricing

No subscriptions. No monthly fees. Credit-based access.

LookupsVettingsBatch size
Free (30 credits on signup)Unlimited30 credits included10
Pay As You Go ($10/record)UnlimitedBuy 1–99 credits100
100-Pack ($900 = $9/record)Unlimited100 credits100
500-Pack ($4,000 = $8/record)Unlimited500 credits500
EnterpriseUnlimitedVolume pricingUnlimited

Credits never expire. Each vetting record consumes one credit.


freight.rootz.global · Rootz Corp · steven@sprague.com