Get a Quote
Using Curri's quoting operations, you can ask us how much it will cost to deliver something from one place to another.
However, just getting a quote doesn't mean you have booked the delivery. The booking price might be slightly different than the quoted price. Usually, the difference is small.
The DeliveryQuote Object
DeliveryQuote is type that provides information about a requested quote, such as accessorial fees, delivery method, destination, distance, duration, fee, fee comparison, origin, priority, and toll fees.
Every query below returns a DeliveryQuote.
Response Fields
| Field | Type | Description |
|---|---|---|
| accessorialFees | DeliveryAccessorialFees | The accessorial fees quoted from the delivery's requirements. Not included in fee. |
| deliveryMethod | String | The delivery method. |
| deliveryMethodDisplayName | String | The display name of the delivery method. |
| destination | Address | The destination of the delivery. |
| distance | Integer | The distance of the delivery. See Units. |
| duration | Integer | The duration of the delivery. See Units. |
| fee | Integer | The delivery fee only — accessorial fees and toll fees are not included. See Units. |
| feeComparison | FeeComparison | A object containing information about fee comparison. |
| id | IDCustomScalar | The unique identifier of the delivery quote. |
| origin | Address | The origin of the delivery. |
| priority | String | The priority of the delivery. |
| tollFees | Integer | The estimated toll fees for the delivery. Not included in fee. See Units. |
fee is the delivery fee onlyfee (and each feeComparison amount) covers the delivery itself — it does not include accessorial fees or toll fees. Query accessorialFees and tollFees alongside fee to see the full quoted cost.
Every fee object inside accessorialFees is returned on every quote. When the matching requirement was not sent, its totalAccessorialFee is 0 — check the amount, not the presence of the field.
Example DeliveryQuote
{
"data": {
"deliveryQuote": {
"id": "quote_123DQ1",
"fee": 1000,
"feeComparison": {
"rush": 1200,
"sameday": 1000,
"scheduled": 800
},
"deliveryMethod": "cargo-van",
"deliveryMethodDisplayName": "Cargo Van",
"origin": {
"addressLine1": "123 Main St",
"addressLine2": "",
"city": "New York",
"latitude": "40.712776",
"longitude": "-74.005974",
"name": "Start Point",
"postalCode": "10001",
"state": "NY"
},
"destination": {
"addressLine1": "456 Broadway",
"addressLine2": "",
"city": "New York",
"latitude": "40.712776",
"longitude": "-74.005974",
"name": "End Point",
"postalCode": "10002",
"state": "NY"
},
"distance": 5000,
"duration": 1800,
"priority": "sameday",
"accessorialFees": {
"loadUnloadFee": {
"totalAccessorialFee": 1200,
"totalWeight": 60
},
"debrisRemovalFee": {
"totalAccessorialFee": 500
},
"overnightHoldFee": {
"totalAccessorialFee": 0
}
},
"tollFees": 250
}
}
}
Individual Quotes - deliveryQuote
Provides an individual DeliveryQuote given the following set of query parameters:
Required Input Parameters
| Parameter | Type | Description |
|---|---|---|
| deliveryMethod | String | The delivery method to use for the delivery. |
| destination | AddressInput | An object containing the address information for the delivery destination. |
| manifestItems | ManifestItemInput | An array of objects containing information about the items to be delivered. |
| origin | AddressInput | An object containing the address information for the delivery origin. |
| priority | String | The priority level of the delivery. |
Optional Input Parameters
| Parameter | Type | Description |
|---|---|---|
| accountId | IDCustomScalar | The ID of the Team Account to associate with the delivery quote. See below. |
| accountLocation | String | The custom location value (configurable) of the Team Account to associate with the delivery quote. |
| customerData | JSONObject | Information for your reference only. See below. |
| requirements | RequirementsInput | An object containing any additional requirements for the delivery. |
Team Account ID or Location
When you want to get a quote for a delivery, you can choose to specify which team account you want it for. If you don't specify a team account, it will use the default one for your user. Most people don't need to worry about this.
Customer Data
Information that's for your reference only should be stored inside of the customerData object. We do not read from this field and it is not queryable. Common uses for this are order numbers, internal identifiers, or tracking references.
customerData sent on a quote is not carried over to a booking — send it again on bookDelivery's deliveryMeta if you want it on the delivery too.
Example Query
query {
deliveryQuote(
accountId: "acct_def456"
origin: {
addressLine1: "123 Main St"
city: "New York"
state: "NY"
postalCode: "10001"
}
destination: {
addressLine1: "456 Main St"
city: "Los Angeles"
state: "CA"
postalCode: "90001"
}
deliveryMethod: "truck-with-pipe-rack"
manifestItems: [
{
description: "Chair"
height: 40
length: 100
weight: 10
width: 100
quantity: 2
}
{
description: "Table"
height: 100
length: 200
weight: 50
width: 200
quantity: 1
}
]
priority: "rush"
requirements: { loadUnloadRequired: true }
customerData: { orderNumber: "SO-4417", warehouseCode: "WH-12" }
) {
accessorialFees {
loadUnloadFee {
totalAccessorialFee
totalWeight
}
debrisRemovalFee {
totalAccessorialFee
}
overnightHoldFee {
totalAccessorialFee
}
}
deliveryMethod
deliveryMethodDisplayName
distance
duration
fee
feeComparison {
rush
sameday
scheduled
}
id
priority
tollFees
}
}
Multiple Quotes - deliveryQuotes
Provides a list of DeliveryQuotes for multiple delivery methods given the following set of input parameters:
Required Input Parameters
| Parameter | Type | Description |
|---|---|---|
| destination | AddressInput! | The destination address for the delivery. Should be provided as an AddressInput type. |
| manifestItems | [ManifestItemInput!] | A list of manifest items to be delivered. Each item should be provided as a ManifestItemInput type. |
| origin | AddressInput! | The origin address for the delivery. Should be provided as an AddressInput type. |
| priority | String | The priority level for the delivery. If not provided, the default priority level will be used. |
Optional Input Parameters
| Parameter | Type | Description |
|---|---|---|
| accountId | IDCustomScalar | The ID of the Team Account to associate with the delivery quote. See above. |
| accountLocation | String | The custom location value (configurable) of the Team Account to associate with the delivery quote. |
| customerData | JSONObject | Information for your reference only. See above. |
| deliveryMethods | [String] | A list of delivery methods that you want to get quotes for. Providing no delivery methods will return quotes for all potential delivery methods. |
| requirements | RequirementsInput | Any additional requirements for the delivery. Should be provided as a RequirementsInput type. |
Example Query
query {
deliveryQuotes(
data: {
accountId: "acct_123456"
origin: {
addressLine1: "456 Main St"
city: "Los Angeles"
state: "CA"
postalCode: "90001"
}
destination: {
addressLine1: "123 Main St"
city: "New York"
state: "NY"
postalCode: "10001"
}
deliveryMethods: ["car", "suv"]
priority: "sameday"
customerData: { orderNumber: "SO-4417", warehouseCode: "WH-12" }
}
manifestItems: [
{ description: "Package 1", weight: 2 }
{ description: "Package 2", weight: 3 }
]
requirements: { loadUnloadRequired: true }
) {
id
fee
distance
duration
deliveryMethod
}
}
Example Response
{
"data": {
"deliveryQuotes": [
{
"id": "quote_B34GCPGNX3",
"fee": 1219,
"distance": 913,
"duration": 168,
"deliveryMethod": "car"
},
{
"id": "quote_QYE328ANHN",
"fee": 2444,
"distance": 913,
"duration": 176,
"deliveryMethod": "suv"
}
]
}
}