LIVE LTL RATES
LA metro$94/palletQuote →|LV → LA$204/palletQuote →|LA → LV$195/palletQuote →|LA → SF$179/palletQuote →|DEN metro$160/palletQuote →|LA → DAL$351/palletQuote →|DAL → CHI$292/palletQuote →|LA → CHI$310/palletQuote →|NJ → NYC$176/palletQuote →|LA → MIA$398/palletQuote →|MIA metro$140/palletQuote →|NJ → MIA$265/palletQuote →|LA → SEA$319/palletQuote →|NJ → DAL$265/palletQuote →|LA → SLC$214/palletQuote →|HOU metro$134/palletQuote →|LA → SD$188/palletQuote →|LA → PDX$295/palletQuote →|LA → DEN$283/palletQuote →|ATL metro$136/palletQuote →|CLT metro$150/palletQuote →|NJ → CHI$247/palletQuote →|DEN → MIA$403/palletQuote →|PDX metro$142/palletQuote →|LA → PHX$200/palletQuote →|CHI → LA$252/palletQuote →|LA → NJ$440/palletQuote →|TPA metro$126/palletQuote →|SLC metro$121/palletQuote →|ORL metro$124/palletQuote →|PHL → NYC$206/palletQuote →|MKE → MIA$290/palletQuote →|LA → ATL$310/palletQuote →|MIA → LA$244/palletQuote →|DAL → PDX$269/palletQuote →|CHI → HOU$265/palletQuote →|IND metro$133/palletQuote →|LA → COL$322/palletQuote →|HOU → NYC$285/palletQuote →|MEM → NYC$278/palletQuote →|CHI → DAL$274/palletQuote →|LA → TPA$393/palletQuote →|LA → AUS$383/palletQuote →|ATL → MIA$202/palletQuote →|CHI → MIA$277/palletQuote →|MIA → HOU$224/palletQuote →|COL metro$162/palletQuote →|NJ → SAT$328/palletQuote →|LA → SAT$380/palletQuote →|HOU → LA$243/palletQuote →|View all rates →LA metro$94/palletQuote →|LV → LA$204/palletQuote →|LA → LV$195/palletQuote →|LA → SF$179/palletQuote →|DEN metro$160/palletQuote →|LA → DAL$351/palletQuote →|DAL → CHI$292/palletQuote →|LA → CHI$310/palletQuote →|NJ → NYC$176/palletQuote →|LA → MIA$398/palletQuote →|MIA metro$140/palletQuote →|NJ → MIA$265/palletQuote →|LA → SEA$319/palletQuote →|NJ → DAL$265/palletQuote →|LA → SLC$214/palletQuote →|HOU metro$134/palletQuote →|LA → SD$188/palletQuote →|LA → PDX$295/palletQuote →|LA → DEN$283/palletQuote →|ATL metro$136/palletQuote →|CLT metro$150/palletQuote →|NJ → CHI$247/palletQuote →|DEN → MIA$403/palletQuote →|PDX metro$142/palletQuote →|LA → PHX$200/palletQuote →|CHI → LA$252/palletQuote →|LA → NJ$440/palletQuote →|TPA metro$126/palletQuote →|SLC metro$121/palletQuote →|ORL metro$124/palletQuote →|PHL → NYC$206/palletQuote →|MKE → MIA$290/palletQuote →|LA → ATL$310/palletQuote →|MIA → LA$244/palletQuote →|DAL → PDX$269/palletQuote →|CHI → HOU$265/palletQuote →|IND metro$133/palletQuote →|LA → COL$322/palletQuote →|HOU → NYC$285/palletQuote →|MEM → NYC$278/palletQuote →|CHI → DAL$274/palletQuote →|LA → TPA$393/palletQuote →|LA → AUS$383/palletQuote →|ATL → MIA$202/palletQuote →|CHI → MIA$277/palletQuote →|MIA → HOU$224/palletQuote →|COL metro$162/palletQuote →|NJ → SAT$328/palletQuote →|LA → SAT$380/palletQuote →|HOU → LA$243/palletQuote →|
Warp

Book a shipment

POST https://www.wearewarp.com/api/v1/book

Books a previously quoted shipment. The request body is one field: the quote_id from any quote response. Quoting is keyless on every mode. Booking is the single call that needs an API key and a card on file, and the key is self serve: sign up at /agents/account, no sales call.

Auth

Request

curl example

curl -X POST https://www.wearewarp.com/api/v1/book \ -H "Content-Type: application/json" \ -H "Authorization: Bearer wak_live_YOUR_KEY" \ -d '{ "quote_id": "PRICING_..." }'

MCP tool call

{ "tool": "book", "args": { "quote_id": "PRICING_..." } }

CLI example

warp-agent book PRICING_...

Response

The confirmation carries the shipment_id you will track with, plus the live tracking dashboard URL.

{ "booked": true, "shipment_id": "...", "shipment_number": "S-80215-2616", "order_id": "...", "order_number": "...", "tracking_number": "...", "lane_id": "ln_900_100", "tracking_dashboard": "https://customer.wearewarp.com" }

Bookings are idempotent on quote_id

A quote_id is single use.

Retrying a book call with a quote_id your account already booked returns the original confirmation with idempotent_replay: true and never charges twice. A retry near the quote expiry edge also replays instead of failing, so a double submit from your agent is always safe.
{ "booked": true, "idempotent_replay": true, "shipment_id": "...", "shipment_number": "S-80215-2616", "tracking_number": "...", "charged": 0, "already_charged_cents": 48500, "note": "This quote_id was already booked by your account; returning the original confirmation. No new charge was made." }

How payment settles

A booking settles from your prepaid wallet balance first and charges your card only for any shortfall. Read GET /api/v1/balance before you book to know your runway.

Errors self describe the fix

Back to docs|Next: track this shipment