> For the complete documentation index, see [llms.txt](https://docs.whitearrow.com/white-arrow-api-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.whitearrow.com/white-arrow-api-documentation/new-quote.md).

# New Quote

**POST v2/quotes/multistop**

***

## Request

## Quote Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>service</td><td>string enum "LTL" or "TL"</td><td>Yes</td><td>Whether the shipment is truck load or ltl</td></tr><tr><td>commodityDescriptionId</td><td>int (See Below)</td><td>Yes</td><td>Describes the freight being hauled</td></tr><tr><td>freightClass</td><td>string enum (See Below)</td><td>No</td><td>Describes the freight class of the load</td></tr><tr><td>shippers</td><td>Stop array (See Below)</td><td>Yes</td><td>All the pickups for the load. At least 1 is required.</td></tr><tr><td>consignees</td><td>Stop array (See Below)</td><td>Yes</td><td>All the deliveries for the load. At least 1 is required.</td></tr><tr><td>reefer</td><td>Reefer (See Below)</td><td>No</td><td>If the load is temperature controlled then this object is required.</td></tr><tr><td>units</td><td>Units (See Below)</td><td>Yes</td><td>The units of size, weight, and count for the load.</td></tr></tbody></table>

## Reefer Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>reeferTemp</td><td>string</td><td>Yes*</td><td>The temperature of the load. If this object is present then this field is required.<br>LTL Range: 40° to 80°<br>TL Range: -20° to 80°</td></tr><tr><td>reeferCont</td><td>boolean</td><td>No</td><td>If true, indicates that a reefer should be continuously run. Defaults to false. Only available for TL.</td></tr></tbody></table>

## Stop Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>zip</td><td>string</td><td>No*</td><td>The zip code of the stop. It is required if a locationId is not present.</td></tr><tr><td>locationId</td><td>int</td><td>No*</td><td>The locationId of the stop. The id can be obtained from the locations endpoint. It is required if a zip is not present.</td></tr><tr><td>accessorialIds</td><td>int array</td><td>No</td><td>An array of ids representing accessorials to be added to the stop. The ids can be obtained from the accessorials endpoint.</td></tr><tr><td>accessorialTags</td><td>string array enum (See Below)</td><td>No</td><td>An array of accessorials to be added to the stop. An alternative to using accessorialIds but can be used with it.</td></tr><tr><td>date</td><td>string (yyyy-mm-dd)</td><td>No*</td><td>The date of the pickup only. Needed for more accurate transit windows. Needs to be in the form 2023-04-02</td></tr></tbody></table>

## Units Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>palletDimensions</td><td>Pallet Group array (See Below)</td><td>Yes</td><td>An array of pallet dimension objects. Allows for loads with pallets of various sizes.</td></tr><tr><td>totalDimensions</td><td>Total Dimensions object (See Below)</td><td>Yes</td><td>Dimensions related to the entirety of the load.</td></tr></tbody></table>

### Pallet Group Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>units</td><td>string enum "inches" or "feet"</td><td>Yes</td><td>The units the dimensions will be sent in.</td></tr><tr><td>length</td><td>int</td><td>Yes</td><td>The length of one pallet in this group.</td></tr><tr><td>width</td><td>int</td><td>Yes</td><td>The width of one pallet in this group.</td></tr><tr><td>height</td><td>int</td><td>No</td><td>The height of one pallet in this group. Only needed if the group is stackable.</td></tr><tr><td>count</td><td>int</td><td>Yes</td><td>The number of pallets in this group.</td></tr><tr><td>stackable</td><td>boolean</td><td>No</td><td>Whether the pallets can be stacked on top of each other. Defaults to false.</td></tr><tr><td>class</td><td>string</td><td>Conditional</td><td>The NMFC Freight Class of the load. For LTL loads the class is required.</td></tr></tbody></table>

### Total Dimensions Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>totalWeight</td><td>int</td><td>Yes</td><td>The total weight of the load.</td></tr></tbody></table>

## Commodity Description IDs

* 1 - Dairy
* 2 - Machinery
* 4 - Dry F.A.K.
* 5 - Food Product
* 6 - Alcohol
* 8 - Electronics - Deprecated
* 11 - Beer
* 13 - Reefer F.A.K.
* 14 - Fragile Goods
* 15 - General Merchandise

## Accessorial Tags

* driver\_count
* liftgate
* after\_hours
* high\_value
* floor\_loaded
* stop\_charge
* scheduled\_appointment

## Freight Classes

* "500" - 500 Class
* "400" - 400 Class
* "300" - 300 Class
* "250" - 250 Class
* "200" - 200 Class
* "175" - 175 Class
* "150" - 150 Class
* "125" - 125 Class
* "110" - 110 Class
* "100" - 100 Class
* "92" - 92 Class
* "85" - 85 Class
* "77" - 77 Class
* "70" - 70 Class
* "65" - 65 Class
* "60" - 60 Class
* "55" - 55 Class
* "50" - 50 Class

## Example Request

### Example 1 - request with multiple sized pallets

```json
{
  "service":"LTL",
  "commodityDescriptionId":2,
  "shippers":[
    {
      "zip":"90026",
      "date": "2024-04-01",
      "accessorialTags":[
        "floor_loaded"
      ]
    }
  ],
  "consignees":[
    {
      "locationID":74248
    }
  ],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":48,
        "width":48,
        "height":48,
        "count":6,
        "stackable":true,
        "class": "50"
      },
      {
        "units":"inches",
        "length":55,
        "width":45,
        "height":62,
        "count":6,
        "stackable":false,
        "class": "50"
      }
    ],
    "totalDimensions":{
      "totalWeight":10000
    }
  },
  "reefer":{
    "reeferTemp":"",
    "reeferCont":false
  }
}
```

### Example 2 - request with multiple stops

```json
{
  "service":"LTL",
  "commodityDescriptionId":2,
  "shippers":[
    {
      "zip":"90210",
      "date": "2024-04-01"
    },
    {
      "zip":"90026",
      "date": "2024-04-01"
    }
  ],
  "consignees":[
    {
      "zip":"60607"
    }
  ],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":"50.4",
        "width":"40",
        "height":"40",
        "count":"10",
        "stackable":true,
        "class": "50"
      }
    ],
    "totalDimensions":{
      "totalWeight":13000
    }
  }
}
```

### Example 3 - request for TL reefer

```json
{
  "service":"TL",
  "commodityDescriptionId":2,
  "shippers":[
    {
      "zip":"90210",
      "date": "2024-04-01"
    },
    {
      "zip":"90026",
      "date": "2024-04-01"
    }
  ],
  "consignees":[
    {
      "zip":"60607"
    }
  ],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":"48",
        "width":"48",
        "height":"48",
        "count":"23"
      }
    ],
    "totalDimensions":{
      "totalWeight":23000
    },
    "reefer":{
      "reeferTemp":"0",
      "reeferCont":false
    }
  }
}
```

## Quote Response

### Response Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>int</td><td>The unique id of the quote.</td></tr><tr><td>createdAt</td><td>string</td><td>Date and time the quote was created.</td></tr><tr><td>commodityDescription</td><td>string</td><td>The string name of the description id sent.</td></tr><tr><td>freightClass</td><td>string</td><td>The freight class. Empty string means no freight class was used</td></tr><tr><td>totalMiles</td><td>int</td><td>The total road miles of the quote.</td></tr><tr><td>pallets</td><td>int</td><td>The total number of pallets for the quote.</td></tr><tr><td>feet</td><td>int</td><td>The total number of feet for the load. TL will alway return 53 feet.</td></tr><tr><td>weight</td><td>int</td><td>The total weight of the load.</td></tr><tr><td>type</td><td>string</td><td>Either TL or LTL</td></tr><tr><td>stops</td><td>array</td><td>An array of stop objects. See below.</td></tr><tr><td>serviceLevels</td><td>array</td><td>An array of service level objects. See below.</td></tr><tr><td>accessorials</td><td>array</td><td>An array of accessorial objects. See below.</td></tr><tr><td>units</td><td>object</td><td>The unit object that was sent in the quote request is returned.</td></tr></tbody></table>

### Stop Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>int</td><td>The unique id of the stop.</td></tr><tr><td>name</td><td>string</td><td>The name of the location of the stop.</td></tr><tr><td>type</td><td>string</td><td>Either shipper (pickup) or consignee (delivery)</td></tr><tr><td>address</td><td>object</td><td>An object representing the address of the stop. See Below.</td></tr></tbody></table>

#### Address Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>locationId</td><td>int</td><td>If the address is a valid location then the id is returned.</td></tr><tr><td>city</td><td>string</td><td>The city name.</td></tr><tr><td>state</td><td>string</td><td>The two letter state abbreviation. Ex "CA"</td></tr><tr><td>zip</td><td>string</td><td>The zip code of the address.</td></tr><tr><td>latitude</td><td>float</td><td>The latitude of the address.</td></tr><tr><td>longitude</td><td>float</td><td>The longitude of the address.</td></tr></tbody></table>

## Service Level Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>The identifier of the service level. Used when tendering a load.</td></tr><tr><td>description</td><td>string</td><td>The expected transit time of the service level.</td></tr><tr><td>seviceLevel</td><td>string</td><td>The name of the service level. Either guaranteed, premium, or economy.</td></tr><tr><td>baseRate</td><td>float</td><td>The base rate of the service level.</td></tr><tr><td>fuelRate</td><td>float</td><td>The fuel surcharge for the service level.</td></tr><tr><td>extra</td><td>float</td><td>The total of the accessorials for the quote. Does not include fuel surcharge.</td></tr><tr><td>totalRate</td><td>float</td><td>The total cost of the service level.</td></tr><tr><td>surcharges</td><td>array</td><td>An array of accessorial objects. These charges are unique to only the service level they are apart of.</td></tr><tr><td>from</td><td>date string "YYYY-M-D"</td><td>The earliest date the load can be expected to deliver</td></tr><tr><td>to</td><td>date string "YYYY-M-D"</td><td>The latest date the load can be expected to deliver</td></tr><tr><td>flexible</td><td>boolean</td><td>If flexible is true then the from - to dates are considered a window. If flexible is false then the load can be guaranteed to deliver on any date in the window</td></tr></tbody></table>

## Accessorial Object

<table data-full-width="true"><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>costAmount</td><td>float</td><td>The cost of the accessorial.</td></tr><tr><td>name</td><td>string</td><td>The name of the accessorial</td></tr><tr><td>accessorialId</td><td>int</td><td>The id of the accessorial.</td></tr><tr><td>stopId</td><td>int</td><td>The id of the stop object this accessorial is for. Omitted if the accessorial is not part of a stop.</td></tr><tr><td>stopName</td><td>string</td><td>The name of the stop object this accessorial is for. Omitted if the accessorial is not part of a stop.</td></tr></tbody></table>

### Example 1 - response with multiple sized pallets

```json
{
  "id":1433565,
  "createdAt":"2018-04-10T21:54:38Z",
  "commodityDescription":"Machinery",
  "totalMiles":385,
  "pallets":12,
  "freightClass": "50",
  "feet":22,
  "weight":10000,
  "type":"LTL",
  "stops":[
    {
      "id":3051472,
      "name":"90026",
      "type":"shipper",
      "city":"Los Angeles",
      "state":"CA",
      "zip":"90026",
      "address":{
        "city":"Los Angeles",
        "state":"CA",
        "zip":"90026",
        "latitude":34.079313,
        "longitude":-118.262692
      }
    },
    {
      "id":3051473,
      "name":"Mule Creek State Prison - DOC",
      "type":"consignee",
      "city":"Plymouth",
      "state":"CA",
      "zip":"95669",
      "address":{
        "locationId":74248,
        "line1":"4001 CA-104",
        "city":"Plymouth",
        "state":"CA",
        "zip":"95669",
        "latitude":38.3687,
        "longitude":-120.959
      }
    }
  ],
  "serviceLevels":[
    {
      "id":"G1433565",
      "description":"4 Business Days",
      "serviceLevel":"guaranteed",
      "baseRate":1844,
      "extra":645,
      "fuelRate":332,
      "totalRate":2821,
      "surcharges":[
        {
          "costAmount":445,
          "name":"Guaranteed Service",
          "accessorialId":2
        }
      ],
      "flexible": false,
      "from": "2023-9-25",
      "to": "2023-10-5"
    },
    {
      "id":"P1433565",
      "description":"5/6 Business Days",
      "serviceLevel":"premium",
      "baseRate":1844,
      "extra":200,
      "fuelRate":332,
      "totalRate":2376,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-26",
      "to": "2023-9-27"
    },
    {
      "id":"E1433565",
      "description":"7/10 Business Days",
      "serviceLevel":"economy",
      "baseRate":1529,
      "extra":200,
      "fuelRate":275,
      "totalRate":2004,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-28",
      "to": "2023-10-3"
    }
  ],
  "accessorials":[
    {
      "costAmount":200,
      "name":"Floor Loaded",
      "accessorialId":1,
      "stopId":3051472,
      "stopName":"Stop:1 - 90026"
    }
  ],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":48,
        "width":48,
        "height":48,
        "count":6,
        "stackable":true
      },
      {
        "units":"inches",
        "length":55,
        "width":45,
        "height":62,
        "count":6
      }
    ],
    "totalDimensions":{
      "totalWeight":10000
    }
  },
  "api":"public",
  "version":3
}
```

## Example 2 - response with multiple stops

```json
{
  "id":1433566,
  "createdAt":"2018-04-10T22:11:27Z",
  "commodityDescription":"Machinery",
  "totalMiles":2025,
  "pallets":10,
  "feet":14,
  "weight":13000,
  "type":"LTL",
  "stops":[
    {
      "id":3051474,
      "name":"90210",
      "type":"shipper",
      "city":"Beverly Hills",
      "state":"CA",
      "zip":"90210",
      "address":{
        "city":"Beverly Hills",
        "state":"CA",
        "zip":"90210",
        "latitude":34.086771,
        "longitude":-118.411853
      }
    },
    {
      "id":3051475,
      "name":"90026",
      "type":"shipper",
      "city":"Los Angeles",
      "state":"CA",
      "zip":"90026",
      "address":{
        "city":"Los Angeles",
        "state":"CA",
        "zip":"90026",
        "latitude":34.079313,
        "longitude":-118.262692
      }
    },
    {
      "id":3051476,
      "name":"60607",
      "type":"consignee",
      "city":"Chicago",
      "state":"IL",
      "zip":"60607",
      "address":{
        "city":"Chicago",
        "state":"IL",
        "zip":"60607",
        "latitude":41.87941,
        "longitude":-87.650582
      }
    }
  ],
  "transitTime":115.23333333333333,
  "serviceLevels":[
    {
      "id":"G1433566",
      "description":"4 Business Days",
      "serviceLevel":"guaranteed",
      "baseRate":1083,
      "extra":445,
      "fuelRate":195,
      "totalRate":1723,
      "surcharges":[
        {
          "costAmount":445,
          "name":"Guaranteed Service",
          "accessorialId":2
        }
      ],
      "flexible": false,
      "from": "2023-9-25",
      "to": "2023-10-5"
    },
    {
      "id":"P1433566",
      "description":"5/6 Business Days",
      "serviceLevel":"premium",
      "baseRate":1083,
      "extra":0,
      "fuelRate":195,
      "totalRate":1278,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-26",
      "to": "2023-9-27"
    },
    {
      "id":"E1433566",
      "description":"*8/9 Business Days",
      "serviceLevel":"economy",
      "baseRate":924,
      "extra":0,
      "fuelRate":166,
      "totalRate":1090,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-28",
      "to": "2023-10-3"
    }
  ],
  "accessorials":[],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":"50.4",
        "width":"40",
        "height":"40",
        "count":"10",
        "stackable":true
      }
    ],
    "totalDimensions":{
      "totalWeight":13000
    }
  },
  "api":"public",
  "version":3
}
```

### Example 3 - response for TL reefer

```json
{
  "id":1433567,
  "createdAt":"2018-04-10T22:14:32Z",
  "commodityDescription":"Machinery",
  "totalMiles":2025,
  "pallets":23,
  "feet":53,
  "weight":23000,
  "type":"TL",
  "stops":[
    {
      "id":3051477,
      "name":"90210",
      "type":"shipper",
      "city":"Beverly Hills",
      "state":"CA",
      "zip":"90210",
      "address":{
        "city":"Beverly Hills",
        "state":"CA",
        "zip":"90210",
        "latitude":34.086771,
        "longitude":-118.411853
      }
    },
    {
      "id":3051478,
      "name":"90026",
      "type":"shipper",
      "city":"Los Angeles",
      "state":"CA",
      "zip":"90026",
      "address":{
        "city":"Los Angeles",
        "state":"CA",
        "zip":"90026",
        "latitude":34.079313,
        "longitude":-118.262692
      }
    },
    {
      "id":3051479,
      "name":"60607",
      "type":"consignee",
      "city":"Chicago",
      "state":"IL",
      "zip":"60607",
      "address":{
        "city":"Chicago",
        "state":"IL",
        "zip":"60607",
        "latitude":41.87941,
        "longitude":-87.650582
      }
    }
  ],
  "transitTime":97.11666666666667,
  "serviceLevels":[
    {
      "id":"G1433567",
      "description":"5 Calendar Days",
      "serviceLevel":"guaranteed",
      "baseRate":2691,
      "extra":445,
      "fuelRate":633,
      "totalRate":3769,
      "surcharges":[
        {
          "costAmount":445,
          "name":"Guaranteed Service",
          "accessorialId":2
        }
      ],
      "flexible": false,
      "from": "2023-9-28",
      "to": "2023-10-3"
    },
    {
      "id":"P1433567",
      "description":"6/7 Calendar Days",
      "serviceLevel":"premium",
      "baseRate":2691,
      "extra":0,
      "fuelRate":633,
      "totalRate":3324,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-28",
      "to": "2023-10-3"
    },
    {
      "id":"E1433567",
      "description":"*8/9 Calendar Days",
      "serviceLevel":"economy",
      "baseRate":2415,
      "extra":0,
      "fuelRate":567,
      "totalRate":2982,
      "surcharges":null,
      "flexible": true,
      "from": "2023-9-28",
      "to": "2023-10-3"
    }
  ],
  "accessorials":[],
  "units":{
    "palletDimensions":[
      {
        "units":"inches",
        "length":"48",
        "width":"48",
        "height":"48",
        "count":"23"
      }
    ],
    "totalDimensions":{
      "totalWeight":23000
    }
  },
  "api":"public",
  "version":3
}
```
