Carrier’s official API

WARP Freight API: integration guide

WARP publishes a REST/JSON "Agent API" (OpenAPI 3.1, version 1.2.0) for quoting, booking, tracking, invoicing and document retrieval. It covers cargo van, 26 ft box truck, 53 ft dry van FTL, LTL and FTL multi-stop moves within the US. It is built for integrations and AI agents, and also exposes a set of free freight calculators such as freight class and dim weight.

This guide covers WARP Freight’s own API (www.wearewarp.com). Credentials come from WARP Freight, not from FreightAPIs, and we are not affiliated with them.

Want one API key for carrier terminals, NMFC and ports instead? FreightAPIs API docs →

Interface REST/JSON (OpenAPI 3.1)Endpoints 32Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierWARP Freight
TypeFreight network (cargo van, box truck, FTL & LTL)
InterfaceREST/JSON (OpenAPI 3.1)
AuthenticationBearer API key (HTTP bearer scheme)
CapabilitiesRate quote, Booking and cancellation, Shipment tracking, Documents (BOL, POD) and invoices, Saved data: templates, locations and lanes, Free freight calculators

Getting access

  • The API is self-describing: the full OpenAPI specification is served at /openapi.json under the API base URL, and /version returns the build info.
  • Booking and every shipment-level call need a WARP API key. Production keys start with wak_live_ and test keys with wak_test_. The spec does not explain how keys are issued; contact WARP or use its online API onboarding to get one.
  • Quotes include an all-inclusive price, and the cancel endpoint refunds the Stripe charge when one was made, which suggests self-serve bookings are paid by card at booking time. Check commercial terms with WARP before going live.
  • The free calculator tools under /tools need no key for up to 60 requests per hour per IP.

Authentication

Bearer API key (HTTP bearer scheme).

  • Send Authorization: Bearer YOUR_API_KEY. There is no OAuth token exchange; the key itself is the bearer token.
  • Keys are prefixed wak_live_ (production) or wak_test_ (test). The prefix also sets the rate limit on the /tools calculators: 1,000 requests per hour for test keys and 10,000 per hour for live keys.
  • In the spec, the per-mode quote endpoints (/van/quote, /box-truck/quote, /ftl/quote, /ltl/quote) carry no security requirement, while /book, /track, /cancel, /events, /documents, /invoices and the account endpoints require the bearer key and return 401 without it.

Environments

Productionhttps://www.wearewarp.com/api/v1

Endpoints

Rate quote

One endpoint per equipment mode. Each returns a quote_id, an all-inclusive USD price, transit days, pickup and delivery dates and an expiry time. LTL quotes are "firm" when all fields are present and "indicative" when some are missing.

POST/ltl/quoteLTL quote; needs dims unless you pass a load_template_id.
POST/ftl/quote53 ft dry van FTL quote; only origin, destination and pickup date are required.
POST/box-truck/quote26 ft box truck quote (max 12 pallets, 10,000 lb total).
POST/van/quoteCargo van quote (1–3 pallets, 3,500 lb total).
POST/multistop/quoteQuote an FTL multi-stop shipment from a stops array.
GET/quote-historyList your past quote requests.
GET/rate-cardStandard per-mode rate card plus your own historical pricing.
Key inputsorigin_zip, destination_zip (5-digit US ZIP), pickup_date (YYYY-MM-DD)pallets, weight_lbs_per_palletLTL: commodity, length_in, width_in, height_in, stackable, hazmat, freight_class (optional), load_template_idaccessorials.pickup[] / accessorials.delivery[] (e.g. liftgate-delivery, residential-delivery, inside-pickup, delivery-appointment)
Key outputsquote_id, lane_id, mode (van | box_truck | ftl | ltl)price_usd, currency, transit_days, pickup_date, delivery_date, expires_atquote_tier (firm | indicative), missing_for_ship[]service block: vehicle, pricing (all_inclusive), included_at_no_charge[], dispatch phone

Booking and cancellation

Book a quote by its quote_id, optionally adding accessorials, a PO reference and full pickup/delivery details. Lanes you have shipped before can be re-quoted and booked in one call. Cancellation works before pickup.

POST/bookBook a quoted shipment.
POST/rebookRe-quote and book a previously shipped lane by lane_id.
POST/multistop/bookBook a quoted FTL multi-stop shipment.
POST/cancelCancel a booking before pickup; refunds the card charge if one was made.
GET/bookingsList recent bookings, newest first (limit up to 100, default 25).
Key inputsquote_id (required)reference (PO or external reference)patch.pickup / patch.delivery: street, city, state, zipCode, contactName, phone, email, specialInstruction; patch.notesrebook: lane_id, pickup_date, pallet_countcancel: booking_id (the shipment_id from the book response)
Key outputsbooked, shipment_id, shipment_number, tracking_number, lane_id, service block

Shipment tracking

Pull the current status and the full event history of a booked shipment.

GET/track?booking_id={shipment_id}Booking record plus live tracking status and event history.
GET/events?shipment_id={shipment_id}Full tracking event history for a shipment.

Documents (BOL, POD) and invoices

List shipment documents such as BOL, POD and customs paperwork, and fetch the invoice for a shipment. Both are keyed by order_id.

GET/documents?order_id={order_id}List shipment documents (BOL, POD, customs).
GET/invoices?order_id={order_id}Retrieve the invoice for a shipment.

Saved data: templates, locations and lanes

Reuse load definitions and addresses across quotes, and see which lanes you ship most.

GET/load_templatesList saved load templates.
POST/load_templatesCreate a load template.
DELETE/load_templatesDelete a load template.
GET/locationsList cached locations for your key.
GET/lanesLane history ordered by ship count.

Free freight calculators

Public utilities with CORS enabled. Each has a POST (JSON body) and a GET (query string) form with the same response, wrapped in a data + meta envelope.

POST/tools/freight-classNMFTA density-based LTL freight class.
POST/tools/densityDensity (PCF) plus freight class.
POST/tools/dim-weightDimensional and billable weight.
POST/tools/cbmCubic meters and volumetric weight for ocean or air.
POST/tools/fuel-surchargeLTL fuel surcharge for six large US carriers at a given diesel price.
POST/tools/accessorialTypical LTL accessorial fee ranges.
POST/tools/rate-per-mileRate per mile versus a benchmark.
POST/tools/pallet-weightTotal pallet weight from cases plus tare.
POST/tools/truck-payloadTruck or van payload and utilization.
POST/tools/freight-insuranceEstimated cargo insurance premium by commodity.
POST/tools/container-loadPallet-fit analysis for a container or trailer.
Key inputsfreight-class: length, width, height, weight, units (in | cm), weight_unit (lb | kg)

Example request

Get an LTL quotebash
curl -X POST "https://www.wearewarp.com/api/v1/ltl/quote" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "origin_zip": "90012", "destination_zip": "94105", "pickup_date": "2026-10-15", "pallets": 2, "weight_lbs_per_pallet": 800, "commodity": "auto parts", "length_in": 48, "width_in": 40, "height_in": 48, "stackable": false, "hazmat": false, "accessorials": { "delivery": ["liftgate-delivery"] } }'

Pass the returned quote_id to POST /book before expires_at.

Integration notes

  • Pricing is all-inclusive FAK. freight_class on an LTL quote does not change the price; it is only used for BOL paperwork.
  • LTL quotes come back as quote_tier "indicative" when inputs are missing. Check quote_tier and missing_for_ship[] before booking if you need a firm price.
  • Quotes expire. Respect expires_at; booking an expired quote returns 400, so re-quote rather than retry.
  • /book needs a delivery address when you have no booking history for that lane. Send it in patch.delivery to be safe.
  • Identifiers differ by call: /track takes booking_id (the shipment_id from /book), /events takes shipment_id, and /documents and /invoices take order_id. Store every ID WARP returns.
  • Cancel only works before pickup. It marks the booking cancelled, refunds the card charge and calls the upstream cancel on a best-effort basis; a second call returns 409.
  • Mode limits are enforced at quote time: cargo van tops out at 3 pallets / 3,500 lb and box truck at 12 pallets / 10,000 lb. FTL ignores pallets and weight for pricing.
  • Dates are plain YYYY-MM-DD strings, ZIPs are 5-digit US codes, and weights and dimensions are pounds and inches.

FAQ

Does WARP Freight have a public API?

Yes. WARP publishes an OpenAPI 3.1 spec for its Agent API at /openapi.json under https://www.wearewarp.com/api/v1. It covers quoting, booking, tracking, documents and invoices for cargo van, box truck, FTL and LTL.

How does WARP API authentication work?

Send your API key as a bearer token in the Authorization header. Live keys start with wak_live_ and test keys with wak_test_.

Does the WARP LTL quote need a freight class?

No. WARP prices LTL on all-inclusive FAK rates, so freight_class is optional and only appears on the BOL. You do need pallet count, weight per pallet, commodity, pickup date and dimensions.

Can I get POD documents from the WARP API?

Yes. GET /documents with the shipment's order_id lists its BOL, POD and customs documents, and GET /invoices returns the invoice.

On FreightAPIs

Official resources

Written from WARP Freight’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with WARP Freight; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.

Other carrier API guides