# Calculate checkout rates

Calculate the shipping rates a buyer should see at checkout for the given destination and cart, using the delivery options defined on the configuration. The response contains one rate per delivery option that produced a price, and each rate carries its own quote_id that can be retrieved later with Get a checkout rate quote.

Endpoint: POST /v1/checkout_rates/{config_id}/quotes
Version: 1.1.202604070904
Security: api_key

## Path parameters:

  - `config_id` (string, required)
    The unique identifier of the checkout rates configuration to quote against.

## Request fields (application/json):

  - `ship_from` (object)
    The origin to calculate rates from. Optional; when omitted, the origin comes from the account's registration.

  - `ship_from.address_type` (string)
    The kind of address, when known (for example, residential or commercial). Treated as unknown when omitted.
    Example: "commercial"

  - `ship_from.address_line1` (string)
    The first line of the street address.
    Example: "500 Warehouse Rd"

  - `ship_from.address_line2` (string)
    The second line of the street address, when applicable.
    Example: "Dock 4"

  - `ship_from.address_line3` (string)
    The third line of the street address, when applicable.
    Example: "Bay 9"

  - `ship_from.city_locality` (string)
    The city or locality.
    Example: "Austin"

  - `ship_from.state_province` (string)
    The state or province.
    Example: "TX"

  - `ship_from.postal_code` (string, required)
    The postal code. Required when ship_from is supplied.
    Example: "78702"

  - `ship_from.country_code` (string, required)
    The ISO 3166-1 alpha-2 country code. Required when ship_from is supplied.
    Example: "US"

  - `ship_to` (object, required)
    The destination address.

  - `ship_to.address_type` (string)
    The kind of address, when known (for example, residential or commercial).
    Example: "residential"

  - `ship_to.address_line1` (string)
    The first line of the street address.
    Example: "525 S Winchester Blvd"

  - `ship_to.address_line2` (string)
    The second line of the street address, when applicable.
    Example: "Suite 200"

  - `ship_to.address_line3` (string)
    The third line of the street address, when applicable.
    Example: "Apt 12"

  - `ship_to.city_locality` (string)
    The city or locality.
    Example: "San Jose"

  - `ship_to.state_province` (string)
    The state or province.
    Example: "CA"

  - `ship_to.postal_code` (string)
    The postal code.
    Example: "95128"

  - `ship_to.country_code` (string)
    The ISO 3166-1 alpha-2 country code.
    Example: "US"

  - `items` (array, required)
    The items in the cart.

  - `items.name` (string)
    The name of the item.
    Example: "T-Shirt"

  - `items.quantity` (integer)
    The number of units of the item in the cart.
    Example: 2

  - `items.sku` (string)
    The stock keeping unit (SKU) of the item.
    Example: "SKU-1234"

  - `items.price` (number)
    The unit price of the item.
    Example: 19.99

  - `items.weight` (object)
    The weight of a single unit of the item.

  - `items.weight.value` (number, required)
    The weight, in the specified unit

  - `items.weight.unit` (string, required)
    The possible weight unit values
    Enum: "pound", "ounce", "gram", "kilogram"

  - `items.dimensions` (object)
    The dimensions of a single unit of the item.

  - `items.dimensions.unit` (string, required)
    The dimension units that are supported by ShipEngine.
    Enum: "inch", "centimeter"

  - `items.dimensions.length` (number, required)
    The length of the package, in the specified unit

  - `items.dimensions.width` (number, required)
    The width of the package, in the specified unit

  - `items.dimensions.height` (number, required)
    The height of the package, in the specified unit

  - `currency` (string)
    The currency to return rates in.
    Example: "USD"

## Response 200 fields (application/json):

  - `config_id` (string)
    The configuration the rates were calculated against.
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

  - `rates` (array)
    The rates to display at checkout, one entry per delivery option that produced a rate. Each entry has its own quote_id.

  - `rates.quote_id` (string)
    The unique identifier of this rate's quote. Use it to retrieve the quote later with [Get a checkout rate quote](#operation/get_checkout_rates_quote).
    Example: "f1a2b3c4-d5e6-7890-abcd-ef1234567890"

  - `rates.option_id` (integer)
    The identifier of the delivery option this rate was produced for.
    Example: 100001

  - `rates.option_name` (string)
    The display name of the delivery option.
    Example: "Standard Shipping"

  - `rates.type` (string)
    The delivery option type this rate corresponds to (for example, live_rate or free).
    Enum: "live_rate", "flat_rate", "free", "local_delivery"

  - `rates.carrier_id` (string,null)
    The carrier this rate is for. null for options without a carrier (for example, free).
    Example: "se-1234567"

  - `rates.service_code` (string,null)
    The carrier service this rate is for. null for options without a carrier service.
    Example: "usps_priority_mail"

  - `rates.final_amount` (number)
    The price shown to the buyer after fees or fallbacks are applied.
    Example: 10.69

  - `rates.currency` (string)
    The currency of final_amount.
    Example: "USD"

  - `rates.estimated_delivery_days` (integer,null)
    The estimated number of days in transit, when available.
    Example: 2

  - `rates.estimated_delivery_date` (string,null)
    The estimated delivery date, when available.
    Example: "2026-06-26T00:00:00Z"

  - `created_at` (string)
    When the quote was calculated.
    Example: "2026-06-24T10:00:00Z"

## Response 400 fields (application/json):

  - `request_id` (string, required)
    A UUID that uniquely identifies the request id.
This can be given to the support team to help debug non-trivial issues that may occur
    Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"

  - `errors` (array, required)
    The errors associated with the failed API call

  - `errors.error_source` (string, required)
    The source of the error, as indicated by the name this informs us if the API call failed because of the
carrier, the order source, or the ShipEngine API itself.
    Enum: "carrier", "order_source", "shipengine"

  - `errors.error_type` (string, required)
    The type of error
    Enum: "account_status", "business_rules", "validation", "security", "system", "integrations"

  - `errors.error_code` (string, required)
    The error code specified for the failed API Call
    Enum: "auto_fund_not_supported", "batch_cannot_be_modified", "carrier_conflict", "carrier_disconnected", "carrier_not_connected", "carrier_not_supported", "confirmation_not_supported", "default_warehouse_cannot_be_deleted", "field_conflict", "field_value_required", "forbidden", "identifier_conflict", "identifiers_must_match", "insufficient_funds", "invalid_address", "invalid_billing_plan", "invalid_field_value", "invalid_identifier", "invalid_status", "invalid_string_length", "label_images_not_supported", "meter_failure", "order_source_not_active", "rate_limit_exceeded", "refresh_not_supported", "request_body_required", "return_label_not_supported", "settings_not_supported", "subscription_inactive", "terms_not_accepted", "tracking_not_supported", "trial_expired", "unauthorized", "unknown", "unspecified", "verification_failure", "warehouse_conflict", "webhook_event_type_conflict", "customs_items_required", "incompatible_paired_labels", "invalid_charge_event", "invalid_object", "no_rates_returned", "file_not_found", "shipping_rule_not_found", "service_not_determined", "no_rates_returned", "funding_source_registration_in_progress", "insurance_failure", "funding_source_missing_configuration", "funding_source_error", "freight_connection_inactive", "freight_provider_id_required", "freight_provider_already_connected", "freight_shipment_not_found", "freight_tracking_not_available", "freight_tracking_not_found", "freight_shipment_not_batchable"

  - `errors.message` (string, required)
    An error message associated with the failed API call
    Example: "Body of request cannot be null."

  - `errors.carrier_id` (string)
    A string that uniquely identifies the carrier that generated the error.
    Example: "se-28529731"

  - `errors.carrier_code` (string)
    The name of the shipping carrier that generated the error, such as fedex, dhl_express, stamps_com, etc.
    Example: "dhl_express"

  - `errors.field_name` (string)
    The name of the field that caused the error
    Example: "shipment.ship_to.phone_number"


