---
title: "Request Rates"
method: POST
path: "/2024-09/rates"
tags: ["Rates"]
---

# Request Rates

`POST /2024-09/rates`

Request a list of shipping quotes for a prospective shipment.

Required authorization scope: `public.rate:read`

> Compare couriers to see the cheapest, fastest and best value for money, or a combination of speed, price and reliability.

## Input city and state

If you are shipping to or within the United States, Canada, Mexico or Australia, we recommend that you always input the origin and destination `city` and `state`. This information is required by certain couriers to return accurate rates.

## Calculate dimensions and total weight

You can calculate dimensions and total weight of your shipment in three ways:

* Provide `total_actual_weight` and `box` objects for the shipment.
* Specify `actual_weight` and `dimensions` for each item of the `items` object: in this case, total weight and box size will be calculated automatically.
* Specify `sku` for each item of the `items` object: in this case, actual weight and dimensions for calculations will be taken as set for the product.

> **Note:** This endpoint requires an **advanced scope**. You can enable advanced scopes when creating or editing your [API connection](https://developers.easyship.com/reference/scopes).

Calls to this endpoint count towards your API usage allowance. You can monitor your current usage in the [Subscription section](https://app.easyship.com/account/subscription) of your account.

## Request body

- RateRequest — Rates request body
  - `origin_address` object, required — Origin Address
    - `line_1` string — First line of the street address
    - `line_2` string, nullable — Second line of the street address
    - `state` string, nullable, required — State, Province, or other top-level administrative region. Mandatory for these countries: AU, CA, CN, ID, MX, MY, TH, US, VN. Use abbreviations for naming the state if possible (2 letters for the US/CA, 2 or 3 letters for AU). For countries using provinces, use the full province names.
    - `city` string, required — City or Suburb
    - `postal_code` string, required — Postal code. Leave it null or 0 if the country does not have postal codes. Mandatory for these countries: AD, AF, AI, AL, AM, AQ, AR, AS, AT, AU, AX, AZ, BA, BB, BD, BE, BG, BL, BM, BN, BQ, BR, BT, BV, BY, CA, CC, CH, CL, CN, CO, CR, CU, CV, CX, CY, CZ, DE, DK, DO, DZ, EC, EE, EG, EH, ES, ET, FI, FK, FM, FO, FR, GA, GB, GE, GF, GG, GI, GL, GP, GR, GS, GT, GU, GW, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JO, JP, KG, KH, KR, KW, KY, KZ, LA, LB, LI, LK, LR, LS, LT, LU, LV, MA, MC, MD, ME, MF, MG, MH, MK, MM, MN, MP, MQ, MT, MV, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NZ, OM, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, RE, RO, RS, RU, SD, SE, SG, SH, SI, SJ, SK, SM, SN, SS, SV, SX, SZ, TC, TD, TH, TJ, TM, TN, TR, TW, UA, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, WF, WS, YT, ZA, ZM.
    - `contact_name` string, nullable — The full name of a person at the address. Owner name will be used if not provided.
    - `contact_phone` string — Phone number used to reach the person in contact_name (may or may not be SMS-ready).
  - `destination_address` object, required — Destination Address
    - `line_1` string, required — First line of the street address
    - `line_2` string, nullable — Second line of the street address
    - `state` string, nullable, required — State, Province, or other top-level administrative region. Mandatory for these countries: AU, CA, CN, ID, MX, MY, TH, US, VN. Use abbreviations for naming the state if possible (2 letters for the US/CA, 2 or 3 letters for AU). For countries using provinces, use the full province names.
    - `city` string, required — City or Suburb
    - `postal_code` string, required — Postal code. Mandatory for most countries (if not applicable, for example Hong Kong, leave null or 0)
    - `country_alpha2` 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW', required — Country Code in Alpha-2 format (ISO 3166-1)
    - `company_name` string, nullable — The company or organization at the address
    - `contact_name` string — The full name of a person at the address
    - `contact_phone` string — Phone number used to reach the person in contact_name (may or may not be SMS-ready)
    - `contact_email` string, email — Email address used to reach the person in `contact_name`
    - `delivery_instructions` string, nullable — Delivery instructions for the address, see [Delivery Instructions](https://developers.easyship.com/page/delivery-instructions).
  - `set_as_residential` SetAsResidential — unresolved $ref
  - `incoterms` Incoterms — unresolved $ref
  - `insurance` Insurance — unresolved $ref
  - `return` Return — unresolved $ref
  - `courier_settings` object
    - `show_courier_logo_url` boolean — Return courier logo URL
    - `apply_shipping_rules` boolean — Apply any [shipping rules](https://support.easyship.com/hc/en-us/articles/115003580152-Automate-Shipping-Process-Shipping-Rules) created on the Easyship dashboard (Default: `true`)
  - `shipping_settings` object
    - `units` Units — Units
      - `weight` 'kg' | 'g' | 'lb' | 'oz' — Unit of weight values provided. Options: `kg` / `g` / `lb` / `oz` (Default: `kg`). Unit of values in the response will be in `kg`.
      - `dimensions` 'cm' | 'in' — Unit of dimension values provided. Options: `cm` / `in` (Default: `cm`) Unit of values in the response will be in `cm`.
    - `output_currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SKK' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'BTC' | 'JEP' | 'EEK' | 'GHC' | 'MTL' | 'TMM' | 'YEN' | 'ZWD' | 'ZWL' | 'ZWN' | 'ZWR' — Output currency. ISO-4217 three-letter alphabetic currency code (e.g. USD, EUR, GBP). Default: Origin Country Currency.
  - `parcels` ParcelRateCreate[], required — Parcels
    - `total_actual_weight` number — Total weight of the shipment, including the box weight. If you provide the total weight of the shipment, then the weight for items can be optional.
    - `box` object, nullable — The box dimensions for the shipment. If the box dimensions are provided, then dimensions for items are optional.
      - `slug` string, nullable — Courier or Custom Box Slug. Use the [Boxes API](https://developers.easyship.com/reference/boxes_index) to retrieve a list of available boxes.
      - `length` number — Length of the box
      - `width` number — Width of the box
      - `height` number — Height of the box
    - `items` union[] — Array of all shipment items
      - union
        - ParcelItemRateCreate — A line item for rate calculation; may be multiple physical objects.
          - `description` string — Description of the item.
          - `category` string, nullable — Item category name or slug. Required if hs_code is not provided. Use the [Item Categories API](https://developers.easyship.com/reference/item_categories_index) to retrieve a list of available item categories.
          - `hs_code` string — HS Code of the item. Required if category is not provided.
          - `sku` string — Item Stock Keeping Unit (SKU) as listed in your store.
          - `contains_battery_pi966` ContainsBatteryPi966 — unresolved $ref
          - `contains_battery_pi967` ContainsBatteryPi967 — unresolved $ref
          - `contains_liquids` ContainsLiquids — unresolved $ref
          - `origin_country_alpha2` 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | 'null', nullable — Country Code in Alpha-2 format (ISO 3166-1)
          - `quantity` integer — Item quantity
          - `dimensions` object — Dimensions of the item
            - `length` number — Item length; Optional if the Box dimensions are provided.
            - `width` number — Item width; Optional if the Box dimensions are provided.
            - `height` number — Item height; Optional if the Box dimensions are provided.
          - `actual_weight` number — Item actual weight in `kg`. Must be greater than 0. Optional when `total_actual_weight` is provided. **Required when the shipping rule action `split_parcels_by_sku` is enabled, regardless of the existence of `total_actual_weight`**
          - `declared_currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SKK' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'BTC' | 'JEP' | 'EEK' | 'GHC' | 'MTL' | 'TMM' | 'YEN' | 'ZWD' | 'ZWL' | 'ZWN' | 'ZWR', required — Item currency. ISO-4217 three-letter alphabetic currency code (e.g. USD, EUR, GBP).
          - `declared_customs_value` number, required — Item customs value, must be greater than 0 unless category is `documents`. Please note that this value refers to the unit rather than the total.
        - ParcelProductItemCreate — A line item in a shipment manifest; may be multiple physical objects.
          - `product` object
            - `id` string, uuid — Product ID. Required if the `sku` is not provided.
            - `sku` string — Product SKU. Required if the `id` is not provided.
          - `quantity` Quantity — unresolved $ref
          - `declared_currency` DeclaredCurrency — unresolved $ref
          - `declared_customs_value` DeclaredCustomsValue — unresolved $ref
          - `cpsc_compliance` CpscCompliance — unresolved $ref
        - ParcelReturnItemCreate — Return Item (only available for return shipments)
          - `id` string, uuid — Item ID (from the shipment that is being returned)
          - `quantity` integer — Item quantity
  - `calculate_tax_and_duties` boolean — Whether to calculate taxes and duties for international shipments. Must be true when using DDP Incoterms. When set to `true`, the response will include estimated import tax and duty charges. When set to `false`, tax and duty calculations will be skipped.
  - `filter_options` object — Filter response by keywords
    - `courier_service_name` string — Filter by courier service name
    - `courier_service_ids` string[] — Filter by courier service IDs

## Response `200`

rates without taxes and duties when calculate_tax_and_duties is false

- RateList — List of rates
  - `rates` Rate[]
    - `courier_service` RateCourierService — Courier Service for Rate
      - `id` string, uuid — unique identifier for a courier service
      - `name` string — Human-readable name for the courier service used in this rate.
      - `courier_id` string, uuid — The courier ID that the current courier service is associated with
      - `umbrella_name` string — Human-readable name for the courier company that offers this service.
      - `logo` LogoUrl — unresolved $ref
      - `easyship_courier_service` boolean, nullable — Whether the Courier Service belongs to Easyship or not.
    - `min_delivery_time` integer — The fastest estimate of delivery time for this courier service, in days.
    - `max_delivery_time` integer — The slowest estimate of delivery time for this courier service, in days.
    - `value_for_money_rank` number — Where this courier service ranks among the other offered options. 1 indicates the best value for money.
    - `delivery_time_rank` number — Where this courier service ranks among the other offered options, in minimum delivery time estimate; 1 indicates the fastest option.
    - `cost_rank` number — Where this courier service ranks among the other offered options, in total price; 1 indicates the best value for money.
    - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SKK' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'BTC' | 'JEP' | 'EEK' | 'GHC' | 'MTL' | 'TMM' | 'YEN' | 'ZWD' | 'ZWL' | 'ZWN' | 'ZWR' — ISO-4217 three-letter alphabetic currency code (e.g. USD, EUR, GBP)
    - `shipment_charge` number — Base cost of the courier service
    - `fuel_surcharge` number — A fee added by the courier when fuel costs are high
    - `remote_area_surcharge` number — Sum of the origin and destination base fees listed in `remote_area_surcharges`
    - `remote_area_surcharges` object, nullable — Origin and destination remote area surcharges
      - `origin` object
        - `name` string
        - `base` number
      - `destination` object
        - `name` string
        - `base` number
    - `other_surcharges` object, nullable — Other surcharges
      - `total_fee` number — Sum of the surcharge fees, in the currency specified for the shipment
      - `details` object[] — An array of individual surcharges being applied
        - `name` string — Surcharge name, in English, to be displayed to user
        - `fee` number — Surcharge fee in the currency of the shipment
        - `origin_fee` number — Surcharge fee in the currency of the shipment's origin country
    - `oversized_surcharge` number — A fee added by the courier when parcels exceed a specified threshold size or weight
    - `additional_services_surcharge` number — A fee added by the courier when additional services are added (e.g. delivery confirmation)
    - `residential_full_fee` number — A fee added by the courier when the receiver is at a residential address
    - `residential_discounted_fee` number — A discounted fee added by the courier when the receiver is at a residential address
    - `shipment_charge_total` number — Subtotal of `shipment_charge`, `fuel_surcharge`, `residential_*_fee`, `remote_area_surcharge`, `additional_services_surcharge`, & `oversized_surcharge`
    - `warehouse_handling_fee` number — A fee added by the fulfillment service for managing warehouse operations
    - `insurance_fee` number — The cost of the insurance policy purchased for this shipment
    - `sales_tax` number — National government taxes, calculated as a portion of the purchase price
    - `provincial_sales_tax` number — State, province, or local government taxes, calculated as a portion of the purchase price
    - `ddp_handling_fee` number, nullable — A fee added by the courier when they pay import taxes and duties on the sender's behalf. Null is returned when there is an insufficient subscription tier for feature taxes and duties.
    - `import_tax_charge` number, nullable — Import tax charge. Null is returned when there is an insufficient subscription tier for feature taxes and duties.
    - `import_tax_non_chargeable` number, nullable — Import tax non-chargeable. Null is returned when there is an insufficient subscription tier for feature taxes and duties.
    - `import_duty_charge` number, nullable — Import duty amount collected upfront with the shipment (DDP only). `0` for DDU shipments where the buyer pays duty at customs. Null when the subscription lacks taxes and duties or when `calculate_tax_and_duties` is false.
    - `total_charge` number — The sum of shipping_charge and all applicable fees for this shipment
    - `is_above_threshold` boolean, nullable — True if the purchase price exceeds the threshold set by the import country for customs charges. If `false`, `import_tax_charge`, `import_duty_charge`, `estimated_import_tax`, and `estimated_import_duty` should be zero.
    - `is_above_duty_threshold` boolean, nullable — True if the shipment value exceeds the import country's de minimis threshold for duty. Distinct from `is_above_threshold`, which covers the combined tax and duty threshold. May be `true` while `import_duty_charge` is `0` on DDU rates. Null when the subscription lacks taxes and duties or when `calculate_tax_and_duties` is false.
    - `import_duty_details` ImportDutyDetails[], nullable — Per line-item duty calculation breakdown in the rate's `currency`, including HS codes used, fallback flags, rates applied, and amounts. On DDU rates, amounts align with `estimated_import_duty`. On DDP rates, amounts align with `import_duty_charge`. Present when a duty calculation was performed, including when the duty amount is zero (e.g. FTA preferential rate). Null when the subscription lacks taxes and duties or when `calculate_tax_and_duties` is false. Only returned on the top-level rate object, not within `rates_in_origin_currency`.
      - `hs_code_provided` string, nullable — Raw HS code as provided in the request, before normalisation or fallback.
      - `hs_code_applied` string, nullable — HS code used to determine the duty rate after normalising to 10 digits and applying fallback, if any.
      - `subheading` boolean, nullable — True if a shorter parent subheading was used to determine the duty rate because no record existed for the full code.
      - `duty_origin_country_id_provided` integer, nullable — Country of origin ID explicitly provided on the item. Null when COO was not provided and fell back to the shipment origin.
      - `duty_origin_country_id_applied` integer, nullable — Country of origin ID actually used to determine the duty rate (either provided or the shipment origin fallback).
      - `duty_calculation_method` 'CIF' | 'FOB', nullable — Customs valuation method used for this destination.
      - `line_item_shipment_value` number, nullable — Shipment value used for duty calculation (customs value × quantity, plus allocated shipping and insurance for CIF destinations). Returned in the response currency.
      - `applied_rate_type` 'fta' | 'general', nullable — Whether the FTA preferential rate or the general rate was applied.
      - `additional_rates` ImportDutyAdditionalRate[], nullable — Additional duty surcharges applied on top of the base duty rate (e.g. anti-dumping duties, section tariffs).
        - `description` string, nullable — Description of the additional duty surcharge.
        - `rate` number, nullable — Additional duty rate as a decimal (e.g. `0.025` = 2.5%).
        - `amount` number, nullable — Computed additional duty amount for this surcharge in the response currency.
      - `base_duty_rate` number, nullable — Base duty rate as a decimal (e.g. `0.12` = 12%).
      - `base_duty_amount` number, nullable — Computed base duty amount for the line item in the response currency.
      - `line_item_total_duty` number, nullable — Total duty for the line item including base and all additional surcharges, in the response currency.
    - `incoterms` Incoterms — unresolved $ref
    - `estimated_import_tax` number, nullable — An estimate of import taxes that will be charged to the buyer when the shipment clears customs (only applicable for DDU incoterms). Null is returned when there is an insufficient subscription tier for feature taxes and duties.
    - `estimated_import_duty` number, nullable — An estimate of import duty that will be charged to the buyer when the shipment clears customs (only applicable for DDU incoterms). Null is returned when there is an insufficient subscription tier for feature taxes and duties.
    - `minimum_pickup_fee` number — The minimum fee applied for `paid_pickup` options, for this courier service
    - `available_handover_options` string[] — A list of one or more of `dropoff`, `free_pickup`, and `paid_pickup`
    - `tracking_rating` number — A characterization of the level of detail provided by the courier's tracking data. * -1 - No tracking number * 0 - Infrequent tracking events * 1 - Infrequent tracking events * 2 - Tracking main milestones with delivery confirmation * 3 - Tracking all steps of transit with delivery confirmation
    - `easyship_rating` number — Average of customer ratings of this courier service; provided by Easyship users and their buyers.
    - `courier_remarks` string, nullable — Additional details relevant to choosing the appropriate courier service
    - `payment_recipient` 'Easyship' | 'EasyshipPayOnScan' | 'Courier' — Who collects payment for this shipment (and when)
    - `discount` RateDiscount, nullable — A discount applied to the rate. Amount and percentage should not both be defined at the same time
      - `amount` number — A fixed amount to discount from the price
      - `origin_amount` number — Discount origin amount
    - `rates_in_origin_currency` object — Rates in origin currency
      - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LTL' | 'LVL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SKK' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XCD' | 'XDR' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'BTC' | 'JEP' | 'EEK' | 'GHC' | 'MTL' | 'TMM' | 'YEN' | 'ZWD' | 'ZWL' | 'ZWN' | 'ZWR' — ISO-4217 three-letter alphabetic currency code (e.g. USD, EUR, GBP)
      - `shipment_charge` ShipmentCharge — unresolved $ref
      - `fuel_surcharge` FuelSurcharge — unresolved $ref
      - `remote_area_surcharge` RemoteAreaSurcharge — unresolved $ref
      - `additional_services_surcharge` AdditionalServicesSurcharge — unresolved $ref
      - `oversized_surcharge` OversizedSurcharge — unresolved $ref
      - `shipment_charge_total` ShipmentChargeTotal — unresolved $ref
      - `warehouse_handling_fee` WarehouseHandlingFee — unresolved $ref
      - `insurance_fee` InsuranceFee — unresolved $ref
      - `ddp_handling_fee` DdpHandlingFee — unresolved $ref
      - `import_tax_charge` ImportTaxCharge — unresolved $ref
      - `import_tax_non_chargeable` ImportTaxNonChargeable — unresolved $ref
      - `import_duty_charge` ImportDutyCharge — unresolved $ref
      - `residential_discounted_fee` ResidentialDiscountedFee — unresolved $ref
      - `residential_full_fee` ResidentialFullFee — unresolved $ref
      - `total_charge` TotalCharge — unresolved $ref
      - `estimated_import_tax` EstimatedImportTax — unresolved $ref
      - `estimated_import_duty` EstimatedImportDuty — unresolved $ref
      - `sales_tax` SalesTax — unresolved $ref
      - `provincial_sales_tax` ProvincialSalesTax — unresolved $ref
      - `minimum_pickup_fee` MinimumPickupFee — unresolved $ref
    - `description` string — Details that the user should know when preparing to hand over the shipment to the courier (e.g. pick-up or drop-off)
    - `full_description` string — Full description
  - `meta` MetaWithPagination
    - `pagination` Pagination — Pagination
      - `next` integer, nullable
      - `count` integer, nullable — The total number of items. The `null` value is used with countless pagination (used for faster response on large datasets, like shipments).
      - `page` integer — Current page
    - `request_id` string — An unique ID represent the request.

## Other responses

- `402` — insufficient subscription tier for a specific feature
- `422` — failed validations

---

[API](https://skmtc.net/easyship/apis/easyship-public-api.md) · [All operations](https://skmtc.net/easyship/apis/easyship-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/easyship/easyship-public-api/revisions/71d737a5fcbf/schema)
