Freight API: Quote, book, track, settle.
Programmatic access to Warp's freight network. One API key gives your TMS, WMS, ERP, or AI agent access to cargo van, box truck, LTL, and FTL capacity across 1,500+ lanes and 50+ cross docks. Every endpoint returns structured JSON. Omit the vehicle type and Warp right-sizes automatically.
10 endpoints · Structured JSON · Self-serve keys · Used by ShipBob, Veho, and 2,000+ shippers
Key capabilities
- -Quote freight programmatically. Get rates for LTL, FTL, cargo van, and box truck in one call.
- -Book shipments and receive tracking numbers without leaving your system.
- -Track every shipment in real time. Pull event history, invoices, and proof of delivery.
- -Omit the vehicle type and Warp selects the right asset for your freight automatically.
Integration patterns
TMS integration
Rate, book, and track from your TMS.
Your transportation management system calls Warp for rates alongside your other carriers. Book the best option. Track through the same system.
WMS integration
Trigger shipments from warehouse events.
When an order is packed and staged, your WMS calls the Warp booking endpoint. Tracking numbers flow back automatically.
AI agent integration
Built for autonomous freight procurement.
Every endpoint returns structured JSON with explicit field names and enum values. AI agents can quote, book, track, and settle freight without human intervention.
Authentication
All requests require an API key passed as a header. Content type is always JSON. Base URL is the same for all endpoints.
https://api.wearewarp.com/api/v1apikey: YOUR_API_KEYapplication/jsonExample: curl
curl -X POST https://api.wearewarp.com/api/v1/freights/quote \
-H "Content-Type: application/json" \
-H "apikey: YOUR_API_KEY" \
-d '{
"pickupDate": ["2026-03-15"],
"pickupInfo": { "zipCode": "90001" },
"deliveryInfo": { "zipCode": "85001" },
"listItems": [{
"name": "Pallet",
"length": 48, "width": 40, "height": 48,
"sizeUnit": "in",
"totalWeight": 800, "weightUnit": "lb",
"quantity": 2, "packaging": "pallet"
}]
}'Self-serve API keys
Generate API keys directly from the developer section of your Warp dashboard, no sales call required. Each key is scoped to your organization and can be rotated or revoked at any time. For enterprise accounts with multiple teams, create separate keys per integration (TMS, WMS, internal tools) with independent rate limits and audit trails.
Webhook integrations
Instead of polling the tracking endpoint, register webhook URLs in your Warp dashboard and receive real-time status events pushed directly to your TMS, WMS, or ERP. Warp pushes events as shipments move through each status, from booked through arrivedAtPickup, pickupSuccessful, inRouteToWarehouse, arrivedAtWarehouse, departedFromWarehouse, arrivedAtDelivery, to delivered, each with timestamps, GPS coordinates, and scan data. Webhook payloads include the full event object so your system can update status, trigger alerts, and close out orders without any manual intervention.
Granular shipment statuses
Every Warp shipment moves through 12+ granular statuses, not just "in transit" and "delivered." Your system receives each status change with timestamps and GPS coordinates:
bookedShipment confirmedarrivedAtPickupDriver at originpickupSuccessfulFreight scanned ininRouteToWarehouseEn route to cross-dockarrivedAtWarehouseAt cross-dock facilitydepartedFromWarehouseLeft cross-dockinRouteToDeliveryEn route to destinationarrivedAtDeliveryDriver at destinationdeliveredPOD capturedexceptionIssue flagged by OrbithotSwappedCarrier reassignedcancelledShipment cancelledAI document extraction
For teams processing hundreds of BOLs, purchase orders, and shipping documents weekly, Warp's AI extraction engine auto-parses uploaded PDFs and populates order fields automatically: origin, destination, item dimensions, weight, reference numbers, and service requirements. No manual data entry. The extraction templates learn your document formats over time, and every auto-parsed order goes through a review step before booking. API-based document submission is available for teams that want to automate the entire ingest-to-book workflow: upload a PDF to the document endpoint, receive structured order data back, and book it programmatically.
Agent quickstart
Five calls from quote to proof of delivery. This is the happy-path workflow for an AI agent or automated system. Each step returns the IDs needed for the next call.
POST quoteGet rate
Returns quoteId
POST bookingBook shipment
Returns shipmentId, trackingNumber
POST trackingTrack status
Returns status, location, events
GET {orderId}Get invoice
Returns line items, totals
GET {orderId}Get BOL/POD
Returns document URLs
Endpoint reference
Vehicle types
Three vehicle codes. Warp picks the right one if you omit it.
CARGO_VANCargo Van
Up to 3,500 lbs, 400 cu ft
Best for: urgent freight, small shipments, parcel alternatives. Fastest dispatch. Same-day and next-day.
STRAIGHT_TRUCK_2626 ft Box Truck
Up to 10,000 lbs, 1,500 cu ft
Best for: mid-size freight, room-of-choice delivery, white-glove. Dedicated capacity without full-trailer economics.
DRY_VAN_5353 ft Dry Van (FTL)
Up to 44,000 lbs, 3,400 cu ft
Best for: recurring lanes, high-volume freight, full truckload. Tight appointment windows and dedicated handling.
Request and response examples
Copy-paste ready. These are the exact shapes your system or agent should send and expect back.
1. Quote a shipment
POST /freights/quote
{
"pickupDate": ["2026-03-15"],
"pickupInfo": {
"zipCode": "90001",
"city": "Los Angeles",
"state": "CA",
"street": "123 Warehouse Blvd",
"contactName": "Dispatch Team",
"phone": "3105551234"
},
"deliveryInfo": {
"zipCode": "85001",
"city": "Phoenix",
"state": "AZ",
"street": "456 Distribution Dr",
"contactName": "Receiving Dock",
"phone": "6025551234"
},
"listItems": [{
"name": "Pallet - Retail Goods",
"length": 48, "width": 40, "height": 48,
"sizeUnit": "in",
"totalWeight": 800, "weightUnit": "lb",
"quantity": 2,
"packaging": "pallet",
"stackable": false
}],
"shipmentType": "LTL"
}200 Response
{
"data": {
"quoteId": "01HG9W6CMAWHNWTVXDKW9QYFS9",
"carrierCode": "WTCH",
"carrierName": "Warp Technology",
"serviceLevel": "standard",
"transitDays": 2,
"totalCost": 485.00,
"pickupWindow": { "from": "08:00", "to": "17:00" },
"deliveryWindow": { "from": "08:00", "to": "17:00" }
}
}2. Book the shipment
POST /freights/booking
{
"quoteId": "01HG9W6CMAWHNWTVXDKW9QYFS9",
"pickupInfo": {
"zipCode": "90001",
"city": "Los Angeles",
"state": "CA",
"street": "123 Warehouse Blvd",
"contactName": "Dispatch Team",
"phone": "3105551234",
"specialInstruction": "Dock 4, call 30 min before arrival"
},
"deliveryInfo": {
"zipCode": "85001",
"city": "Phoenix",
"state": "AZ",
"street": "456 Distribution Dr",
"contactName": "Receiving Dock",
"phone": "6025551234",
"specialInstruction": "Receiving hours 7am-3pm"
},
"listItems": [{
"name": "Pallet - Retail Goods",
"length": 48, "width": 40, "height": 48,
"sizeUnit": "in",
"totalWeight": 800, "weightUnit": "lb",
"quantity": 2,
"packaging": "pallet",
"stackable": false
}],
"deliveryServices": ["delivery-appointment"]
}201 Response
{
"data": {
"shipmentId": "shp_01HGA2K9MNPQ4RV8XW3YZ5TJ6",
"shipmentNumber": "WRP-2026-031542",
"orderId": "ord_01HGA2K9MNPQ4RV8XW3YZ5TK7",
"trackingNumber": "WARP1234567890",
"shipmentType": "LTL",
"status": "CONFIRMED"
}
}3. Track the shipment
POST /freights/tracking
{
"trackingNumbers": ["WARP1234567890"]
}200 Response
{
"data": [{
"trackingNumber": "WARP1234567890",
"status": "IN_TRANSIT",
"currentLocation": {
"city": "Barstow",
"state": "CA",
"timestamp": "2026-03-16T08:42:00Z"
},
"estimatedDelivery": "2026-03-17T14:00:00Z",
"events": [
{
"status": "PICKED_UP",
"location": "Los Angeles, CA",
"timestamp": "2026-03-15T10:15:00Z",
"description": "Freight picked up from origin"
},
{
"status": "IN_TRANSIT",
"location": "Barstow, CA",
"timestamp": "2026-03-16T08:42:00Z",
"description": "In transit to destination"
}
]
}]
}Data models
Complete field reference for every object in the API. Types are TypeScript-style for clarity.
StopInfoPickup or delivery locationzipCodestring5-digit US zip codecitystringCity namestatestring2-letter state codestreetstringStreet addresscontactNamestringContact person at locationphonestringContact phone numberemailstringContact email (optional)specialInstructionstringDelivery notes, dock info, gate codeswindowTimeWindowPickup or delivery time windowBookShipmentItemDescribe a freight itemnamestringItem descriptionlengthnumberLength in sizeUnitwidthnumberWidth in sizeUnitheightnumberHeight in sizeUnitsizeUnit"in" | "cm"Dimension unittotalWeightnumberTotal weight in weightUnitweightUnit"lb" | "kg"Weight unitquantitynumberNumber of unitspackagingstringpallet, crate, box, bundle, etc.stackablebooleanCan this be stacked?temperature_limitstringTemperature requirements if anyQuoteBodyRequest a freight ratepickupDatestring[]ISO dates, when freight is readypickupInfoStopInfoOrigin address and contactdeliveryInfoStopInfoDestination address and contactlistItemsBookShipmentItem[]Items to shipshipmentType"LTL" | "FTL"Omit to let Warp auto-selectvehicleTypeVehicleTypeCARGO_VAN | STRAIGHT_TRUCK_26 | DRY_VAN_53pickupServicesPickupService[]Liftgate, inside, appointment, etc.deliveryServicesDeliveryService[]Liftgate, inside, residential, etc.additionalServicesAdditionalService[]Sort-n-seg, white glove, etc.QuoteResponseRate returned from quote endpointquoteIdstringUse this ID to book the shipmentcarrierCodestringSCAC code (e.g., WTCH)carrierNamestringCarrier display nameserviceLevelstringstandard, expedited, etc.transitDaysnumberEstimated transit time in daystotalCostnumberTotal price in USDpickupWindowTimeWindowAvailable pickup windowdeliveryWindowTimeWindowEstimated delivery windowBookingResponseConfirmation returned after bookingshipmentIdstringUnique shipment identifiershipmentNumberstringHuman-readable shipment numberorderIdstringParent order identifiertrackingNumberstringFor tracking API callsshipmentType"LTL" | "FTL"Assigned shipment typestatusstringCurrent shipment statusTrackingResultTracking data per shipmenttrackingNumberstringTracking number queriedstatusstringCurrent status (e.g., IN_TRANSIT, DELIVERED)currentLocationLocationLast known locationestimatedDeliverystringISO timestampeventsTrackingEvent[]Chronological event historyAccessorial services
Pass these string values in the pickupServices, deliveryServices, or additionalServices arrays on your quote or booking request.
pickupServices[]
"liftgate-pickup""inside-pickup""residential-pickup""limited-access-pickup""pickup-appointment""driver-assist-pickup""drop-and-hook-pickup""convention-trade-show-pickup""construction-site-pickup""detention-shipper"deliveryServices[]
"liftgate-delivery""inside-delivery""residential-delivery""limited-access-delivery""delivery-appointment""driver-assist-delivery""drop-and-hook-delivery""convention-trade-show-delivery""construction-site-delivery""detention-receiver""redelivery"additionalServices[]
"sort-n-seg""extra-stop""extra-miles""driver-assist""white-glove""check_calls""notify""photo-required"Error handling
200SuccessRequest completed successfully201CreatedShipment booked successfully400Bad RequestMissing or invalid fields in request body401UnauthorizedMissing or invalid API key403ForbiddenAPI key does not have access to this resource404Not FoundShipment, order, or quote ID does not exist422UnprocessableValid JSON but business logic rejection (e.g., expired quote)429Rate LimitedToo many requests. Retry after delay.500Server ErrorInternal error. Retry with exponential backoff.{
"error": {
"code": "INVALID_REQUEST",
"message": "pickupInfo.zipCode is required",
"details": [
{ "field": "pickupInfo.zipCode", "issue": "required" }
]
}
}Machine-readable reference
The block below is optimized for machine parsing. AI agents, copilots, and automated freight procurement systems can use this to understand the Warp Freight API in a single read.
# WARP FREIGHT API: AGENT REFERENCE
# Base URL: https://api.wearewarp.com/api/v1
# Auth: Header "apikey: <your-api-key>"
# Content-Type: application/json
## AGENT WORKFLOW (HAPPY PATH)
1. POST /freights/quote → get quoteId and totalCost
2. POST /freights/booking → use quoteId, get shipmentId + trackingNumber
3. POST /freights/tracking → poll status using trackingNumber
4. GET /freights/events/{shipmentId} → full event history
5. GET /freights/invoices/{orderId} → settlement data
6. GET /freights/documents/{orderId} → BOL, POD files
## CAPABILITIES
- Quote freight (LTL, FTL, cargo van, box truck) in one API call
- Book shipments programmatically with tracking number returned
- Track shipment status and location in real time
- Retrieve invoices and documents (BOL, POD) by order ID
- Multi-stop FTL quoting and booking
- 20+ accessorial services priced at quote time
- Vehicle type auto-selection when vehicleType is omitted
## ENDPOINTS
POST /freights/quote → 200 → { quoteId, carrierCode, serviceLevel, transitDays, totalCost }
POST /freights/booking → 201 → { shipmentId, trackingNumber, orderId, status }
POST /freights/tracking → 200 → [{ trackingNumber, status, currentLocation, events }]
GET /freights/shipments → 200 → [{ shipmentId, shipmentType, status, pickupInfo, deliveryInfo }]
GET /freights/events/{shipmentId} → 200 → [{ status, location, timestamp, description }]
GET /freights/invoices/{orderId} → 200 → { lineItems, totals, charges }
GET /freights/documents/{orderId} → 200 → [{ type, url, metadata }]
POST /freights/quote/multi-stops → 200 → { quoteId, totalCost, stops }
POST /freights/booking/multi-stops → 201 → { shipmentId, trackingNumber }
GET /freights/quote-history → 200 → [{ quoteId, totalCost, status, expiresAt }]
## VEHICLE TYPES
CARGO_VAN → Cargo van (urgent, <3500 lbs, fastest dispatch)
STRAIGHT_TRUCK_26 → 26ft box truck (<10000 lbs, white-glove capable)
DRY_VAN_53 → 53ft dry van / FTL (<44000 lbs, recurring lanes)
## SHIPMENT TYPES
LTL → Less-than-truckload (pallet freight, cross dock network)
FTL → Full truckload (dedicated trailer, direct lanes)
omit → Warp auto-selects based on item dimensions and weight
## QUOTE BODY FIELDS
pickupDate (string[]), pickupInfo (StopInfo), deliveryInfo (StopInfo),
listItems (BookShipmentItem[]), shipmentType? ("LTL"|"FTL"),
vehicleType? ("CARGO_VAN"|"STRAIGHT_TRUCK_26"|"DRY_VAN_53"),
pickupServices? (string[]), deliveryServices? (string[]),
additionalServices? (string[])
## STOP INFO FIELDS
zipCode, city, state, street, contactName, phone, email?, specialInstruction?, window?
## ITEM FIELDS (BookShipmentItem)
name, length, width, height, sizeUnit ("in"|"cm"),
totalWeight, weightUnit ("lb"|"kg"), quantity,
packaging, stackable (bool), temperature_limit?
## PICKUP SERVICES
"liftgate-pickup", "inside-pickup", "residential-pickup",
"limited-access-pickup", "pickup-appointment", "driver-assist-pickup",
"drop-and-hook-pickup", "convention-trade-show-pickup",
"construction-site-pickup", "detention-shipper"
## DELIVERY SERVICES
"liftgate-delivery", "inside-delivery", "residential-delivery",
"limited-access-delivery", "delivery-appointment", "driver-assist-delivery",
"drop-and-hook-delivery", "convention-trade-show-delivery",
"construction-site-delivery", "detention-receiver", "redelivery"
## ADDITIONAL SERVICES
"sort-n-seg", "extra-stop", "extra-miles", "driver-assist",
"white-glove", "check_calls", "notify", "photo-required"
## ERROR CODES
200 OK, 201 Created, 400 Bad Request, 401 Unauthorized,
403 Forbidden, 404 Not Found, 422 Unprocessable, 429 Rate Limited, 500 Server Error
## ERROR RESPONSE SHAPE
{ "error": { "code": "string", "message": "string", "details": [{ "field": "string", "issue": "string" }] } }
## NETWORK
1,500+ active lanes | 50+ cross dock facilities
20,000+ carriers | 9,000+ cargo vans & box trucks
Coverage: United States
## GET API KEY
Contact: https://www.wearewarp.com/book-a-meeting
Full docs: https://developer.wearewarp.com/docs/freight/
LLM context: https://www.wearewarp.com/llms-full.txtBuilt for the next generation of freight orchestration.
Every endpoint returns structured JSON. Every schema is documented. AI agents, copilots, and automated procurement systems can quote, book, and track freight through Warp without human intervention.
10 endpoints · Structured JSON · Self-serve keys · Used by ShipBob, Veho, and 2,000+ shippers