Developer Docs · Live Freight Data API

Live Freight Lane Rates API

Real loads from TruckerPath, Truckstop, and 123Loadboard — aggregated every 3 minutes, queryable by exact origin/dest city+state. Built for TMS, freight analytics, broker dashboards, and automation.

Pricing

Free
$0 forever
  • 100 calls/day
  • 3,000 calls/month
  • All endpoints
  • Community support
Get free key
Pro
$99 /month
  • 5,000 calls/day
  • 50,000 calls/month
  • All endpoints
  • Priority email support
Start Pro
Enterprise
Custom
  • Unlimited calls
  • SLA + dedicated support
  • Custom integrations
  • Direct shipper-load feed
Contact sales

How signup works

Email us with the tier + your contact info. We issue your key within 1 business day and email it directly. Self-serve dashboard ships Q3 2026.

Get an API key

Endpoints

Live lane rates

POST https://stretchxlfreight.com/stretch-crm/api/?endpoint=api/lane_rates
GET https://stretchxlfreight.com/stretch-crm/api/?endpoint=api/lane_rates&...

Returns aggregated live rate stats for a specific origin → destination lane and optional equipment. Backed by real loads pulled from TruckerPath, Truckstop, and 123Loadboard within the last 24 hours.

Authentication

X-API-Key: sxlf_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Or, for GET requests, pass ?api_key=... in the query string.

Parameters

NameTypeRequiredExampleNotes
origin_citystringYesAtlantaCase-insensitive match.
origin_statestringYesGA2-letter USPS code.
dest_citystringYesMiamiCase-insensitive match.
dest_statestringYesFL2-letter USPS code.
equipmentstringNovanvan, reefer, flatbed, step_deck, hotshot, power_only. Omit for any.

Example: curl

curl -X POST 'https://stretchxlfreight.com/stretch-crm/api/?endpoint=api/lane_rates' \
 -H 'X-API-Key: sxlf_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
 -H 'Content-Type: application/json' \
 -d '{
 "origin_city": "Atlanta",
 "origin_state": "GA",
 "dest_city": "Miami",
 "dest_state": "FL",
 "equipment": "van"
 }'

Example: Node.js (fetch)

const res = await fetch(
 'https://stretchxlfreight.com/stretch-crm/api/?endpoint=api/lane_rates',
 {
 method: 'POST',
 headers: {
 'X-API-Key': process.env.SXLF_API_KEY,
 'Content-Type': 'application/json',
 },
 body: JSON.stringify({
 origin_city: 'Atlanta',
 origin_state: 'GA',
 dest_city: 'Miami',
 dest_state: 'FL',
 equipment: 'van',
 }),
 }
);
const { success, data } = await res.json();
if (!success) throw new Error(data || 'lookup failed');
console.log(`Median rate: $${data.rate.median} | ${data.samples} samples`);

Example: Python (requests)

import os, requests
r = requests.post(
 'https://stretchxlfreight.com/stretch-crm/api/?endpoint=api/lane_rates',
 headers={'X-API-Key': os.environ['SXLF_API_KEY']},
 json={
 'origin_city': 'Atlanta',
 'origin_state': 'GA',
 'dest_city': 'Miami',
 'dest_state': 'FL',
 'equipment': 'van',
 },
 timeout=10,
)
d = r.json()['data']
print(f"Median rate: ${d['rate']['median']} ({d['samples']} samples)")

Response shape

{
 "success": true,
 "data": {
 "lane": {
 "origin": "Mount Gilead, NC",
 "destination": "Enfield, CT",
 "equipment": "any"
 },
 "samples": 48,
 "sources": { "TruckerPath": 48 },
 "rate": { "median": 3450, "low": 3200, "high": 3450 },
 "per_mile": { "median": 4.62, "low": 4.29, "high": 4.62 },
 "distance_avg": 747,
 "data_freshness": {
 "newest_load": "2026-05-29T20:30:31+00:00",
 "cache_fetched": "2026-06-01 01:15:24"
 },
 "is_estimate": false,
 "tier": "pro",
 "quota": {
 "daily_quota": 5000,
 "daily_used": 47,
 "daily_remaining": 4953,
 "monthly_quota": 50000,
 "monthly_used": 218,
 "monthly_remaining": 49782
 },
 "fetched_at": "2026-06-01T05:18:22+00:00"
 }
}

Empty-lane fallback: when no live loads matched the lane in the last 24h, we return "is_estimate": true and surface the national per-mile bucket for the equipment type with "rate": null (per-mile only). You can detect this and surface "Estimated" to your users.

Error responses

{ "success": false, "message": "Invalid API key", "data": null } // 401
{ "success": false, "message": "Daily quota of 100 exceeded for plan 'free'. Upgrade at /developers/", "data": null } // 429
{ "success": false, "message": "Need origin_city, origin_state, dest_city, dest_state", "data": null } // 400

Use cases

Rate limits + quotas

Quotas reset:

When you hit a quota you'll get HTTP 429. Quota usage is returned on every successful response under data.quota.

Data sources + freshness

We aggregate loads from TruckerPath, Truckstop, 123Loadboard, and Stretch XL Freight's own direct shipper-load feed. Our load-board warmer pulls fresh data every 3 minutes. Each load is filtered to the requested lane (exact origin city/state → destination city/state match) and the last 24 hours.

data.data_freshness.newest_load is the timestamp of the freshest load in the match set. data.data_freshness.cache_fetched is when we last hit upstream.

Terms

By using this API you agree to the terms of service. Data is provided as-is for informational and analytical use. Do not redistribute raw load detail (broker contact info, exact load IDs) without an Enterprise license.

Stretch XL Freight LLC · FMCSA-licensed · USDOT #4409725 · MC #01732149 · Easley, SC