Skip to content

Get shipping rates

POST
/shipping/api/v1/rates

Retrieve available shipping rates for a shipment without creating an order. Returns shipping rate quotes from configured carriers (currently Amazon Shipping V2) based on shipment details.

International Shipments

For shipments where to_address.country_code differs from from_address.country_code (after US territory normalization):

  • channel_items is required for customs declarations
  • Customs contents are automatically built from channel_items
  • Parcel weight is distributed across items if item weight is not provided
  • country_of_manufacture defaults to normalized from_address country

Amazon Orders

For is_amazon_order: true:

  • customer_reference must be the Amazon order number
  • channel_items enables Buy Shipping protections
object
to_address
required
object
address_id

Veeqo Address Service ID

string
letterbox-abc-123
name

Recipient/sender name

string
John Doe
company

Company name

string
Acme Corp
phone

Phone number (auto-formatted to E.164)

string
+12065551234
email

Email address

string format: email
john.doe@example.com
line1

Address line 1

string
123 Main St
line2

Address line 2

string
Apt 4B
town

City/town

string
Seattle
postcode

Postal/ZIP code

string
98101
country_code

ISO 3166-1 alpha-2 country code

string
US
county

State/region/county

string
WA
from_address
required
object
address_id

Veeqo Address Service ID

string
letterbox-abc-123
name

Recipient/sender name

string
John Doe
company

Company name

string
Acme Corp
phone

Phone number (auto-formatted to E.164)

string
+12065551234
email

Email address

string format: email
john.doe@example.com
line1

Address line 1

string
123 Main St
line2

Address line 2

string
Apt 4B
town

City/town

string
Seattle
postcode

Postal/ZIP code

string
98101
country_code

ISO 3166-1 alpha-2 country code

string
US
county

State/region/county

string
WA
parcels
required

Array of parcels (currently only 1 parcel supported)

Array<object>
>= 1 items <= 1 items
object
weight
required

Parcel weight (must be > 0)

number format: double
>= 0.01
1.5
weight_unit
required

Weight unit

string
Allowed values: oz lb g kg
lb
height

Parcel height

number format: double
10
width

Parcel width

number format: double
10
length

Parcel length

number format: double
10
dimension_unit

Dimension unit

string
Allowed values: in cm ft m
in
hazmat

Hazardous materials indicator

boolean
customer_reference

Your reference number for this shipment.

IMPORTANT: For Amazon orders (is_amazon_order: true), this MUST be the Amazon order number (e.g., “112-4737182-6879466”). This is required to enable Buy Shipping protections.

string
112-4737182-6879466
contents

Package contents description

string
Electronics
estimated_value

Shipment value for insurance/customs

string
25.00
currency_code

ISO 4217 currency code

string
USD
customer_type

Customer type

string
default: consumer
Allowed values: consumer business
is_amazon_order

Set to true for Amazon orders to enable protections

boolean
seller_display_name

Your store/seller name to display on shipping labels

string
My Store Name
preferred_shipment_date

ISO 8601 datetime

string format: date-time
2025-10-01T12:00:00Z
due_date

ISO 8601 datetime

string format: date-time
2025-10-05T12:00:00Z
liability_amount

Insurance amount

number format: double
100
contents_type

Contents type for customs

string
Merchandise
restriction_type

Restriction type for customs

string
none
country_of_origin

ISO 3166-1 alpha-2 country code for default country of manufacture

string
US
channel_items

Required for international shipments – used for customs declarations. Required for Amazon orders (is_amazon_order: true) – used for Buy Shipping protections.

For Amazon orders:

  • International Amazon shipments: channel_items are required (customs + Buy Shipping).
  • Domestic Amazon shipments: channel_items are required to enable Buy Shipping protections.

When provided, customs information is built from channel_items for international shipments with:

  • description - defaults to contents param or ‘Merchandise’
  • quantity - defaults to 1
  • value - defaults to estimated_value or ‘1.0’
  • weight - defaults to being distributed from parcel weight if not provided
  • country_of_manufacture - defaults to normalized from_address country (US territories → ‘US’)

Note: US military/diplomatic addresses (APO/FPO/DPO) are treated as domestic but still require customs declarations.

Array<object>

Channel item for customs declarations and Amazon Buy Shipping protections.

Required for international shipments – used for customs declarations.

For Amazon orders (is_amazon_order: true):

  • International Amazon shipments: channel_items are required (customs + Buy Shipping).
  • Domestic Amazon shipments: channel_items are required to enable Buy Shipping protections.

When provided, customs contents are built from channel_items for international shipments with:

  • description - defaults to contents param or ‘Merchandise’
  • quantity - defaults to 1
  • value - defaults to estimated_value or ‘1.0’
  • weight - converted to kg, or distributed from parcel weight if not provided
  • country_of_manufacture - defaults to normalized from_address country (US territories → ‘US’)

For Amazon orders: remote_id is required (Amazon line item ID). For non-Amazon international orders: remote_id is optional; items are used for customs only.

Note: US military/diplomatic addresses (APO/FPO/DPO) are treated as domestic but still require customs declarations. Customs data will be built automatically when channel_items are provided.

How to Get the Amazon Line Item ID (remote_id)

The remote_id is the OrderItemId from Amazon’s SP-API. To retrieve it, call the SP-API GetOrderItems endpoint:

GET https://sellingpartnerapi-na.amazon.com/orders/v0/orders/{orderId}/orderItems

The OrderItemId field in each item of the response is what you pass as remote_id.

SP-API FieldRate Shopping API Field
OrderItemIdchannel_items[].remote_id
ASINchannel_items[].asin
QuantityOrderedchannel_items[].quantity
ItemPrice.Amountchannel_items[].value
ItemPrice.CurrencyCodechannel_items[].currency_code

See SP-API Orders reference.

object
remote_id

Amazon line item ID (OrderItemId from SP-API GetOrderItems response). Required for Amazon orders (is_amazon_order: true).

Retrieve this by calling SP-API: GET /orders/v0/orders/{orderId}/orderItems and using the OrderItemId field from each item in the response.

string
148539107022961
quantity

Item quantity. Defaults to 1 if not provided.

integer
default: 1 >= 1
1
value

Item value. Defaults to estimated_value or ‘1.0’ if not provided.

string
25.00
currency_code

ISO 4217 currency code (defaults to request currency_code or company currency)

string
USD
weight

Item weight (total weight for this line item, not per-unit). If not provided, parcel weight is distributed evenly across items. Used with weight_unit to determine the actual weight.

number
0.5
weight_unit

Weight unit for the item weight. Defaults to ‘kg’ if not specified. Supported values include: g, gram, grams, kg, kilogram, kilograms, oz, ounce, ounces, lb, pound, pounds

string
default: kg
kg
description

Item description for customs (max 40 chars, alphanumeric only for international). Defaults to contents param or ‘Merchandise’.

string
<= 40 characters
Laptop Computer
tariff_code

HS/tariff code for customs. May be required for booking international shipments depending on carrier requirements.

string
8471.30.01
country_of_manufacture

ISO 3166-1 alpha-2 country code where item was manufactured. Defaults to normalized from_address country or company country. US territories (PR, GU, VI, etc.) are automatically normalized to ‘US’.

string
CN
hazmat

Whether the item is hazardous material

boolean
asin

Amazon ASIN required for international Amazon Shipments

string
B08N5WRWNW
incoterms

Incoterms for international customs (e.g., ‘DDP’, ‘DAP’)

string
DDP
shipping_configuration_ids

Specific shipping configs to use (only 1 from each sub-carrier)

Array<string>
[
"123"
]
include_unavailable_quotes

Include unavailable quotes in response

boolean
default: true
Examples

Domestic US shipment

{
"to_address": {
"name": "John Smith",
"phone": "+12125551234",
"line1": "350 5th Ave",
"town": "New York",
"postcode": "10118",
"country_code": "US",
"county": "NY"
},
"from_address": {
"name": "Veeqo Fulfillment",
"company": "Veeqo Inc",
"phone": "+12065551234",
"line1": "410 Terry Ave N",
"town": "Seattle",
"postcode": "98109",
"country_code": "US",
"county": "WA"
},
"parcels": [
{
"weight": 1.5,
"weight_unit": "lb",
"height": 10,
"width": 10,
"length": 10,
"dimension_unit": "in"
}
],
"customer_reference": "ORDER-12345"
}

Successful response with shipping quotes

object
quotes
Array<object>
object
carrier

Carrier identifier

string
amazon_shipping_v2
carrier_nice_name

Human-readable carrier name

string
Amazon Shipping
service_name

Service name

string
USPS Ground Advantage (1 - 70 lb)
rate_id

Unique quote identifier for booking

string
amazon_shipping_v2-df3f52c6-643e-4959-b802-f60ca1df42bb
total_charge

Total cost

string
6.41
base_rate

Base shipping rate before optional services

string
6.41
currency_code

Currency code

string
USD
delivery_date

Estimated delivery date

string format: date-time
nullable
own_account

Whether using a linked account

boolean
protected

Whether the rate includes Buy Shipping protections

boolean
protections

Types of protections included

Array<string>
[
"CLAIMS_PROTECTED"
]
charges
Array<object>
object
price

Formatted price with currency symbol

string
$52.50
charge_id

Unique identifier for the charge type

string
BASE_SHIPPING
charge_title

Human-readable charge description

string
Base Shipping Cost
charge_type

Charge type

string
Allowed values: MANDATORY OPTIONAL
shipping_service_options
Array<object>
object
key

Parameter name for booking request

string
value_added_service__VAS_GROUP_ID_CONFIRMATION
title

Human-readable title

string
Signature Confirmation
type

Input type

string
Allowed values: select number text
values

Available values for select type

Array<object>
object
value
string
label
string
validation

Validation rules for number type

object
min
number
max
number
default

Default value

string
nullable
unavailable_quotes

Quotes that are not available (when include_unavailable_quotes=true)

Array<object>
object
carrier

Carrier identifier

string
amazon_shipping_v2
name

Service name

string
AMZ-4PX Global Express Priority-Li
service_carrier

Sub-carrier name

string
nullable
4PX
sub_carrier_id

Sub-carrier identifier

string
4PX
unavailable_reasons

Reasons why this service is not available

Array<object>
object
message

Reason why the service is unavailable

string
Not an eligible ship method for this order. Please check carrier's requirements for this ship method.
remote_shipment_id

Unique shipment identifier

string
prb8a99eb17
request_token

Token for booking the shipment

string
token-abc-123
expires_at

When the quotes expire

string format: date-time
2025-10-02T15:54:49Z
to_address_id

Resolved to_address ID

string
nullable
from_address_id

Resolved from_address ID

string
nullable
Examples

Response with available quotes only

{
"quotes": [
{
"rate_id": "amazon_shipping_v2-8990db9c-931e-4287-a8b7-6659dbfac82a",
"service_name": "UPS Ground Saver",
"carrier_id": "UPS",
"service_carrier": "ups",
"currency": "USD",
"delivery_estimate": "2025-12-14T07:59:59+00:00",
"pickup_window": {
"end": null,
"start": null
},
"charges": [
{
"price": "6.16",
"charge_id": "BASE_RATE",
"charge_title": "Base Rate",
"charge_type": "MANDATORY"
}
],
"total_charge": "6.16",
"base_rate": "6.16",
"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"
}
]
}
],
"credits": 0.308,
"own_account": false,
"protected": true,
"protections": [
"CLAIMS_PROTECTED"
],
"service_id": "UPS_PTP_GROUNDSAVER"
},
{
"rate_id": "amazon_shipping_v2-4ce028f4-681d-4e4f-a905-91f1e493a012",
"service_name": "USPS Ground Advantage (1 - 70 lb)",
"carrier_id": "USPS",
"service_carrier": "usps",
"currency": "USD",
"delivery_estimate": "2025-12-16T07:59:59+00:00",
"pickup_window": {
"end": null,
"start": null
},
"charges": [
{
"price": "6.41",
"charge_id": "BASE_RATE",
"charge_title": "Base Rate",
"charge_type": "MANDATORY"
},
{
"price": "3.95",
"charge_id": "SIGNATURE_CONFIRMATION",
"charge_title": "Signature confirmation",
"charge_type": "OPTIONAL"
}
],
"total_charge": "6.41",
"base_rate": "6.41",
"shipping_service_options": [
{
"key": "value_added_service__VAS_GROUP_ID_CONFIRMATION",
"label": "Confirmation",
"type": "select",
"multiple": false,
"values": [
{
"value": "DELIVERY_CONFIRMATION",
"label": "Delivery confirmation",
"price": 0,
"currency": "USD"
},
{
"value": "SIGNATURE_CONFIRMATION",
"label": "Signature confirmation",
"price": 3.95,
"currency": "USD"
}
]
},
{
"key": "liability_amount",
"label": "Insurance",
"type": "number",
"multiple": false
}
],
"credits": 0.3205,
"own_account": false,
"protected": true,
"protections": [
"CLAIMS_PROTECTED"
],
"service_id": "USPS_PTP_GAH"
}
],
"remote_shipment_id": "prba10f56ed",
"request_token": "amzn1.rq.3d43e540-e6b7-4b57-bb3d-b7582fcbbea1.101",
"expires_at": "2025-12-11T18:29:18.234Z",
"to_address_id": "78722344-3738-48f7-857e-e6dff79db84e",
"from_address_id": "b8b3e7b6-3adc-417f-963b-dd9851947ac2"
}

Bad request - validation error

object
error_messages
required

List of error messages

Array<string>
[
"to_address is required"
]
{
"error_messages": [
"Invalid request parameters"
]
}

Forbidden - feature not enabled

object
error_messages
required

List of error messages

Array<string>
[
"to_address is required"
]
Example
{
"error_messages": [
"You do not have permission to access this feature."
]
}

Unprocessable entity - API error

object
error_messages
required

List of error messages

Array<string>
[
"to_address is required"
]
{
"error_messages": [
"Invalid request parameters"
]
}