Get drayage rates
Price moving a container by truck (drayage) between a port or rail ramp and an inland address, from the carriers' drayage contracts.
Every contract in its validity window today whose lane and container size match is priced: the base rate, each extra charge (accessorial), and the total. A lane matches on country and city always; on state when both the request and the contract have one; and, if you send a ZIP, only on that exact ZIP. Use GET /drayage/locations to find the city, state code and ZIP to send.
origin and destination are JSON objects in the query string (URL-encode them), e.g. origin={"city":"Los Angeles","state":"CA","country":"US"}.
Rates come cheapest total first. Page with limit (at most 100) and offset; total is the number of matches across every page. No matching contract is not an error: items is empty.
API key scope required: rates:read.
Query Parameters
- Type: stringoriginrequired
Where the move starts, as a JSON object:
cityandcountry(two-letter code) are required;state(a code such as CA, not the full name) andzipare optional. A port city for an import, or the inland address for an export. - Type: stringdestinationrequired
Where the move ends, as a JSON object, the same shape as origin.
- Type: stringcontainer
_size requiredThe container size in feet, e.g. 20, 40, 40HC (high cube), 45 or 53. Punctuation is ignored, so 40HC matches a contract's 40'HC.
- Type: integerlimitgreater than:0max:100
How many rates to return, 1 to 100.
- Type: integeroffsetmin:0
How many rates to skip, for the next page.
Responses
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl 'https://api-dev.highqube.ai/drayage/rates?origin=%7B%22city%22%3A%22Los%20Angeles%22%2C%22state%22%3A%22CA%22%2C%22country%22%3A%22US%22%7D&destination=%7B%22city%22%3A%22Ontario%22%2C%22state%22%3A%22CA%22%2C%22country%22%3A%22US%22%7D&container_size=40HC&limit=25&offset=0' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'
The fuel surcharge is a percentage and counts in the total. Chassis and waiting time are billed on actual use, so they are listed with included_in_total: false.
{
"success": true,
"message": "Drayage rates fetched successfully",
"data": {
"origin": {
"city": "Los Angeles",
"state": "CA",
"country": "US",
"zip": null
},
"destination": {
"city": "Ontario",
"state": "CA",
"country": "US",
"zip": null
},
"container_size": "40HC",
"items": [
{
"contract_id": 1,
"carrier": "Midway Container Transport",
"contract_name": "MCT 2026-27 Port and Rail Drayage",
"location_id": 7,
"rate_id": 23,
"container_size": "40'HC",
"container_type": "Dry",
"origin": {
"city": "Los Angeles",
"state": "CA",
"country": "US",
"zip": null
},
"destination": {
"city": "Ontario",
"state": "CA",
"country": "US",
"zip": "91761"
},
"charges": {
"base_charge": "575.00",
"currency": "USD",
"accessorial_charges": [
{
"surcharge_code": "FSC",
"description": "Fuel surcharge, a percentage of the line-haul rate",
"rate": "28.5000",
"rate_basis": "PERCENTAGE",
"currency": "USD",
"units_free": 0,
"min_charge": null,
"max_charge": null,
"amount": "163.88",
"included_in_total": true,
"note": null
},
{
"surcharge_code": "CHS",
"description": "Chassis, per day of use (2-day minimum)",
"rate": "40.0000",
"rate_basis": "PER_DAY",
"currency": "USD",
"units_free": 0,
"min_charge": "80.00",
"max_charge": null,
"amount": null,
"included_in_total": false,
"note": "Billed per day of actual usage; not included in this quote's total since usage is unknown at quote time."
},
{
"surcharge_code": "WTG",
"description": "Waiting time at the terminal or the door, after 2 free hours",
"rate": "85.0000",
"rate_basis": "PER_HOUR",
"currency": "USD",
"units_free": 2,
"min_charge": null,
"max_charge": null,
"amount": null,
"included_in_total": false,
"note": "Billed per hour of actual usage; not included in this quote's total since usage is unknown at quote time."
},
{
"surcharge_code": "STG",
"description": "Storage at our yard, after 1 free day",
"rate": "55.0000",
"rate_basis": "PER_DAY",
"currency": "USD",
"units_free": 1,
"min_charge": null,
"max_charge": null,
"amount": null,
"included_in_total": false,
"note": "Billed per day of actual usage; not included in this quote's total since usage is unknown at quote time."
}
],
"total": "738.88"
}
}
],
"total": 1,
"pagination": {
"limit": 25,
"offset": 0,
"total_count": 1,
"returned_count": 1,
"order_by": null
}
},
"errors": null,
"meta": null
}
