---
title: "List shipping zones (V2)"
method: GET
path: "/api/sites/multiscreen/{site_name}/ecommerce/shipping-zones-v2"
tags: ["Shipping Zones V2"]
---

# List shipping zones (V2)

`GET /api/sites/multiscreen/{site_name}/ecommerce/shipping-zones-v2`

## Request

- Base URL: `https://api.duda.co`
- URL: `https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/shipping-zones-v2`
- Auth: HTTP basic

Returns the v2 shipping zones for the site. Supports paging with Offset and Limit, and sorting with Sort and Direction.

## Path parameters

- `site_name` string, required

## Query parameters

- `Offset` integer
- `Limit` integer
- `Sort` string
- `Direction` string

## Response `200`

OK

- ExternalShippingZonesV2ResponseDto
  - `offset` integer: Amount of results that will be skipped.
  - `limit` integer: Amount of results that will be retrieved.
  - `total_responses` integer: Total of results
  - `results` ExternalShippingZoneV2ResponseDto[]
    - `id` string: Identifier of the shipping zone. Prefixed with szv2_
    - `name` string: Merchant-facing internal name of the shipping zone.
    - `locations` ExternalShippingZoneLocationResponseDto[]: Locations where the shipping zone applies. Empty means the zone is the international catch-all.
      - `country` string: ISO 3166-2 country code where the shipping zone applies
      - `region` string, nullable: ISO 3166-2 region code where the shipping zone applies. Can be left empty to apply to the whole country.
    - `subzones` ExternalShippingSubzoneResponseDto[]: Subzones scoping postal code patterns and the shipping methods they own. Always at least one.
      - `id` string: Identifier of the subzone. Prefixed with subz_
      - `postal_codes_patterns` string[]: Postal codes, and partial postal code patterns, scoped to this subzone. Empty means the subzone applies to every postal code its zone covers.
      - `shipping_methods` ExternalShippingMethodV2ResponseDto[]: Shipping methods offered by this subzone.
        - `id` string: System identifier generated by duda native ecommerce. Prefixed with sm_.
        - `name` string: Display name for the method at checkout.
        - `type` 'UNKNOWN' | 'FREE' | 'FLAT_RATE' | 'CART_PRICE_BASED' | 'CART_WEIGHT_BASED'
        - `min_delivery_time_in_days` integer, nullable: Customer facing minimum delivery time in days.
        - `max_delivery_time_in_days` integer, nullable: Customer facing maximum delivery time in days.
        - `rates` ExternalShippingMethodRateResponseDto[]: Rates quoted by this method. Empty for a FREE method, which quotes no rate of its own.
          - `price` number, double: String decimal value of the price the customer must pay for shipping.
          - `min_cart_weight` integer, nullable: Minimum weight in grams of a cart for the rate to be valid.
          - `max_cart_weight` integer, nullable: Maximum weight in grams of a cart for the rate to be valid.
          - `min_cart_value` number, double, nullable: Minimum value of the cart's subtotal for the rate to be valid.
          - `max_cart_value` number, double, nullable: Maximum value of the cart's subtotal for the rate to be valid.
        - `shipping_group_id` string, nullable: Shipping group this method is offered for. Null means every product belonging to no group.
    - `has_automated_shipping` boolean: Whether live rates by Easyship are enabled for this shipping zone.
    - `pickup_locations` ExternalShippingZonePickupLocationResponseDto[]: Pickup locations offered by this shipping zone.
      - `id` string: Identifier of the pickup location. Prefixed with pl_
      - `name` string: Display name of the pickup location.
      - `sync_to_business_address` boolean: Whether the location follows the store's business address.
      - `address` BusinessAddressOutputDto
        - `address_1` string, nullable: Number and Street, concatenated
        - `address_2` string, nullable: Address complement (apt #, office #, floor level, etc.)
        - `city` string, nullable: City name
        - `sub_locality` string, nullable
        - `region` string, nullable: The administrative region (depending on country, this can be a state, province, department, etc.)
        - `country` string, nullable: ISO 3166 2-letters ISO country code. Ref: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
        - `postal_code` string, nullable: Postal code
        - `phone` string, nullable: Phone number of the business
      - `instructions` string, nullable: Pickup instructions shown to the customer at this location.
      - `scheduling` ExternalPickupSchedulingResponseDto
        - `is_enabled` boolean
        - `weekly_schedule` ExternalPickupDayScheduleResponseDto[]
          - `day` 'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY'
          - `is_enabled` boolean
          - `time_windows` ExternalPickupTimeWindowResponseDto[]
            - `start` string
            - `end` string
        - `date_overrides` ExternalPickupDateOverrideResponseDto[]
          - `start_date` string, date
          - `end_date` string, date
          - `time_windows` ExternalPickupTimeWindowResponseDto[]
            - `start` string
            - `end` string
        - `preparation_time` ExternalPickupSchedulingDurationResponseDto
          - `amount` integer
          - `unit` 'HOURS' | 'DAYS' | 'WEEKS' | 'MONTHS'
        - `max_advance_time` ExternalPickupSchedulingDurationResponseDto
          - `amount` integer
          - `unit` 'HOURS' | 'DAYS' | 'WEEKS' | 'MONTHS'
    - `is_catch_all` boolean: Whether this zone applies to every destination not covered by another zone.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Content
- `429`: Too many requests. The rate limit was exceeded.

---

[API](https://skmtc.dev/duda/apis/duda-partner-api.md) - [All operations](https://skmtc.dev/duda/apis/duda-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/duda/apis/duda-partner-api/revisions/52be4d41cb12?raw)
