Skip to content

Retrieve Shipping Rates

GET
/shipping/rates/{allocation_id}

Fetch shipping rates for one allocation, built from its allocation package. Query parameters not listed here are ignored, except keys under extra[...], which Veeqo passes to the carrier quote; extra[liability_amount] is the one documented here.

allocation_id
required
number

The ID of the allocation of the order to retrieve shipping rates for.

from_allocation_package
required
boolean

Must be set to true. Specifies whether to use dimensions from the already existing allocation package.

format_with_unavailable_rates
boolean

Whether to include unavailable rates in the response. Defaults to false.

shipping_configuration_ids[]
Array<integer>

Linked carrier account ids to quote. Rates are returned for every available carrier, using one account per carrier type: the id given here for that type, otherwise the allocation’s preferred account, the shipping-rule recommendation, the carrier’s default account, or the oldest account, in that order. At most one id per carrier type is used. Unknown ids are ignored.

extra[liability_amount]
string

The amount to insure (declared value), as a decimal string such as 200.00. The rates come back priced with that cover: a rate with a liability_amount entry in its shipping_service_options includes the cover in its total_net_charge and lists it in charges[] as charge_id DECLARED_VALUE (charge_title “Insurance”); its own liability_amount field stays null. On some directly connected carrier accounts (UPS), a rate is priced with the cover without listing that entry and returns the amount in its own liability_amount field. Any other rate comes back at its uninsured price, and a service can drop out of an insured quote. Each amount is its own quote, and the cost of cover is not always proportional to the amount, so read the rates once for each amount. Buy a rate from the quote made with that amount, and send the same amount as shipment.liability_amount.

Successful response with shipping rates.

A list of shipping rates available and unavailable for the specified allocation.

object
available

List of available shipping rates.

Array<shipping_rate>
object
carrier
string
amazon_shipping_v2
service_carrier

The service carrier for the shipping rate.

string
ups
service_id

Internal ID for the shipping rate.

string
UPS_PTP_3DAY_SELECT
remote_shipment_id

The carrier’s identifier for this quote request, shared by every rate in the response. Required as shipment.remote_shipment_id when purchasing a rate.

string
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92
name

Unique identifier for this specific rate. Starts with amazon_shipping_v2- followed by a UUID.

string
amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36
total_net_charge

The net charge for the shipping rate, as a decimal string with two places. Copy it into shipment.total_net_charge when purchasing this rate.

string
11.80
base_rate

The base cost for the shipping rate, as a decimal string with two places.

string
11.80
currency

The currency in which the shipping rate is denominated.

string format: char
credits

Amount of Veeqo Credits to be earnt if this shipping rate is selected.

number format: float
cutoff

The time after which this shipping rate cannot be purchased.

string format: date-time
expires_at

When the quote expires, ISO 8601. One value is set for all rates a carrier returned for the allocation, from that carrier’s next cutoff; null for carriers whose quotes are not cached. Pass it as shipment.expires_at when purchasing.

string format: date-time
nullable
charges

Breakdown of charges associated with the shipping rate.

Array<charge>
object
charge_id

Name of the charge.

string
charge_title

Human-readable name of the charge.

string
price

Amount of the charge.

string format: currency
charge_type

Either “MANDATORY” or “OPTIONAL”.

string
delivery_promise_date

The estimated delivery date for the shipping rate.

string format: date-time
meets_delivery_promise

Whether this rate’s estimated delivery date meets the order’s due date. null when the order has no due date.

boolean
nullable
protected

Whether this rate is A-to-z/SAFE-T claims protected.

boolean
protections

List of protections this rate provides.

array
[
"CLAIMS_PROTECTED",
"OTDR_PROTECTED"
]
shipping_service_options

Additional options available for the shipping service, such as signature confirmation. Each entry has a key, a type, and (for select types) a values array of valid values. When purchasing this rate via POST /shipping/shipments, echo each applicable entry back as a property of shipment using its key and a value from its values array. A number entry such as liability_amount takes a number instead. The liability_amount entry means the rate can be insured: its validation.max, where the entry gives one, is the most that can be declared, in unit (an ISO currency code, while the rate’s currency is a symbol). The bounds differ by carrier and service, so read them from each rate; the 100 and 50000 in the example are illustrative. 0 means no added cover, and Veeqo’s web app does not enforce validation.min.

array
unavailable

List of unavailable shipping rates. If format_with_unavailable_rates is set to false, this array will be empty.

Array<unavailable_shipping_rate>
object
remote_shipment_id

The carrier’s identifier for this quote request, shared by every rate in the response.

string
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92
title

Full title of the shipping rate.

string
sub_carrier_id

The sub-carrier ID for the shipping rate.

string
service_carrier

The service carrier for the shipping rate.

string
unavailable_reasons

Reasons why the shipping rate is unavailable.

Array<object>

A reason why the shipping rate is unavailable.

object
message

The reason for unavailability.

string
It is not an eligible ship method for this order.
linked_accounts

The carrier accounts these rates were quoted from, one per carrier type. Accounts not used for this request are not listed.

Array<object>
object
shipping_configuration_id

The id of the linked carrier account.

integer format: int64
carrier

The account’s provider type, for example amazon_shipping_v2__UPS.

string
amazon_shipping_v2__FEDEX
Example
{
"available": [
{
"carrier": "amazon_shipping_v2",
"name": "amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36",
"title": "UPS 3 Day Select®",
"short_title": "UPS 3 Day Select®",
"title_with_price": "UPS 3 Day Select® - $11.80",
"total_net_charge": "11.80",
"total_gross_charge": "11.80",
"base_rate": "11.80",
"charges": [
{
"price": "$11.80",
"charge_id": "BASE_RATE",
"charge_title": "Base Rate",
"charge_type": "MANDATORY"
},
{
"price": "$5.90",
"charge_id": "SIGNATURE_CONFIRMATION",
"charge_title": "Signature confirmation",
"charge_type": "OPTIONAL"
},
{
"price": "$7.10",
"charge_id": "ADULT_SIGNATURE_CONFIRMATION",
"charge_title": "Adult signature confirmation",
"charge_type": "OPTIONAL"
}
],
"currency": "$",
"weight": "1550.9999986993",
"remote_shipment_id": "123abcde-5f41-4d82-9b06-3c7e8a1d5f40",
"cutoff": "2025-06-10T22:00:00+01:00",
"mailpiece_shapes": null,
"liability_amount": null,
"expected_delivery_days": 4,
"sub_carrier_id": "UPS",
"service_carrier": "ups",
"shipping_service_options": [
{
"key": "value_added_service__VAS_GROUP_ID_CONFIRMATION",
"label": "Confirmation",
"type": "select",
"multiple": false,
"values": [
{
"value": "NO_CONFIRMATION",
"label": "No confirmation",
"price": 0,
"currency": "USD"
},
{
"value": "SIGNATURE_CONFIRMATION",
"label": "Signature confirmation",
"price": 5.9,
"currency": "USD"
},
{
"value": "ADULT_SIGNATURE_CONFIRMATION",
"label": "Adult signature confirmation",
"price": 7.1,
"currency": "USD"
}
],
"validation": null,
"unit": null,
"default": null
},
{
"key": "liability_amount",
"label": "Insurance",
"type": "number",
"multiple": false,
"values": [],
"validation": {
"min": 100,
"max": 50000
},
"unit": "USD",
"default": null
},
{
"key": "try_inbound_label",
"label": "Create Return Label",
"type": "boolean",
"multiple": false,
"values": [],
"validation": null,
"unit": null,
"default": null
}
],
"warnings": [],
"hidden": false,
"other": {},
"pickup_window": {
"end": null,
"start": null
},
"own_account": false,
"expires_at": "2025-06-10T21:59:59.332Z",
"delivery_promise_date": "2025-06-14T07:59:59+01:00",
"meets_delivery_promise": null,
"protected": null,
"protections": null,
"additional_content": null,
"credits": 0.059,
"service_id": "UPS_PTP_3DAY_SELECT",
"document_specification": {
"doc_spec": {
"format": "PNG",
"printOptions": [
{
"supportedDPIs": [],
"supportedDocumentDetails": [
{
"isMandatory": true,
"name": "LABEL"
}
],
"supportedFileJoiningOptions": [
true
],
"supportedPageLayouts": [
"LEFT"
]
}
],
"size": {
"length": 6,
"unit": "INCH",
"width": 4
}
}
}
}
],
"unavailable": [
{
"remote_shipment_id": "35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92",
"title": "UPS Next Day Air®",
"sub_carrier_id": "UPS",
"service_carrier": "ups",
"unavailable_reasons": [
{
"message": "It is not an eligible ship method for this order."
}
]
}
],
"linked_accounts": [
{
"shipping_configuration_id": 123456,
"carrier": "amazon_shipping_v2__UPS"
}
]
}

Returned when the allocation cannot be shipped (body is only error_messages, a string), or when any carrier failed to return rates (error_messages is an array, one entry per failure). In the carrier case the body has the same shape as a 200: if your account has more than one carrier, available can still hold quotes from the carriers that succeeded.

Error response. When the allocation cannot be shipped it holds only error_messages (a string). When any carrier failed to return rates it has the same shape as a 200 plus error_messages (an array, one entry per failure); if your account has more than one carrier, available can still hold quotes from the carriers that succeeded.

object
available

List of available shipping rates.

Array<object>
object
carrier
string
amazon_shipping_v2
service_carrier

The service carrier for the shipping rate.

string
ups
service_id

Internal ID for the shipping rate.

string
UPS_PTP_3DAY_SELECT
remote_shipment_id

The carrier’s identifier for this quote request, shared by every rate in the response. Required as shipment.remote_shipment_id when purchasing a rate.

string
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92
name

Unique identifier for this specific rate. Starts with amazon_shipping_v2- followed by a UUID.

string
amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36
total_net_charge

The net charge for the shipping rate, as a decimal string with two places. Copy it into shipment.total_net_charge when purchasing this rate.

string
11.80
base_rate

The base cost for the shipping rate, as a decimal string with two places.

string
11.80
currency

The currency in which the shipping rate is denominated.

string format: char
credits

Amount of Veeqo Credits to be earnt if this shipping rate is selected.

number format: float
cutoff

The time after which this shipping rate cannot be purchased.

string format: date-time
expires_at

When the quote expires, ISO 8601. One value is set for all rates a carrier returned for the allocation, from that carrier’s next cutoff; null for carriers whose quotes are not cached. Pass it as shipment.expires_at when purchasing.

string format: date-time
nullable
charges

Breakdown of charges associated with the shipping rate.

Array<object>
object
charge_id

Name of the charge.

string
charge_title

Human-readable name of the charge.

string
price

Amount of the charge.

string format: currency
charge_type

Either “MANDATORY” or “OPTIONAL”.

string
delivery_promise_date

The estimated delivery date for the shipping rate.

string format: date-time
meets_delivery_promise

Whether this rate’s estimated delivery date meets the order’s due date. null when the order has no due date.

boolean
nullable
protected

Whether this rate is A-to-z/SAFE-T claims protected.

boolean
protections

List of protections this rate provides.

Array<string>
[
"CLAIMS_PROTECTED",
"OTDR_PROTECTED"
]
shipping_service_options

Additional options available for the shipping service, such as signature confirmation.

Array<object>
object
unavailable

List of unavailable shipping rates. If format_with_unavailable_rates is set to false, this array will be empty.

Array<object>
object
remote_shipment_id

The carrier’s identifier for this quote request, shared by every rate in the response.

string
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92
title

Full title of the shipping rate.

string
sub_carrier_id

The sub-carrier ID for the shipping rate.

string
service_carrier

The service carrier for the shipping rate.

string
unavailable_reasons

Reasons why the shipping rate is unavailable.

Array<object>

A reason why the shipping rate is unavailable.

object
message

The reason for unavailability.

string
It is not an eligible ship method for this order.
linked_accounts

The carrier accounts these rates were quoted from, one per carrier type. Accounts not used for this request are not listed.

Array<object>
object
shipping_configuration_id

The id of the linked carrier account.

integer format: int64
carrier

The account’s provider type, for example amazon_shipping_v2__UPS.

string
amazon_shipping_v2__FEDEX
hazmat

Whether the allocation contains hazardous materials.

boolean
error_messages
One of:
Array<string>
Examples

All carriers failed to return a rate

{
"available": [],
"unavailable": [],
"linked_accounts": [],
"hazmat": false,
"error_messages": [
"{\"message\":\"Validation error\",\"errors\":[{\"resource\":\"parcel\",\"field\":\"weight\",\"message\":\"Weight attribute should be greater than zero\",\"code\":\"parcel.weight_invalid\"}]}"
]
}

Allocation ID is incorrect. Ensure you are passing an allocation ID, not an order ID.

Internal server error. This could be the result of not including from_allocation_package=true in the request.