LIVE LTL RATES
LASF$260Quote →|SFLA$264Quote →|COLLA$366Quote →|COLCHI$193Quote →|NJMIA$288Quote →|COLSF$420Quote →|SFSAC$142Quote →|LADAL$398Quote →|LASD$156Quote →|COLMIA$303Quote →|SFSEA$235Quote →|COLDAL$208Quote →|LASLC$297Quote →|LAPHX$244Quote →|LALV$260Quote →|LAORL$437Quote →|LANJ$447Quote →|HARNJ$188Quote →|LACOL$365Quote →|CHINJ$235Quote →|DALMIA$266Quote →|SFPDX$231Quote →|COLPHX$244Quote →|NJORL$304Quote →|SFSD$208Quote →|COLORL$310Quote →|CHIMIA$295Quote →|COLDEN$275Quote →|LAMIA$420Quote →|LVLA$215Quote →|SATAUS$125Quote →|LASAC$195Quote →|LADEN$310Quote →|DALLA$385Quote →|SFPHX$280Quote →|LASEA$340Quote →|NJDAL$335Quote →|ORLMIA$145Quote →|ORLTPA$130Quote →|DALHOU$155Quote →|DALSAT$165Quote →|NJATL$270Quote →|MIANJ$305Quote →|NJCHI$240Quote →|NJLA$440Quote →|ORLJAX$140Quote →|COLSLC$320Quote →|HOUNJ$345Quote →|SLCBOI$185Quote →|LAPDX$315Quote →|LASF$260Quote →|SFLA$264Quote →|COLLA$366Quote →|COLCHI$193Quote →|NJMIA$288Quote →|COLSF$420Quote →|SFSAC$142Quote →|LADAL$398Quote →|LASD$156Quote →|COLMIA$303Quote →|SFSEA$235Quote →|COLDAL$208Quote →|LASLC$297Quote →|LAPHX$244Quote →|LALV$260Quote →|LAORL$437Quote →|LANJ$447Quote →|HARNJ$188Quote →|LACOL$365Quote →|CHINJ$235Quote →|DALMIA$266Quote →|SFPDX$231Quote →|COLPHX$244Quote →|NJORL$304Quote →|SFSD$208Quote →|COLORL$310Quote →|CHIMIA$295Quote →|COLDEN$275Quote →|LAMIA$420Quote →|LVLA$215Quote →|SATAUS$125Quote →|LASAC$195Quote →|LADEN$310Quote →|DALLA$385Quote →|SFPHX$280Quote →|LASEA$340Quote →|NJDAL$335Quote →|ORLMIA$145Quote →|ORLTPA$130Quote →|DALHOU$155Quote →|DALSAT$165Quote →|NJATL$270Quote →|MIANJ$305Quote →|NJCHI$240Quote →|NJLA$440Quote →|ORLJAX$140Quote →|COLSLC$320Quote →|HOUNJ$345Quote →|SLCBOI$185Quote →|LAPDX$315Quote →|View all rates →LASF$260Quote →|SFLA$264Quote →|COLLA$366Quote →|COLCHI$193Quote →|NJMIA$288Quote →|COLSF$420Quote →|SFSAC$142Quote →|LADAL$398Quote →|LASD$156Quote →|COLMIA$303Quote →|SFSEA$235Quote →|COLDAL$208Quote →|LASLC$297Quote →|LAPHX$244Quote →|LALV$260Quote →|LAORL$437Quote →|LANJ$447Quote →|HARNJ$188Quote →|LACOL$365Quote →|CHINJ$235Quote →|DALMIA$266Quote →|SFPDX$231Quote →|COLPHX$244Quote →|NJORL$304Quote →|SFSD$208Quote →|COLORL$310Quote →|CHIMIA$295Quote →|COLDEN$275Quote →|LAMIA$420Quote →|LVLA$215Quote →|SATAUS$125Quote →|LASAC$195Quote →|LADEN$310Quote →|DALLA$385Quote →|SFPHX$280Quote →|LASEA$340Quote →|NJDAL$335Quote →|ORLMIA$145Quote →|ORLTPA$130Quote →|DALHOU$155Quote →|DALSAT$165Quote →|NJATL$270Quote →|MIANJ$305Quote →|NJCHI$240Quote →|NJLA$440Quote →|ORLJAX$140Quote →|COLSLC$320Quote →|HOUNJ$345Quote →|SLCBOI$185Quote →|LAPDX$315Quote →|LASF$260Quote →|SFLA$264Quote →|COLLA$366Quote →|COLCHI$193Quote →|NJMIA$288Quote →|COLSF$420Quote →|SFSAC$142Quote →|LADAL$398Quote →|LASD$156Quote →|COLMIA$303Quote →|SFSEA$235Quote →|COLDAL$208Quote →|LASLC$297Quote →|LAPHX$244Quote →|LALV$260Quote →|LAORL$437Quote →|LANJ$447Quote →|HARNJ$188Quote →|LACOL$365Quote →|CHINJ$235Quote →|DALMIA$266Quote →|SFPDX$231Quote →|COLPHX$244Quote →|NJORL$304Quote →|SFSD$208Quote →|COLORL$310Quote →|CHIMIA$295Quote →|COLDEN$275Quote →|LAMIA$420Quote →|LVLA$215Quote →|SATAUS$125Quote →|LASAC$195Quote →|LADEN$310Quote →|DALLA$385Quote →|SFPHX$280Quote →|LASEA$340Quote →|NJDAL$335Quote →|ORLMIA$145Quote →|ORLTPA$130Quote →|DALHOU$155Quote →|DALSAT$165Quote →|NJATL$270Quote →|MIANJ$305Quote →|NJCHI$240Quote →|NJLA$440Quote →|ORLJAX$140Quote →|COLSLC$320Quote →|HOUNJ$345Quote →|SLCBOI$185Quote →|LAPDX$315Quote →|
$50 off·applied automatically at checkout
Warp

LTL freight API

Less than truckload. Shared trailer space across real carriers: XPO, ABF, SAIA, Estes, FedEx Freight. Dry freight only. LTL requires 7 fields to produce a firm quote. Freight class is optional because Warp uses FAK rates.

Required fields (7)

Optional fields

Why freight class is optional

FAK (Freight All Kinds) rates

Warp negotiates FAK rates with all LTL carriers. FAK means your freight class doesn't affect your price. Traditional LTL carriers price by NMFC class -- if your shipment gets reclassed at the dock, your invoice changes. With FAK rates, that doesn't happen. You pay the quoted price regardless of class.

Include freight_class in your request if you want it on the BOL, but it won't change the rate.

curl example

curl -X POST https://wearewarp.com/api/v1/ltl/quote \ -H "Authorization: Bearer wk_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "origin_zip": "90001", "destination_zip": "10001", "pallets": 2, "weight_lbs_per_pallet": 600, "commodity": "auto parts", "length_in": 48, "width_in": 40, "height_in": 48, "pickup_date": "2026-04-14" }' # Optional: add "freight_class": "70" for BOL documentation (doesn't affect price)

MCP tool call

{ "tool": "warp_ltl_quote", "args": { "origin_zip": "90001", "destination_zip": "10001", "pallets": 2, "weight_lbs_per_pallet": 600, "commodity": "auto parts", "length_in": 48, "width_in": 40, "height_in": 48, "pickup_date": "2026-04-14" // Optional: "freight_class": "70" (for BOL, doesn't affect price) } }

CLI example

warp-agent ltl quote 90001 10001 \ --pallets 2 --weight 600 \ --commodity "auto parts" --length 48 --width 40 --height 48 \ --date 2026-04-14 # Optional: add --class 70 for BOL documentation (doesn't affect price)

Understanding quote_tier

quote_tier tells your agent whether the quote is ready to book.

firm -- the quote is firm. You can book it immediately by calling warp_book with the quote_id. missing_for_ship will be an empty array.

indicative -- the price is an estimate. Check the missing_for_ship array for which fields you need to supply before booking. Re-quote with those fields to get a firm tier.

Response: firm

When you provide all 7 required fields (weight, commodity, dims, date, origin, dest, pallets), the quote is firm.

{ "quote_id": "wq_...", "lane_id": "ln_900_100", "mode": "ltl", "price_usd": 485.00, "currency": "USD", "transit_days": 7, "pickup_date": "2026-04-14", "delivery_date": "2026-04-21", "expires_at": "2026-04-11T15:30:00Z", "quote_tier": "firm", "assumptions": { "weight_lbs_per_pallet": 600, "dims_in": { "length": 48, "width": 40, "height": 48 } }, "missing_for_ship": [], "booking_url": "https://wearewarp.com/agents/book/wq_...", "book_tool_call": { "tool": "warp_book", "args": { "quote_id": "wq_..." } } }

Response: indicative

When you omit weight or commodity, the API returns an indicative quote. The missing_for_ship array tells you what to add.

{ "quote_id": "wq_...", "lane_id": "ln_900_100", "mode": "ltl", "price_usd": 520.00, "currency": "USD", "transit_days": 7, "pickup_date": "2026-04-14", "delivery_date": "2026-04-21", "expires_at": "2026-04-11T15:30:00Z", "quote_tier": "indicative", "assumptions": { "weight_lbs_per_pallet": 800, "dims_in": { "length": 48, "width": 40, "height": 48 } }, "missing_for_ship": ["weight_lbs_per_pallet"], "booking_url": null, "book_tool_call": null }

Understanding missing_for_ship

missing_for_ship is an array of field names. If it is empty, the quote is bookable. If it contains entries like "weight_lbs_per_pallet" or "commodity", re-quote with those fields to get a firm quote_tier.
Back to docs|Next: book this quote