Request a rate quote
This endpoint is implemented by the rate provider and called by Augment. Every other endpoint in this reference operates in the opposite direction, so the distinction warrants emphasis: Augment acts as the HTTP client, and cannot retrieve quotes until the endpoint is available on the provider side. The path and base URL shown above are placeholders for the values the provider assigns.
Each request describes a single shipment and expects the rates that apply to it. mode, rateType, two stops carrying a city and a state, and equipment.equipmentType are always present. The remaining fields are included when Augment holds a value and omitted when it does not, so an omitted optional field should be read as unknown rather than as a default. An omitted isHazmat, for example, does not indicate that the freight is non-hazardous.
dimensions is optional, but Augment includes it whenever a value is available, so that the rate provider rather than Augment determines whether a shipment is legal or oversize. Where oversize freight falls outside the scope of an initial build, dimensions may be disregarded and the field reserved for later use.
Where a shipment cannot be priced, the response must be 200 with an empty rates array and a populated noRateReason. This condition must not be reported with an error status: an error prevents Augment from distinguishing between "no rate exists" and "the endpoint is unavailable", and the two require opposite handling. 4xx and 5xx responses are reserved for malformed requests, authentication failures, and genuine faults.
One request is sent per rep. When a customer email reaches several of your reps, Augment sends one request for each, with its own augmentQuoteId and that rep as QUOTE_OWNER. Create one quote per request and do not merge them.
A request that repeats an augmentQuoteId already sent is an update to that quote, not a new quote. Augment resends it when the customer replies on the same thread with changes. Treat the call as idempotent: apply the latest values and return the same externalId.
Body·
One shipment to be priced. mode, rateType, stops, equipment and augmentQuoteId are always sent. The rest is sent when Augment has it, so treat a missing field as unknown rather than as a default.
- Type: stringaugment
Quote Id requiredAugment's id for this quote. Echo it back unchanged. Treat it as an opaque string.
- Type: objectequipmentrequiredProperties: 1
Equipment needed to move the shipment
- enummoderequired
Transportation mode. Same values as
Load.mode.valuesDRAYAGEEXPEDITEFTLLTLPARTIAL - enumrate
Type requiredThe commercial basis of the rate being asked for. Same values as
Load.rateType.valuesCONTRACTDEDICATEDPROJECTSPOT - Type: 2…stopsrequiredProperties: 3
The route in sequence. One
PICKUPand oneDELIVERYis the floor and is enough to return a rate.This is an array rather than an origin and destination pair so a third or later stop is visible in the request. You cannot charge a stop-off fee against a lane that doesn't show the stop.
- Type:accessorials
Accessorial codes Augment already knows the shipment needs, such as
TARPSorTWIC. Advisory only. You return the priced accessorials on each rate and are not limited to what's listed here. - Type: string | nullcommodity
Free-text description of the freight
- Type:contactsProperties: 3
People on the quote. Exactly one
QUOTE_OWNERis always sent: the rep whose mailbox received the request.QUOTE_REQUESTERis the customer contact who asked, when known. - Type: object | nullcustom
Data Properties: 1Additional fields Augment can reliably parse from the email, agreed with each provider during setup, such as a customer-specific code. Keys and values are defined per provider. Ignore any key you do not use.
- Type: string | nullcustomer
Name The shipper the quote is for, when a customer rate applies
- Type: object | nulldimensionsProperties: 3
Overall shipment dimensions in whole inches. Legal width runs to roughly 12 feet; wider than that generally needs escorts.
- Type:emailProperties: 9
The email that triggered this quote. When one thread carries several quote requests, this is the message that produced this quote, not the first message in the thread.
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://rates.example.com/v1/rates/quote \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic username:password' \
--data '{
"mode": "FTL",
"rateType": "SPOT",
"stops": [
{
"sequence": 1,
"stopActivity": "PICKUP",
"address": {
"city": "Houston",
"stateOrProvince": "TX",
"postalCode": "77002",
"country": "US"
}
},
{
"sequence": 2,
"stopActivity": "DELIVERY",
"address": {
"city": "Avon",
"stateOrProvince": "IN",
"postalCode": null,
"country": "US"
}
}
],
"equipment": {
"equipmentType": "FLATBED"
},
"weight": {
"value": 44000,
"unit": "LB"
},
"dimensions": {
"lengthInches": 636,
"widthInches": 126,
"heightInches": 102
},
"commodity": "Steel coil",
"pickupDate": "2026-09-03",
"totalMiles": 1015,
"tarpSize": "8 foot",
"isHazmat": false,
"hazmatUnNumber": null,
"accessorials": [
"TARPS"
],
"customerName": "PALRAM Americas",
"numberTruckloads": 1,
"referenceNumbers": [
{
"name": "TENDER_NUMBER",
"value": "0507150210"
}
],
"contacts": [
{
"role": "QUOTE_OWNER",
"email": "rep@provider.example.com"
},
{
"role": "QUOTE_REQUESTER",
"name": "Jane Shipper"
}
],
"email": {
"direction": "INBOUND",
"messageId": "<abc123@mail.shipper.example.com>",
"sentAt": "2026-09-02T14:05:00Z",
"subject": "Spot quote request Houston, TX to Avon, IN",
"participants": {
"from": {
"name": "Jane Shipper",
"address": "jane@shipper.example.com"
},
"to": [
{
"address": "rep@provider.example.com"
}
],
"cc": []
},
"body": "Can you quote a flatbed of steel coil, Houston TX to Avon IN, 44,000 lbs, pick up 9/3?",
"summary": "Spot quote, flatbed steel coil, Houston TX to Avon IN, 44,000 lbs, pickup 9/3",
"classification": "QUOTE_REQUEST",
"attachmentCount": 0
},
"customData": {},
"augmentQuoteId": "01kzry3mzq8f4h2n7v9x1c3b5d"
}'
{
"augmentQuoteId": "01kzry3mzq8f4h2n7v9x1c3b5d",
"externalId": "Q-448120",
"quotedAt": "2026-08-27T14:22:10Z",
"currency": "USD",
"totalMiles": 1015,
"rates": [
{
"source": "ATS_SPECIALIZED",
"linehaul": 4800,
"fuelSurcharge": 1000,
"fuelSurchargePct": 20.8,
"allInTotal": 5800,
"costPerMile": 4.73,
"marginPct": 17,
"accessorials": [
{
"code": "PERMITS",
"label": "Permit charges",
"amount": 4.18,
"basis": "FLAT"
},
{
"code": "OVERSIZE",
"label": "OD over 10 feet",
"amount": 0.45,
"basis": "PER_MILE"
},
{
"code": "STOP_OFF_CHARGE",
"label": "Stop-off fee",
"amount": 150,
"basis": "PER_STOP"
}
]
},
{
"source": "DAT",
"linehaul": 4550,
"fuelSurcharge": 980,
"fuelSurchargePct": null,
"allInTotal": 5530,
"costPerMile": 4.48,
"marginPct": null,
"accessorials": []
}
],
"noRateReason": null,
"noRateDetail": null
}