Ship Your First Load in 5 Minutes
A step by step guide to quoting, booking, and tracking LTL freight with Warp's self-serve REST API. Works with curl, Python, Node.js, or any API-capable coding assistant.
Bearer auth · Sandbox keys · REST API · JSON · Standard HTTP
Prerequisites
- -A Warp API account from /agents/account
- -A wak_live_* API key and a payment card on file before production booking
- -Any HTTP client: curl, Postman, Python requests, Node.js fetch, or an AI coding tool
Step 1: Authenticate
Public self-serve API requests use a Bearer key in the Authorization header. Two key types are issued instantly (no card) at /agents/account: a sandbox key (wak_test_) and a live key (wak_live_). Quote endpoints are free; booking endpoints charge the card on file. New here? Test the whole flow risk-free with a sandbox key first — the quote endpoints and POST /api/v1/book return production-shaped mock data with no charge — then swap to your live key with zero code changes. The full endpoint catalog with a tested example for every call is in the API reference.
https://www.wearewarp.com/api/v1Authorization: Bearer wak_live_YOUR_KEYapplication/jsonVerify your key
curl -X GET https://www.wearewarp.com/api/v1/agents/account \ -H "Authorization: Bearer wak_live_YOUR_KEY"
A 200 response returns your account profile. A 401 means the key is missing, invalid, or revoked.
Step 2: Get a freight quote
Send your origin ZIP, destination ZIP, pickup date, pallet count, weight per pallet, and dimensions. No API key needed. Warp returns a rate, transit time, and a quote_id (wq_…) you will use to book.
POST /api/v1/ltl/quote
# Quoting is keyless — no API key required.
curl -X POST https://www.wearewarp.com/api/v1/ltl/quote \
-H "Content-Type: application/json" \
-d '{
"origin_zip": "90001",
"destination_zip": "10001",
"pickup_date": "2026-07-24",
"pallets": 2,
"weight_lbs_per_pallet": 500,
"commodity": "general freight",
"length_in": 48,
"width_in": 40,
"height_in": 48
}'200 Response
{
"quote_id": "wq_01KTQ9SBV8F2TFAWSB92F6H9QB",
"mode": "ltl",
"price_usd": 694.59,
"currency": "USD",
"transit_days": 5,
"pickup_date": "2026-07-24",
"delivery_date": "2026-07-29",
"quote_tier": "indicative",
"service": { "vehicle": "LTL (shared)", "pricing": "all_inclusive" },
"missing_for_ship": ["commodity"],
"booking_url": "https://customer.wearewarp.com/public/freight-quote?quote_id=wq_01KTQ9SBV8F2TFAWSB92F6H9QB"
}The rate is all inclusive. No fuel surcharges, no accessorial fees, no terminal handling charges. The quote_id is what you use to book.
Step 3: Book the shipment
Pass the quote_id from the previous step along with your pickup and delivery details under patch. Booking requires your Bearer key and charges the card on file. The wq_ quote already carries the freight details, so you don't resend pallets or weight.
POST /api/v1/book
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": "wq_01JRKZ8B9ABD",
"reference": "PO-12345",
"patch": {
"pickup": {
"company": "Sender Co",
"contactName": "Your Name",
"phone": "2125550100",
"email": "you@example.com",
"street": "123 Main St",
"city": "Los Angeles",
"state": "CA",
"zipCode": "90001",
"refNum": "PO-12345"
},
"delivery": {
"company": "Receiver Co",
"contactName": "Their Name",
"phone": "2125550200",
"email": "them@example.com",
"street": "456 Broadway",
"city": "New York",
"state": "NY",
"zipCode": "10001",
"refNum": "SO-9988"
}
}
}'200 Response
{
"booked": true,
"shipment_id": "01KQAQNH9V93D92JWQ6TFM3SJK",
"shipment_number": "S-199806-2617",
"order_id": "01KQAQNH9V93D92JWQ6TFM3SJK",
"tracking_number": "S-199806-2617",
"tracking_dashboard": "https://customer.wearewarp.com"
}The response gives you the shipment ID, tracking number, order ID, charged amount, and Stripe payment reference.
Step 4: Track the shipment
Pass the shipment ID or tracking number from booking to get the current tracking payload.
GET /api/v1/track
curl "https://www.wearewarp.com/api/v1/track?booking_id=S-199806-2617" \ -H "Authorization: Bearer wak_live_YOUR_KEY"
200 Response
{
"shipment_id": "01KQAQNH9V93D92JWQ6TFM3SJK",
"shipment_number": "S-199806-2617",
"tracking_number": "S-199806-2617",
"mode": "ltl",
"status": "booked",
"pickup_date": "2026-07-24",
"delivery_date": "2026-07-29",
"price_usd": 694.59,
"booked_at": "2026-07-22T18:30:00.000Z",
"cancelled_at": null,
"tracking_dashboard": "https://customer.wearewarp.com/..."
}Poll this endpoint, or skip polling entirely: register a webhook with POST /api/v1/developer/webhook (self-serve) and Warp pushes shipment events to your URL in real time as { event, timestamp, data }. Documents, invoices, and broader network endpoints remain approved-account workflows.
Step 5: Expand after the core flow
Once quote, book, and track are working, approved accounts can expand into broader Warp network workflows such as documents, invoices, advanced service options, multi-stop routes, and vehicle-specific production flows.
quote → book → trackdocuments, invoices, advanced modesThe canonical public self-serve docs live at wearewarp.com/freight-api. The machine-readable OpenAPI 3.1 spec is at wearewarp.com/.well-known/openapi.json. Both are linked from this page.
Ready to integrate?
Use with AI coding tools
Codex, Cursor, Claude through API-capable workflows, and other coding tools can read Warp's API documentation and generate integration code automatically. Point them at wearewarp.com/freight-api and the OpenAPI spec, then exercise the free quote endpoints before booking.
The Warp Agent CLI (wearewarp.com/agents/cli) provides the same functionality as shell commands. AI agents running in terminal environments can execute warp-agent ltl quote, warp-agent book, and warp-agent track directly.
Available vehicle types and services
The public self-serve API is LTL-first. Additional vehicle workflows are available for approved production accounts and should be confirmed before launch.
CARGO_VANCargo Van
Approved production workflow. Cartons, cases, parcels, or up to 3 pallets.
STRAIGHT_TRUCK_2626ft Box Truck
Approved production workflow. Useful for larger pallet counts and liftgate-heavy moves.
DRY_VAN_5353ft Dry Van (FTL)
Approved production workflow. Used for full truckload and recurring lane programs.
Frequently asked questions
How long does integration take?
Most developers can get their first quote in minutes. A production integration starts with quote, book, and track, then expands after payment, account, and exception workflows are confirmed.
What authentication does the API use?
Use Authorization: Bearer wak_live_YOUR_KEY. Generate a key at /agents/account.
How do I avoid charges while developing?
Quote endpoints are free and keyless — call POST /api/v1/ltl/quote all you want, no API key. Only POST /api/v1/book charges the card on file. Build and test the quote flow without booking any real freight.
What modes are available?
The public self-serve API is LTL-first. Truckload, box truck, cargo van, documents, invoices, and advanced service options are approved-account workflows.
Is there rate limiting?
Quote allows 60 requests per agent per hour. Booking allows 10 booking attempts per agent per hour.
Quote, book, and track freight with three core calls.
Every self-serve endpoint returns structured JSON. Works with any language, any HTTP client, any API-capable coding tool. Get your API key and run free quote calls until your integration is ready.
Bearer auth · Sandbox keys · REST API · JSON · Standard HTTP