Multi-Stops

Get quote for a multi-stops FTL shipment

Get a quote for a Full Truck Load (FTL) shipment with multiple stops (transit points).

This endpoint allows you to get pricing for routes with intermediate pickup/delivery points between the origin and final destination. The pricing service calculates the total cost for the entire multi-stop route.

Requirements:

  • At least 1 transit stop is required (otherwise use the standard /freights/quote endpoint)
  • Maximum 18 transit stops (20 total stops including pickup and delivery)
  • Only US ZIP codes are accepted at the moment (5-digit or ZIP+4). country "CA" passes the country check but Canadian postal codes fail the zipcode validation, so Canada cannot be quoted through multi-stops yet.

Rate limit: this endpoint counts towards the FTL quoting rate limit of your API key (per UTC hour and per UTC day). Above the limit the API answers 429 rate_limit_exceeded with a Retry-After header.

Validation: every validation error (including a missing required field) is returned as 400 invalid_field_data with the failing field in the message.

Request parameters

NameTypeRequired/OptionalDescription
pickupDateStringRequiredThe earliest pickup date in YYYY-MM-DD format, in the timezone of the pickup location.
pickupInfoObjectRequiredPickup stop details.
pickupInfo.zipcodeStringRequiredThe postal code of the pickup location (US 5-digit or ZIP+4).
pickupInfo.countryStringOptionalCountry code (ISO 3166-1 alpha-2). Defaults to "US". See the US-only note above.
deliveryInfoObjectRequiredFinal delivery stop details.
deliveryInfo.zipcodeStringRequiredThe postal code of the final delivery location (US 5-digit or ZIP+4).
deliveryInfo.countryStringOptionalCountry code (ISO 3166-1 alpha-2). Defaults to "US". See the US-only note above.
transitsArray<Object>RequiredList of intermediate transit stops in route order. Min 1, max 18.
transits[].zipcodeStringRequiredThe postal code of the transit stop (US 5-digit or ZIP+4).
transits[].countryStringOptionalCountry code (ISO 3166-1 alpha-2). Defaults to "US". See the US-only note above.
listItemsArray<Item>RequiredThe list of commodities being shipped (used for pricing the entire route). 1 to 100 items.
pickupServicesArray<ServiceOption>OptionalPickup services required at the pickup location (max 20).
deliveryServicesArray<ServiceOption>OptionalDelivery services required at the delivery location (max 20).
additionalServicesArray<ServiceOption>OptionalAny additional services for the shipment (max 20).
shipmentTypeStringOptionalOnly FTL is accepted (default: FTL); any other value is rejected with 400.
vehicleTypeObjectOptionalVehicle type specification.
vehicleType.codeStringRequired when vehicleType is providedVehicle code (e.g. DRY_VAN_53, STRAIGHT_TRUCK_26, CARGO_VAN).
<br /> **Item limits** (same **Item** schema as POST /freights/quote, with stricter bounds):
FieldConstraint
height0.1 - 85
length0.1 - 636
width0.1 - 102
quantityinteger, 1 - 9999
totalWeight0.01 - 80000
namemax 200 characters; notes max 500; freightClass/packaging max 50
<br /> **Response**
NameTypeDescription
quote_idStringThe unique ID for this quote (WM + ULID, 28 characters). Legacy PRICING_MULTI_ ids are still accepted when booking.
total_chargeNumberTotal price for the entire multi-stop route (USD).
transit_timeNumberEstimated transit time in seconds.
transit_time_without_teamNumberEstimated transit time in seconds when the load is driven by a single driver instead of a team.
rate_detailObjectDetailed rate breakdown.
post/freights/quote/multi-stops

Request

  • Base URL: https://stg.wearewarp.com/api/v1
  • URL: https://stg.wearewarp.com/api/v1/freights/quote/multi-stops
  • Auth: API key in header apikey

Request body

pickupDatestring date required

Pickup date in YYYY-MM-DD format

shipmentType'FTL'

Shipment type. Only FTL is accepted for multi-stops; any other value is rejected with 400.

Example request

{
  "pickupDate": "2026-03-15",
  "pickupInfo": {
    "zipcode": "90021"
  },
  "deliveryInfo": {
    "zipcode": "80238"
  },
  "transits": [
    {
      "zipcode": "75201"
    }
  ],
  "listItems": [
    {
      "name": "Electronics Pallet",
      "height": 48,
      "length": 48,
      "width": 48,
      "sizeUnit": "IN",
      "quantity": 1,
      "totalWeight": 500,
      "weightUnit": "lbs"
    }
  ]
}

Response

successful creation

quote_idstring

Unique quote ID (prefixed with WM, 28 characters). Use this ID when booking. Quotes created before the short ID rollout use the legacy PRICING_MULTI_ prefix and remain valid.

total_chargenumber

Total price for the entire multi-stop route in USD

transit_timenumber

Estimated transit time in seconds

transit_time_without_teamnumber

Estimated transit time in seconds when the load is driven by a single driver instead of a team

rate_detailobject

Detailed rate breakdown

Example response

{
  "quote_id": "WM01KH5PB2V9QJ6Z8M4T3R7X1C0D",
  "total_charge": 4425.57,
  "transit_time": 118800,
  "transit_time_without_team": 158400
}

Changes

No recorded changes to this operation across all 1 revision of this API.