Creating Quotes

Get pricing estimates for vehicle transport before creating an order.

Prerequisites: The authenticated user must be associated with a customer (have the customer role). The customer is automatically determined from your API token — no customer ID is needed in the request body. See Creating Customers.

Endpoint

POST /api/customer/quote

Required Fields

Field Type Notes
origin.statestringRequired.
origin.postal_codestringRequired. Numeric.
origin.citystringOptional.
destination.statestringRequired.
destination.postal_codestringRequired. Numeric.
destination.citystringOptional.
location_typestringOptional.
vehiclesarrayRequired. At least one vehicle. Maximum of 36 vehicles per quote.
vehicles.*.vinstringRequired.
vehicles.*.yearstringRequired with make and model.
vehicles.*.makestringRequired with year and model.
vehicles.*.modelstringRequired with year and make.
vehicles.*.typestringRequired with year/make/model. Enum: car, motorcycle, van, suv, truck, oversized, other.
vehicles.*.inoperablebooleanRequired.

Example

POST /api/customer/quote
Content-Type: application/json
Authorization: Bearer your-api-token

{
  "origin": {
    "state": "GA",
    "postal_code": "30301"
  },
  "destination": {
    "state": "FL",
    "postal_code": "33101"
  },
  "vehicles": [
    {
      "vin": "1HGBH41JXMN109186",
      "year": "2024",
      "make": "Honda",
      "model": "Accord",
      "type": "car",
      "inoperable": false
    }
  ]
}

Response (200 OK)

VIN is accepted in the request and used to decode vehicle details, but is not included in the response. Retain the VIN from your request if you need it when creating an order.

{
  "status": true,
  "status_code": 200,
  "data": {
    "id": "q7k3m9x2n4p1q",
    "status": "active",
    "expires_at": "2026-04-11T12:00:00+00:00",
    "origin": { "city": "Atlanta", "state": "GA", "postal_code": "30301" },
    "destination": { "city": "Miami", "state": "FL", "postal_code": "33101" },
    "distance": 662.5,
    "vehicles": [
      {
        "id": "v1a2b3nanoid",
        "quote_id": "q7k3m9x2n4p1q",
        "year": 2024,
        "make": "Honda",
        "model": "Accord",
        "type": "car",
        "inoperable": false,
        "quoted_price": 595.00
      }
    ],
    "price_options": [
      { "type": "economy", "delivery_time": "7 business days", "price": 595.00, "delivery_eta": "04/22/26" },
      { "type": "expedited", "delivery_time": "4 business days", "price": 745.00, "delivery_eta": "04/17/26" },
      { "type": "enclosed", "delivery_time": "5 business days", "price": 895.00, "delivery_eta": "04/20/26" }
    ],
    "checkout_url": "https://...",
    "email_url": "https://..."
  }
}
Quote Expiration: Quotes are valid for 30 days from creation. When quote expiration is enabled for your environment, the status and expires_at fields are included in quote responses. After expiration, status becomes expired and the quote can no longer be used to create an order.

Retrieving a Quote

GET /api/customer/quote/{quote_id}

Use the id (nano_id) from the creation response.

Next Steps