Rate API guide
How to Get Freight Rates with One API Call
One POST request. Instant rate. All inclusive pricing. No phone calls, no email chains, no waiting for a broker to get back to you. The Warp freight rate API returns live rates for LTL, truckload, box truck, and cargo van in structured JSON. This is the definitive guide to programmatic freight rate generation.
Instant rates · All modes · All inclusive · No API fees
The old way vs the API way
The old way
Call your broker. Wait.
Call or email a freight broker. Describe your shipment. Wait 30 minutes to 4 hours for a rate. Get a quote that does not include fuel surcharges, accessorials, or terminal handling. Ask for a breakdown. Wait again. Compare across 2 or 3 brokers manually. Copy the rate into a spreadsheet. Repeat for every lane, every week.
The API way
One POST. Instant rate.
Send a POST request with origin, destination, pickup date, and item details. Get back an all inclusive rate in under 2 seconds. The rate includes everything: pickup, handling, line haul, delivery. No fuel surcharges. No hidden fees. Compare modes programmatically. Book with the quoteId. Done.
The complete quote request
Every rate request goes to POST https://api.wearewarp.com/api/v1/freights/quote. Authentication is a single header: apikey: YOUR_API_KEY. Here is a complete request with every field explained.
https://api.wearewarp.com/api/v1apikey: YOUR_API_KEYapplication/jsonRequired fields
pickupDatestring[]ISO dates when freight is ready. Example: ["2026-04-10"]pickupInfoStopInfoOrigin address with zipCode, city, state, street, contactName, phonedeliveryInfoStopInfoDestination address with the same fields as pickupInfolistItemsItem[]Array of items with name, length, width, height, sizeUnit, totalWeight, weightUnit, quantity, packagingOptional fields
shipmentType"LTL" | "FTL"Omit to let Warp auto select the best mode for your freightvehicleTypeVehicleTypeCARGO_VAN, STRAIGHT_TRUCK_26, or DRY_VAN_53. Omit to let Warp choose.pickupServicesstring[]Liftgate pickup, inside pickup, residential pickup, appointment, etc.deliveryServicesstring[]Liftgate delivery, inside delivery, residential delivery, appointment, etc.additionalServicesstring[]Sort and seg, white glove, photo required, etc.curl example
Copy this, replace YOUR_API_KEY, and run it in your terminal. You will get back a rate in under 2 seconds.
POST /freights/quote
curl -X POST https://api.wearewarp.com/api/v1/freights/quote \
-H "Content-Type: application/json" \
-H "apikey: YOUR_API_KEY" \
-d '{
"pickupDate": ["2026-04-10"],
"pickupInfo": {
"zipCode": "90001",
"city": "Los Angeles",
"state": "CA",
"street": "123 Warehouse Blvd",
"contactName": "Dispatch Team",
"phone": "3105551234"
},
"deliveryInfo": {
"zipCode": "60601",
"city": "Chicago",
"state": "IL",
"street": "456 Distribution Dr",
"contactName": "Receiving Dock",
"phone": "3125551234"
},
"listItems": [{
"name": "Pallet - Electronics",
"length": 48, "width": 40, "height": 48,
"sizeUnit": "in",
"totalWeight": 900, "weightUnit": "lb",
"quantity": 6,
"packaging": "pallet",
"stackable": false
}],
"shipmentType": "LTL"
}'The rate response explained
The response contains everything you need to make a shipping decision or book immediately.
200 Response
{
"data": {
"quoteId": "01HG9W6CMAWHNWTVXDKW9QYFS9",
"carrierCode": "WTCH",
"carrierName": "Warp Technology",
"serviceLevel": "standard",
"transitDays": 3,
"totalCost": 725.00,
"pickupWindow": { "from": "08:00", "to": "17:00" },
"deliveryWindow": { "from": "08:00", "to": "17:00" }
}
}Field breakdown
quoteIdUse this to book. Valid for a limited time.carrierCodeSCAC code identifying the carrier.serviceLevelStandard, expedited, or other service tier.transitDaysEstimated business days from pickup to delivery.totalCostAll inclusive price in USD. This is the invoice price.pickupWindowAvailable pickup time range for this rate.deliveryWindowEstimated delivery time range.Python example
Python: Get a freight rate
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.wearewarp.com/api/v1"
HEADERS = {"Content-Type": "application/json", "apikey": API_KEY}
payload = {
"pickupDate": ["2026-04-10"],
"pickupInfo": {
"zipCode": "90001", "city": "Los Angeles", "state": "CA",
"street": "123 Warehouse Blvd",
"contactName": "Dispatch Team", "phone": "3105551234"
},
"deliveryInfo": {
"zipCode": "60601", "city": "Chicago", "state": "IL",
"street": "456 Distribution Dr",
"contactName": "Receiving Dock", "phone": "3125551234"
},
"listItems": [{
"name": "Pallet - Electronics",
"length": 48, "width": 40, "height": 48,
"sizeUnit": "in", "totalWeight": 900, "weightUnit": "lb",
"quantity": 6, "packaging": "pallet", "stackable": False
}],
"shipmentType": "LTL"
}
response = requests.post(f"${BASE}/freights/quote", headers=HEADERS, json=payload)
data = response.json()["data"]
print(f"Rate: $" + str(data['totalCost']))
print(f"Transit: " + str(data['transitDays']) + " days")
print(f"Quote ID: " + data['quoteId'])Node.js example
Node.js: Get a freight rate
const response = await fetch(
"https://api.wearewarp.com/api/v1/freights/quote",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"apikey": "YOUR_API_KEY"
},
body: JSON.stringify({
pickupDate: ["2026-04-10"],
pickupInfo: {
zipCode: "90001", city: "Los Angeles", state: "CA",
street: "123 Warehouse Blvd",
contactName: "Dispatch Team", phone: "3105551234"
},
deliveryInfo: {
zipCode: "60601", city: "Chicago", state: "IL",
street: "456 Distribution Dr",
contactName: "Receiving Dock", phone: "3125551234"
},
listItems: [{
name: "Pallet - Electronics",
length: 48, width: 40, height: 48,
sizeUnit: "in", totalWeight: 900, weightUnit: "lb",
quantity: 6, packaging: "pallet", stackable: false
}],
shipmentType: "LTL"
})
}
);
const { data } = await response.json();
console.log(`Rate: $${data.totalCost}, Transit: ${data.transitDays} days`);Compare rates across modes
One of the most powerful things about the Warp rate API is the ability to compare LTL, box truck, and full truckload rates for the same shipment programmatically. Make three requests with different vehicle types and pick the best option based on cost, transit time, or both. No broker needed for this comparison. Your code does it in seconds.
Python: Compare LTL vs box truck vs dry van
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.wearewarp.com/api/v1"
HEADERS = {"Content-Type": "application/json", "apikey": API_KEY}
base_payload = {
"pickupDate": ["2026-04-10"],
"pickupInfo": {"zipCode": "90001", "city": "Los Angeles", "state": "CA",
"street": "123 Warehouse Blvd",
"contactName": "Dispatch", "phone": "3105551234"},
"deliveryInfo": {"zipCode": "60601", "city": "Chicago", "state": "IL",
"street": "456 Distribution Dr",
"contactName": "Receiving", "phone": "3125551234"},
"listItems": [{
"name": "Pallet", "length": 48, "width": 40, "height": 48,
"sizeUnit": "in", "totalWeight": 900, "weightUnit": "lb",
"quantity": 6, "packaging": "pallet", "stackable": False
}]
}
# Quote LTL
ltl = requests.post(f"${BASE}/freights/quote", headers=HEADERS,
json={**base_payload, "shipmentType": "LTL"}).json()["data"]
# Quote FTL (26ft box truck)
ftl_box = requests.post(f"${BASE}/freights/quote", headers=HEADERS,
json={**base_payload, "vehicleType": "STRAIGHT_TRUCK_26"}).json()["data"]
# Quote FTL (53ft dry van)
ftl_van = requests.post(f"${BASE}/freights/quote", headers=HEADERS,
json={**base_payload, "vehicleType": "DRY_VAN_53"}).json()["data"]
print("LTL: $" + str(ltl['totalCost']) + " (" + str(ltl['transitDays']) + " days)")
print("Box Truck: $" + str(ftl_box['totalCost']) + " (" + str(ftl_box['transitDays']) + " days)")
print("Dry Van: $" + str(ftl_van['totalCost']) + " (" + str(ftl_van['transitDays']) + " days)")
# Pick the cheapest
best = min([ltl, ftl_box, ftl_van], key=lambda x: x["totalCost"])
print("Best option: " + best['carrierName'] + " at $" + str(best['totalCost']))Handling accessorials
Traditional freight quoting treats accessorials as post hoc surprises. You get a rate, book it, then discover you owe an extra $150 for liftgate and $75 for a delivery appointment. With Warp, accessorials are priced at quote time. Include them in your request and the totalCost in the response reflects the complete price.
Pickup services
Add at quote time
Liftgate pickup, inside pickup, residential pickup, limited access, appointment, driver assist, drop and hook, construction site, convention/trade show.
Delivery services
Priced in the quote
Liftgate delivery, inside delivery, residential delivery, limited access, appointment, driver assist, drop and hook, construction site, redelivery.
Additional services
No surprise fees
Sort and seg, extra stop, extra miles, driver assist, white glove, check calls, notification, photo required.
Temperature controlled freight rates
For food, beverage, pharma, or any temperature sensitive freight, include the temperature_limit field on your items. Warp has temperature controlled 26ft box trucks and reefer trailers in the network. The rate returned reflects the temperature controlled equipment. No separate RFP process for reefer. Same API, same endpoint, same response format.
Using rate data for cost optimization
Because every rate request and response is structured data, you can build cost optimization logic on top of the Warp API. Compare rates across pickup dates to find the cheapest day to ship. Compare vehicle types for the same lane to see when LTL beats a dedicated box truck. Track rate trends over time by storing quote history. The GET /freights/quote-history endpoint returns your past quotes with pricing, status, and expiration data for analysis.
For recurring lanes, contact the Warp team about custom rate cards. Warp builds rate sheets for high volume shippers with committed capacity and consistent pricing through the Work Queue system, which assigns dedicated carriers to your routes.
Frequently asked questions
How do I get freight rates without calling a broker?
POST to the Warp quote endpoint at api.wearewarp.com/api/v1/freights/quote with your origin zip, destination zip, pickup date, and item details. You get back an instant all inclusive rate. No phone calls, no emails, no waiting.
Does the Warp rate API return rates for multiple shipping modes?
Yes. Omit the vehicleType and shipmentType fields and Warp returns the best option for your freight. You can also specify a mode (LTL, FTL, CARGO_VAN, STRAIGHT_TRUCK_26, DRY_VAN_53) to get targeted rates.
Are Warp freight rates all inclusive?
Yes. The rate returned by the API includes pickup, handling, line haul, and delivery. No fuel surcharges, no terminal handling charges, no hidden accessorial fees. The quote price is the invoice price.
Can I get freight rates for temperature controlled shipments?
Yes. Include the temperature_limit field on your item to specify temperature requirements. Warp has temperature controlled box trucks and reefer trailers in the network for food, beverage, and pharma freight.
Is there a cost to use the Warp freight rate API?
No. There are no API call fees, no software fees, and no integration fees. You pay only when you book and ship. Rate quotes are free and unlimited.
Stop calling for rates. Start calling the API.
One POST request returns instant all inclusive freight rates for LTL, truckload, box truck, and cargo van. No phone calls, no email chains, no broker markup. Free rate quotes, unlimited.
20,000+ carriers · All inclusive pricing · 9,000+ box trucks and cargo vans · 50+ cross docks