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.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The ID of the allocation of the order to retrieve shipping rates for.
Query Parameters
Section titled “Query Parameters ”Must be set to true. Specifies whether to use dimensions from the already existing allocation package.
Whether to include unavailable rates in the response. Defaults to false.
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.
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.
Responses
Section titled “ Responses ”Successful response with shipping rates.
A list of shipping rates available and unavailable for the specified allocation.
object
List of available shipping rates.
object
amazon_shipping_v2The service carrier for the shipping rate.
upsInternal ID for the shipping rate.
UPS_PTP_3DAY_SELECTThe carrier’s identifier for this quote request, shared by every rate in the response. Required as shipment.remote_shipment_id when purchasing a rate.
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92Unique identifier for this specific rate. Starts with amazon_shipping_v2- followed by a UUID.
amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36The net charge for the shipping rate, as a decimal string with two places. Copy it into shipment.total_net_charge when purchasing this rate.
11.80The base cost for the shipping rate, as a decimal string with two places.
11.80The currency in which the shipping rate is denominated.
Amount of Veeqo Credits to be earnt if this shipping rate is selected.
The time after which this shipping rate cannot be purchased.
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.
Breakdown of charges associated with the shipping rate.
object
Name of the charge.
Human-readable name of the charge.
Amount of the charge.
Either “MANDATORY” or “OPTIONAL”.
The estimated delivery date for the shipping rate.
Whether this rate’s estimated delivery date meets the order’s due date. null when the order has no due date.
Whether this rate is A-to-z/SAFE-T claims protected.
List of protections this rate provides.
[ "CLAIMS_PROTECTED", "OTDR_PROTECTED"]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.
List of unavailable shipping rates. If format_with_unavailable_rates is set to false, this array will be empty.
object
The carrier’s identifier for this quote request, shared by every rate in the response.
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92Full title of the shipping rate.
The sub-carrier ID for the shipping rate.
The service carrier for the shipping rate.
Reasons why the shipping rate is unavailable.
A reason why the shipping rate is unavailable.
object
The reason for unavailability.
It is not an eligible ship method for this order.The carrier accounts these rates were quoted from, one per carrier type. Accounts not used for this request are not listed.
object
The id of the linked carrier account.
The account’s provider type, for example amazon_shipping_v2__UPS.
amazon_shipping_v2__FEDEXExample
{ "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
List of available shipping rates.
object
amazon_shipping_v2The service carrier for the shipping rate.
upsInternal ID for the shipping rate.
UPS_PTP_3DAY_SELECTThe carrier’s identifier for this quote request, shared by every rate in the response. Required as shipment.remote_shipment_id when purchasing a rate.
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92Unique identifier for this specific rate. Starts with amazon_shipping_v2- followed by a UUID.
amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36The net charge for the shipping rate, as a decimal string with two places. Copy it into shipment.total_net_charge when purchasing this rate.
11.80The base cost for the shipping rate, as a decimal string with two places.
11.80The currency in which the shipping rate is denominated.
Amount of Veeqo Credits to be earnt if this shipping rate is selected.
The time after which this shipping rate cannot be purchased.
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.
Breakdown of charges associated with the shipping rate.
object
Name of the charge.
Human-readable name of the charge.
Amount of the charge.
Either “MANDATORY” or “OPTIONAL”.
The estimated delivery date for the shipping rate.
Whether this rate’s estimated delivery date meets the order’s due date. null when the order has no due date.
Whether this rate is A-to-z/SAFE-T claims protected.
List of protections this rate provides.
[ "CLAIMS_PROTECTED", "OTDR_PROTECTED"]Additional options available for the shipping service, such as signature confirmation.
object
List of unavailable shipping rates. If format_with_unavailable_rates is set to false, this array will be empty.
object
The carrier’s identifier for this quote request, shared by every rate in the response.
35e7b5a4-8c2e-4917-b5d3-7a0f1e6c4b92Full title of the shipping rate.
The sub-carrier ID for the shipping rate.
The service carrier for the shipping rate.
Reasons why the shipping rate is unavailable.
A reason why the shipping rate is unavailable.
object
The reason for unavailability.
It is not an eligible ship method for this order.The carrier accounts these rates were quoted from, one per carrier type. Accounts not used for this request are not listed.
object
The id of the linked carrier account.
The account’s provider type, for example amazon_shipping_v2__UPS.
amazon_shipping_v2__FEDEXWhether the allocation contains hazardous materials.
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\"}]}" ]}One carrier failed, another returned rates
{ "available": [ { "carrier": "amazon_shipping_v2", "name": "amazon_shipping_v2-2295c3aa-af8c-48a0-9f19-cd84d53cbd36", "title": "UPS 3 Day Select®", "total_net_charge": "11.80", "base_rate": "11.80", "currency": "$", "remote_shipment_id": "123abcde-5f41-4d82-9b06-3c7e8a1d5f40", "sub_carrier_id": "UPS", "service_carrier": "ups", "expires_at": "2025-06-10T21:59:59.332Z" } ], "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 is not in a shippable state
{ "error_messages": "This allocation is already shipped"}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.