---
title: "Creates a quote"
method: POST
path: "/quotes"
tags: ["Shipper"]
---

# Creates a quote

`POST /quotes`

Creates a quote based on the factors provided in the request body.
This API endpoint is only accessible by Shippers and Admins!

## Request body

- QuoteRequest — Either `full_truckload` must be `true`, or `loads` must be provided. When `full_truckload` is `false`, `loads` is required.
  - `accessorials` object[] — Optional accessorial services requested for the shipment.
    - `type` string — Allowed values for type are `cfs`, `hazmat`, `liftgate_origin`, `liftgate_destination`, `residential_delivery`, `room_of_choice`, `white_glove`, `airport_pickup`, `tsa_certification`, `flatbed_truck`, `two_man` and `inside_delivery`.
  - `courier` boolean — Whether the quote is for a courier (small parcel) shipment.
  - `distance` integer — Distance of the shipment, in `distance_units` (default miles). If omitted, it is calculated from the stops.
  - `loads` QuoteRequestLoads[] — The loads being shipped. Required when `full_truckload` is `false`.
    - `type` string, required — Packaging type for the load, e.g. `pallets`, `boxes`, or `crates`.
    - `quantity` integer, required — Number of units of this load.
    - `length` integer, required — Length of each unit, expressed in `dimensional_units`.
    - `width` integer, required — Width of each unit, expressed in `dimensional_units`.
    - `height` integer, required — Height of each unit, expressed in `dimensional_units`.
    - `weight` integer, required — Weight of the load, expressed in `weight_units`.
    - `weight_units` string — Unit of measure for `weight`. Default value is `lb`.
    - `dimensional_units` string — Unit of measure for `length`, `width`, and `height`. Default value is `in`.
    - `languageCodeId` string — Locale code for the load, e.g. `en-us`.
    - `distance_units` string — Unit of measure for distance. Default value is `mi`.
    - `currency` string — ISO currency code for monetary values. Default value is `USD`.
    - `temperature_units` string — Unit of measure for temperature-controlled loads, e.g. `F` or `C`.
    - `stackable` boolean — Whether the load can be stacked. Default value is `false`.
  - `market` string — The valid values for `market` are the three letter identifiers for the market, like LAX, SFO, ATL, etc.
  - `stops` QuoteRequestStops[], required — Ordered list of pickup and delivery stops for the shipment.
    - `action` string, required — Acceptable values for `action` are `pickup` and `deliver`.
    - `location` object, required — Where this stop takes place.
      - `name` string, required — Name of the location.
      - `address` string, required — Full address of the location. US-based addresses must include street, city, state, and zip code.
  - `weight` integer, required — Total weight of the shipment, in `weight_units`.
  - `weight_units` string — Unit of measure for `weight`. Default unit is `lb`.
  - `shipper` object — The shipper the quote is created on behalf of.
    - `_id` string — Shipper ID.
  - `full_truckload` boolean, required — Whether the shipment occupies a full truckload. If `false`, `loads` is required.
  - `shipment_type` string, required — Type of shipment, e.g. `shorthaul` or `drayage`.

## Response `200`

Status Code 200: Successful Response - the request was successful!

- QuoteResponse
  - `success` boolean
  - `quote` object
    - `full_truckload` boolean
    - `shipment_type` string
    - `weight` integer
    - `distance` integer
    - `courier` boolean
    - `created_at` string, date-time
    - `total_cost` string
    - `origin` object
      - `address` string
      - `coords` number[]
      - `name` string
    - `destination` object
      - `address` string
      - `coords` number[]
      - `name` string
    - `loads` object[]
      - `type` string
      - `dimensional_units` string
      - `quantity` integer
      - `width` integer
      - `height` integer
      - `length` integer
      - `weight` integer
      - `spaces` integer
      - `weight_units` string
      - `_id` string
    - `quote_id` string
    - `expiration_date` string, date-time
    - `receivables` object[]
      - `message` string
      - `value` integer
      - `timestamp` string, date-time
    - `shipper` string

## Other responses

- `400` — Status Code 400: Bad Request Response - the request header and/or body is invalid
- `500` — Status Code 500: Internal Server Error Response - there's a problem with the Public API service

---

[API](https://skmtc.dev/cargomatic/apis/cargomatic-public-api.md) · [All operations](https://skmtc.dev/cargomatic/apis/cargomatic-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cargomatic/cargomatic-public-api/revisions/f9a170e1fd72/schema)
