---
title: "Estimate rates"
method: POST
path: "/v2/rates/estimate"
tags: ["rates"]
---

# Estimate rates

`POST /v2/rates/estimate`

<aside class="access" aria-label="Endpoint access">
      <table class="access__table">
        <thead>
          <tr>
            <th class="access__table-header">Products</th>
            <th class="access__table-header">Plans</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td class="access__table-cell access__product">
              <img class="access__logo" src="/static/logos/shipstation-api-logo.svg" alt="ShipStation API Logo" loading="lazy" decoding="async"/>
              <div class="access__sub">Formerly ShipEngine</div>
            </td>
            <td class="access__table-cell access__plans">
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-free.md" class="access__plan">Free</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-advanced-enterprise.md" class="access__plan">Advanced</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-advanced-enterprise.md" class="access__plan">Enterprise</a>
            </td>
          </tr>
          <tr>
            <td class="access__table-cell">
              <img class="access__logo" src="/static/logos/shipstation-logo.svg" alt="ShipStation Logo" loading="lazy" decoding="async"/>
            </td>
            <td class="access__table-cell access__plans">
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-free-starter.md" class="access__plan access__plan--off">Free</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-free-starter.md" class="access__plan access__plan--off">Starter</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-standard-premium.md" class="access__plan">Standard</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-standard-premium.md" class="access__plan">Premium</a>
            </td>
          </tr>
        </tbody>
      </table>
      <footer class="access__footer">
        <a class="access__help" href="/apis/@shipstation-v2/docs/getting-started/products-and-plans.md">
          Learn about products and plans
          <img src="/static/icons/external-link.svg" alt="External Link Icon" style="width: 16px;" loading="lazy" decoding="async"/>
        </a>
      </footer>
    </aside>

Get Rate Estimates

## Request body

- union — A rate estimate request body
  - object
    - `carrier_id` string — A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.
    - `from_country_code` string, required — A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
    - `from_postal_code` string, required — postal code
    - `from_city_locality` string, required — from postal code
    - `from_state_province` string, required — From state province
    - `to_country_code` string, required — A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
    - `to_postal_code` string, required — postal code
    - `to_city_locality` string, required — The city locality the package is being shipped to
    - `to_state_province` string, required — To state province
    - `weight` Weigth, required — The weight of a package
      - `value` number, required — The weight, in the specified unit
      - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram', required — The possible weight unit values
    - `dimensions` Dimensions — The dimensions of a package
      - `unit` 'inch' | 'centimeter', required — The dimension units that are supported by ShipStation .
      - `length` number, required — The length of the package, in the specified unit
      - `width` number, required — The width of the package, in the specified unit
      - `height` number, required — The height of the package, in the specified unit
    - `confirmation` 'none' | 'delivery' | 'signature' | 'adult_signature' | 'adult_signature_restricted_delivery' | 'direct_signature' | 'delivery_mailed' | 'verbal_confirmation' | 'delivery_code' | 'age_verification_16_plus' — The possible delivery confirmation values
    - `address_residential_indicator` 'unknown' | 'yes' | 'no' — Indicates whether an address is residential.
    - `ship_date` string, date-time, required — An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date and time.
  - object
    - `carrier_ids` SeId[] — Array of Carrier IDs
    - `from_country_code` string, required — A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
    - `from_postal_code` string, required — postal code
    - `from_city_locality` string, required — from postal code
    - `from_state_province` string, required — From state province
    - `to_country_code` string, required — A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
    - `to_postal_code` string, required — postal code
    - `to_city_locality` string, required — The city locality the package is being shipped to
    - `to_state_province` string, required — To state province
    - `weight` Weigth, required — The weight of a package
      - `value` number, required — The weight, in the specified unit
      - `unit` 'pound' | 'ounce' | 'gram' | 'kilogram', required — The possible weight unit values
    - `dimensions` Dimensions — The dimensions of a package
      - `unit` 'inch' | 'centimeter', required — The dimension units that are supported by ShipStation .
      - `length` number, required — The length of the package, in the specified unit
      - `width` number, required — The width of the package, in the specified unit
      - `height` number, required — The height of the package, in the specified unit
    - `confirmation` 'none' | 'delivery' | 'signature' | 'adult_signature' | 'adult_signature_restricted_delivery' | 'direct_signature' | 'delivery_mailed' | 'verbal_confirmation' | 'delivery_code' | 'age_verification_16_plus' — The possible delivery confirmation values
    - `address_residential_indicator` 'unknown' | 'yes' | 'no' — Indicates whether an address is residential.
    - `ship_date` string, date-time, required — An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date and time.

## Response `200`

The request was a success.

- RateEstimate[] — A rate estimate response body
  - `rate_type` 'check' | 'shipment', required — The possible rate type values
  - `carrier_id` string, required — A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.
  - `shipping_amount` MonetaryValue, required — A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
    - `currency` string, required — The currencies that are supported by ShipStation are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
    - `amount` number, required — The monetary amount, in the specified currency.
  - `insurance_amount` MonetaryValue, required — A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
    - `currency` string, required — The currencies that are supported by ShipStation are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
    - `amount` number, required — The monetary amount, in the specified currency.
  - `confirmation_amount` MonetaryValue, required — A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
    - `currency` string, required — The currencies that are supported by ShipStation are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
    - `amount` number, required — The monetary amount, in the specified currency.
  - `other_amount` MonetaryValue, required — A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
    - `currency` string, required — The currencies that are supported by ShipStation are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
    - `amount` number, required — The monetary amount, in the specified currency.
  - `tax_amount` MonetaryValue — A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
    - `currency` string, required — The currencies that are supported by ShipStation are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
    - `amount` number, required — The monetary amount, in the specified currency.
  - `zone` integer, required — Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
  - `package_type` string, required — package type that this rate was estimated for
  - `delivery_days` integer — The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday
  - `guaranteed_service` boolean, required — Indicates if the rate is guaranteed.
  - `estimated_delivery_date` string, date-time — An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time. The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipStation .
  - `carrier_delivery_days` string — The carrier delivery days
  - `delivery_prediction` DeliveryPrediction — ShipStation's own predicted delivery estimate, from its delivery prediction model rather than quoted by the carrier. This complements the carrier's own estimate rather than replacing it — where carrier fields are present, they are still populated. The whole object is omitted when a prediction is not available for the carrier, service, and lane, so treat its absence as "no prediction" rather than as an error. To request predictions on their own, without rating or buying anything, use [Predict delivery dates](#operation/create_delivery_predictions).
    - `delivery_date` string, date-time, nullable — The predicted delivery date.
    - `transit_days` integer, nullable — The predicted time in transit, in whole days. A fractional prediction is rounded up, so 4.1 days is reported as 5.
    - `confidence_level` 'high' | 'low' — How much historical data the prediction rests on. - `high` — the prediction is based on historical data for this carrier service. - `low` — little or no historical data was available for this service, so the prediction is based on similar services.
  - `ship_date` string, date-time — ship date
  - `negotiated_rate` boolean, required — Indicates if the rates been negotiated
  - `service_type` string, required — service type
  - `service_code` string, required — service code for the rate
  - `trackable` boolean, required — Indicates if rate is trackable
  - `carrier_code` string, required — A [shipping carrier] , such as `fedex`, `dhl_express`, `stamps_com`, etc.
  - `carrier_nickname` string, required — carrier nickname
  - `carrier_friendly_name` string, required — carrier friendly name
  - `validation_status` 'valid' | 'invalid' | 'has_warnings' | 'unknown', required — The possible validation status values
  - `warning_messages` string[], required — The warning messages
  - `error_messages` string[], required — The error messages

## Other responses

- `400` — The request contained errors.
- `500` — The request was successful.

## Changes

- **2026-09-09** `dc74a6387377` — 1 info
  - added the optional property `items/allOf[subschema #1: rate_estimate]/delivery_prediction` to the response with the `200` status
- **2026-09-05** `17802d3fbe61` — 1 warning
  - added the new `freight_provider_already_connected` enum value to the `errors/items/allOf[subschema #1: error]/error_code/allOf[subschema #1: error_code]/` response property for the response status `400`
- **2026-08-19** `13c58f90de0b` — 1 info
  - added the new `adult_signature_restricted_delivery` enum value to the request property `allOf[subschema #1: rate_estimate_options]/confirmation/allOf[subschema #1: delivery_confirmation]/`
- …earlier changes not shown

[Full history](https://skmtc.dev/shipstation/apis/shipstation-api-v2/changes/v2/rates/estimate/post.md)

---

[API](https://skmtc.dev/shipstation/apis/shipstation-api-v2.md) · [All operations](https://skmtc.dev/shipstation/apis/shipstation-api-v2/llms.txt) · [OpenAPI document](https://skmtc.dev/shipstation/apis/shipstation-api-v2/revisions/dc74a6387377?raw)
