---
title: "Get a Shipping Rule"
method: GET
path: "/2024-09/shipping_rules/{shipping_rule_id}"
tags: ["Shipping Rules"]
---

# Get a Shipping Rule

`GET /2024-09/shipping_rules/{shipping_rule_id}`

## Request

- Base URL: `https://public-api.easyship.com`
- URL: `https://public-api.easyship.com/2024-09/shipping_rules/{shipping_rule_id}`
- Auth: HTTP bearer

Retrieve a shipping rule.

Required authorization scope: `public.shipping_rule:read`

## Path parameters

- `shipping_rule_id` string, required

## Response `200`

shipping rule

- ShippingRuleSingle: Shipping Rule detail
  - `shipping_rule` ShippingRule: Shipping Rules
    - `id` string, uuid
    - `name` string: Shipping Rule name
    - `description` string: Shipping Rule description
    - `priority` integer: The smaller value represent the higher priority. High priority shipping rule would be execute first.
    - `active` boolean: Turn on or turn off this shipping rule
    - `accessible` boolean: Based on current subscription plan. Return false if current subscription do not own shipping rule features.
    - `checkout_restrictive` boolean
    - `conditions` ShippingRuleCondition[]
      - union
        - ConditionMatchCountry: Condition that matches the destination country of the orders
          - `type` 'match_country', required
          - `options` object, required
            - `country_ids` CountryID[], required
          - `id` string, uuid
        - ConditionMatchAll: Condition that matches all orders
          - `type` 'match_all', required
          - `id` string, uuid
        - ConditionMatchCategory: Condition that matches orders containing specific categories
          - `type` 'match_category', required
          - `options` object, required
            - `category_ids` string[], required: List of category IDs based on Category API
          - `id` string, uuid
        - ConditionMatchState: Condition that matches the destination state of the orders
          - `type` 'match_state', required
          - `options` object, required
            - `states` string[], required: List of country ID + state abbr based on State API
          - `id` string, uuid
        - ConditionMatchZipcode: Condition that matches the destination zipcode of the orders
          - `type` 'match_zipcode', required
          - `options` object, required
            - `operator` 'is_any_of' | 'is_none_of' | 'starts_with', required
            - `zipcodes` string[], required: List of zipcodes
          - `id` string, uuid
        - ConditionMatchSku: Condition that matches items SKU
          - `type` 'match_sku', required
          - `options` object, required
            - `operator` 'contains' | 'does_not_contain' | 'is_exactly', required: Operator for comparing items SKU
            - `shipment_items_sku` string[], required
          - `id` string, uuid
        - ConditionMatchPlatformName: Condition that matches platform
          - `type` 'match_platform_name', required
          - `options` object, required
            - `platform_names` string[], required: List of platform name base on Shipping Rule Platform API.
          - `id` string, uuid
        - ConditionMatchStore: Condition that matches store
          - `type` 'match_store', required
          - `options` object, required
            - `store_ids` string[], required: List of store IDs base on Store API.
          - `id` string, uuid
        - ConditionMatchBuyerSelectedCourierName: Condition that matches input courier name. This text is compared to the shipping solution options offered to buyers by your e-commerce store. This condition will not apply if you have setup our Checkout plugin in your store.
          - `type` 'match_buyer_selected_courier_name', required
          - `options` object, required
            - `operator` 'contains' | 'does_not_contain' | 'is_exactly', required: operator for filtering couriers
            - `buyer_selected_courier_name` string, required: The courier name is determined and set in your e-commerce store before syncing the order to EasyShip.
          - `id` string, uuid
        - ConditionMatchItemsCount: Condition that matches order items count
          - `type` 'match_items_count', required
          - `options` object, required
            - `operator` 'greater_than' | 'greater_than_or_equal_to' | 'less_than' | 'less_than_or_equal_to' | 'equal_to', required: Operator for comparing items count
            - `shipment_items_count` integer, required: Items count
          - `id` string, uuid
        - ConditionMatchSellingPrice: Condition that matches order's selling price
          - `type` 'match_selling_price', required
          - `options` object, required
            - `operator` 'greater_than' | 'greater_than_or_equal_to' | 'less_than' | 'less_than_or_equal_to' | 'equal_to', required: Operator for comparing order's selling price
            - `value` number, required: Selling price
            - `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: ISO-4217 three-letter alphabetic currency code (e.g. USD, EUR, GBP)
          - `id` string, uuid
        - ConditionMatchWeight: Condition that matches order weight
          - `type` 'match_weight', required
          - `options` object, required
            - `operator` 'greater_than' | 'greater_than_or_equal_to' | 'less_than' | 'less_than_or_equal_to' | 'equal_to', required: Operator for comparing order weight
            - `total_actual_weight` number, required: LB or KG based on country setting.
          - `id` string, uuid
        - ConditionIncludeOrderTagName: Condition that matches order tags
          - `type` 'include_order_tag_name', required
          - `options` object, required
            - `order_tag_list` string[], required: Tag names based on Tag API
          - `id` string, uuid
    - `actions` ShippingRuleAction[]
      - union
        - ActionAddNeverCourier: Never add specific courier services
          - `type` 'add_never_courier_service', required
          - `options` object, required
            - `never_courier_service_ids` string[], required: List of courier service IDs based on Courier Service API
          - `id` string, uuid
        - ActionAddPreferredCourier: Use preferred courier services
          - `type` 'add_preferred_courier_service', required
          - `options` object, required
            - `preferred_courier_service_ids` string[], required: List of courier service IDs based on Courier Service API
          - `id` string, uuid
        - ActionForceIncoterms: Taxes & duties
          - `type` 'force_incoterms', required
          - `options` object, required
            - `incoterms` 'DDP' | 'DDU' | 'DDU_and_Best_DDP' | 'DDP_and_Best_DDU', required: "DDP": "Pre-paid (included in shipping cost)"<br> "DDU": "Post-paid (not included in shipping cost)"<br> "DDU_and_Best_DDP": "Offer 3 post-paid and 1 pre-paid shipping options (for checkout only)"<br> "DDP_and_Best_DDU": "Offer 1 post-paid and 3 pre-paid shipping options
          - `id` string, uuid
        - ActionForceSortBy: Sort couriers by total_charge, delivery_time_rank or value_for_money_rank
          - `type` 'force_sort_by', required
          - `options` object, required
            - `sort_by` 'total_charge' | 'delivery_time_rank' | 'value_for_money_rank', required: total_charge: Cheapest delivery_time_rank: Fastest value_for_money_rank: Best value for money
          - `id` string, uuid
        - ActionForceInsurance: Force applying insurance
          - `type` 'force_insurance', required
          - `options` object, required
            - `insured` boolean, required
          - `id` string, uuid
        - ActionForceTrackingRating: Filter couriers by tracking quality **Note:** this option is very restrictive and you may not see rates. Please make sure to verify the items selected.
          - `type` 'force_tracking_rating', required
          - `options` object, required
            - `force_tracking_rating` integer[], required: List of tracking ratings to use For example: to filter out couriers with `limited` or `basic` tracking you'd set `force_tracking_rating` to `[2, 3]`
          - `id` string, string
        - ActionForcePackage: Use package
          - `type` 'force_package', required
          - `options` union, required
            - object
              - …
            - object
              - …
          - `id` string, uuid
        - ActionRejectPackages: Exclude specified boxes
          - `type` 'reject_packages', required
          - `options` object, required
            - `never_package_ids` string[], required: Box IDs based on Box API.
          - `id` string, uuid
        - ActionForceResidentialSurcharge: Declare destination address as residential.
          - `type` 'force_residential_surcharge', required
          - `options` object, required
            - `set_as_residential` boolean, required
          - `id` string, uuid
        - ActionForceShipFrom: Ship From
          - `type` 'force_ship_from', required
          - `options` object, required
            - `origin_address_id` string, uuid, required: Address ID based on Address API.
          - `id` string, uuid
        - ActionForceAutomatedReturnRequested: Return labels for domestic shipments
          - `type` 'force_automated_return_requested', required
          - `options` object, required
            - `force_automated_return_requested` boolean, required
          - `id` string, uuid
        - ActionAddForcedDeliveryTime: Restrict courier services based on delivery time
          - `type` 'add_forced_delivery_time', required
          - `options` object, required
            - `operator` 'less_than' | 'less_than_or_equal_to' | 'greater_than_or_equal_to' | 'greater_than', required: Operators for comparison include less than (<), less than or equal to (<=), greater than or equal to (>=), and greater than (>)
            - `value` integer, required: How many days
          - `id` string, uuid
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `meta` Meta
    - `request_id` string: An unique ID represent the request.

## Other responses

- `403`: unauthorized
- `404`: record not found

## Changes

- **2026-11-03** `b47b54b748a7`: 2 breaking, 1 warning, 2 info
  - added `subschema #1, subschema #2` to the `shipping_rule/actions/items/oneOf[#/components/schemas/ActionForcePackage]/allOf[#/components/schemas/ActionForcePackageCreate]/options` response property `oneOf` list for the response status `200`
  - the `shipping_rule/conditions/items/oneOf[#/components/schemas/ConditionMatchSku]/allOf[#/components/schemas/ConditionMatchSkuCreate]/options/shipment_items_sku` response's property type changed from `string` to `array` for status `200`
  - added the new `-1.00` enum value to the `shipping_rule/actions/items/oneOf[#/components/schemas/ActionForceTrackingRating]/allOf[#/components/schemas/ActionForceTrackingRatingCreate]/options/force_tracking_rating/items/` response property for the response status `200`
  - the response property `shipping_rule/actions/items/oneOf[#/components/schemas/ActionForceAutomatedReturnRequested]/allOf[#/components/schemas/ActionForceAutomatedReturnRequestedCreate]/options/force_automated_return_requested` became required for the status `200`
  - …1 more

[Operation history](https://skmtc.dev/easyship/apis/easyship-public-api/changes/2024-09/shipping_rules/:shipping_rule_id/get.md)

---

[API](https://skmtc.dev/easyship/apis/easyship-public-api.md) - [All operations](https://skmtc.dev/easyship/apis/easyship-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/easyship/apis/easyship-public-api/revisions/b47b54b748a7?raw)
