---
title: "Get regional prices for a product"
url: "https://developer.migros.ch/apis/prices-discounts-1/versions/f2d88540-a3d1-4e7d-9eb7-5d3dac51c93d/operations/listRegionalPrices"
---

> Full API specification: https://developer.migros.ch/apis/prices-discounts-1/versions/f2d88540-a3d1-4e7d-9eb7-5d3dac51c93d.md

# Get regional prices for a product

`GET` `/migros/products/prices/v1/sellingprices/{productId}`

Operation ID: `listRegionalPrices`

This endpoint retrieves currently valid regional prices for a specified product. If no regional price for a region is found, the national price will be used as a fallback. Priority of prices is also taken into account. E.g. a discounted takes precedence over non-discounted prices and multiple applicable discounts get prioritised.

## Path parameters

- `productId` (string, required) - The ID of the product.

## Query parameters

- `lang` (string, optional) - Override the `Accept-Language` header
- `regions` (array, optional) - The `regions` parameter filters for one or more specific regions. When set, only data these regions will be returned. If the price of a requested region is not available, national price will be used as a fallback. Both, the "explode"ed and the un"explode"ed variants are supported, so `?regions=gmaa,national` and `?regions=gmaa&regions=national` are equivalent.

## Responses

- `200` - Array of prices

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: Prices & Discounts
  version: 1.6.0
servers:
  - description: URL of upstream
    url: https://api.migros.ch
paths:
  /migros/products/prices/v1/sellingprices/{productId}:
    get:
      description: This endpoint retrieves currently valid regional prices for a
        specified product. If no regional price for a region is found, the
        national price will be used as a fallback. Priority of prices is also
        taken into account. E.g. a discounted takes precedence over
        non-discounted prices and multiple applicable discounts get prioritised.
      operationId: listRegionalPrices
      parameters:
        - $ref: "#/components/parameters/lang"
        - $ref: "#/components/parameters/productId"
        - $ref: "#/components/parameters/regions"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Price"
                type: array
          description: Array of prices
      summary: Get regional prices for a product
      tags:
        - Price-Data
security:
  - Kong-Api-Key: []
components:
  parameters:
    lang:
      description: Override the `Accept-Language` header
      in: query
      name: lang
      schema:
        enum:
          - de
          - fr
          - it
        type: string
    productId:
      description: The ID of the product.
      in: path
      name: productId
      required: true
      schema:
        example: "204002600400"
        type: string
    regions:
      description: >-
        The `regions` parameter filters for one or more specific regions. When
        set, only data these regions will be returned. If the price of a
        requested region is not available, national price will be used as a
        fallback.


        Both, the "explode"ed and the un"explode"ed variants are supported, so
        `?regions=gmaa,national` and `?regions=gmaa&regions=national` are
        equivalent.
      in: query
      name: regions
      required: false
      schema:
        items:
          enum:
            - gmaa
            - gmzh
            - gmos
            - gmvd
            - gmge
            - gmnf
            - gmbs
            - gmlu
            - gmti
            - gmvs
            - national
          type: string
        type: array
      style: form
  schemas:
    Price:
      description: Price of a product in certain timeframe. It can be with or without
        discount.
      properties:
        basePrice:
          description: BasePrice describes the base price for a single item of the product
          example: 1.1
          type: number
        basePriceQuantity:
          description: BasePriceQuantity describes the unit quantity for the BasePrice
          example: 500
          type: integer
        basePriceUnit:
          description: BasePriceUnit describes the unit for the BasePrice (e.g "G", "ST",
            "L" etc.)
          example: G
          type: string
        discount:
          $ref: "#/components/schemas/Discount"
        isDailyPrice:
          description: IsDailyPrice (Tagespreis) indicates that there are multiple prices
            for a product across different regions or even within stores in the
            same region. Therefore, to display the correct price for a product,
            we must consider the specific region or store context.
          example: true
          type: boolean
        isDiscount:
          description: IsDiscount indicates if this price is a discounted price.
          example: true
          type: boolean
        originalBasePrice:
          description: OriginalBasePrice describes the original non-discounted base price
            for a single item of the product. This is set only when its a
            discounted price
          example: 1.1
          type: number
        originalPrice:
          description: OriginalPrice is the price without a discount. This is set only
            when price is a discounted price
          example: 11
          type: number
        price:
          description: Price is the Product price
          example: 5.5
          type: number
        quantity:
          description: Quantity describes the number of items one gets for the price
          example: 1
          type: integer
        region:
          description: Region describes the places where the prices are valid
          enum:
            - gmaa
            - gmzh
            - gmos
            - gmvd
            - gmge
            - gmnf
            - gmbs
            - gmlu
            - gmti
            - gmvs
            - national
          example: gmzh
          type: string
        storeId:
          description: StoreID is the identifier for the store
          example: "0033000"
          type: string
        unit:
          description: Unit describes the unit for quantity (e.g "CU", "KG" etc.)
          example: CU
          type: string
        validFromDate:
          description: ValidFrom indicates the start date when the price is valid
          example: 2024-05-07T00:00:00+02:00
          format: date-time
          type: string
        validToDate:
          description: ValidTo indicates the end date when the price becomes invalid
          example: 2024-05-13T23:59:59+02:00
          format: date-time
          type: string
      required:
        - validFromDate
        - validToDate
        - isDiscount
      type: object
    Discount:
      description: Represents discount data gathered from different sources.
      properties:
        advertisementTypeId:
          description: AdvertisementTypeID describes how the discount should be visualized
          example: "2"
          type: string
        amount:
          description: Amount is relative or absolute reduction amount to the price (e.g.
            20%, 4.0)
          example: 30%
          type: string
        articleHint:
          description: ArticleHint is the additional information about the Discount and
            related Products
          example: Angebot gilt nur vom 24.1. bis 31.8.2023, solange Vorrat.
          type: string
        badge:
          description: Badge for the Discount (e.g. 40%, 30% in PNG and SVG format)
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        bossBB:
          description: bossBB is the area (bereich) code prefix for Boss number
          example: "02"
          type: string
        bossBW:
          description: bossBW is the world code prefix for Boss number
          example: "04"
          type: string
        campaigns:
          description: Campaigns holds campaign data for a discount
          items:
            properties:
              endDate:
                description: EndDate is the date when this campaign expires
                example: 2026-07-22
                format: date
                type: string
              id:
                description: id of a campaign
                example: "6933"
                type: string
              startDate:
                description: StartDate is the date when this campaign becomes valid
                example: 2026-07-16
                format: date
                type: string
            type: object
          type: array
        cumulusPoints:
          description: CumulusPoints one receives with this Discount
          properties:
            isRelative:
              description: Relative describes if Cumulus Points value is relative or absolute
                (e.g. 20X points or 20 points)
              example: true
              type: boolean
            value:
              description: Value for Cumulus Points (e.g. 20)
              example: 20
              type: integer
          type: object
        description:
          description: Description is a short text about the Discount (e.g. Alle Trauben
            im Offenverkauf)
          example: Duftkerze im Glas
          type: string
        disclaimer:
          description: Disclaimer contains text about exceptions, validity and special
            conditions
          example: ""
          type: string
        discountId:
          description: ID is the Discount identifier
          example: "1042893"
          type: string
        distributionChannel:
          description: DistributionChannel describes by which retailer this Discount is
            accepted (e.g. SM/VM for supermarkets, MR for Migros Restaurant,
            ...)
          properties:
            id:
              description: ID is a technical ID of the DistributionChannel. See
                translateDistribution below for values.
              example: ""
              type: string
            name:
              description: Name contains the translated human-readable name
              example: ""
              type: string
          type: object
        events:
          $ref: "#/components/schemas/events"
        hint:
          description: Hint is an example of a reduction in text form
          example: ""
          type: string
        image:
          description: Image is the main image referring to the Discount in JPG format
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        insteadOf:
          description: InsteadOf is used for specific use-cases, where we need another
            word for "statt"
          example: ""
          type: string
        isCollective:
          description: Collective describes whether this Discount is applied to more than
            one product (e.g. alle Fondues)
          example: true
          type: boolean
        isHighPerformer:
          description: HighPerformer describes whether this Discount has high importance
            due to high sales volume
          example: true
          type: boolean
        lastImportedDate:
          description: LastImported is a timestamp of last processing of data
          example: 2024-05-15T04:17:15.000973132+02:00
          format: date-time
          type: string
        logo:
          description: Logo image related to this Discount (e.g. logo for "Migros Bio" or
            for "UTZ Certified")
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        minimumPieces:
          description: MinimumPieces describes how many pieces must be bought for the
            Discount to apply
          properties:
            prefix:
              description: Prefix is a text to be displayed before the Value
              example: ab
              type: string
            value:
              description: Value is the amount of pieces
              example: 2
              type: integer
          type: object
        originalPrice:
          description: OriginalPrice is the non-discounted price. This is based on
            discount reference product.
          example: 11
          type: number
        price:
          description: Price is the discounted price. This is based on discount reference
            product price.
          example: 5.5
          type: number
        priority:
          description: Priority tells us which Discount should be used if there are
            multiple Discounts active at the same time for the same product. The
            lower the number, the higher the priority.
          example: 6
          type: integer
        publicationDate:
          description: PublicationDate describes when this Discount is allowed to be
            published to customers
          example: 2022-12-25T00:00:00+01:00
          format: date-time
          type: string
        reduction:
          description: Reduction contains information about the price reduction
          properties:
            amount:
              description: Can either be an absolute price in CHF or a relative percentage by
                which the product's price will be reduced.
              example: 1.22
              type: number
            relative:
              description: Defines if the Amount is a relative (percentage) or absolute (CHF)
                value.
              example: false
              type: boolean
            suffix:
              description: The translations for a string after the price. E.g. 10 %
                günstiger/de réduction/di riduzione.
              example: günstiger
              type: string
            unit:
              description: Unit of Amount, either CHF or %
              example: CHF
              type: string
          required:
            - suffix
          type: object
        reductionTypeId:
          description: ReductionTypeID tells us whether it's a 01=relativ, 02=absolut, ...
            reduction
          example: "05"
          type: string
        referenceProductId:
          description: ReferenceProductID is the main Product which this Discount refers
            to ("Hauptwerbeartikel")
          example: "243140560000"
          type: string
        region:
          description: Region defines the regional context (e.g. national, gmzh, gmaa,
            gmlu, ...)
          example: national
          type: string
        roleId:
          description: RoleID holds further information regarding the "type" of a Discount
            (e.g. high-performer, weekend-promotion, liquidation)
          example: "1000000008"
          type: string
        roleLabel:
          description: RoleLabel is a descriptive string for the value in RoleID
          example: Sortimentskompetenz (SORT)
          type: string
        secondaryImage:
          description: SecondaryImage is the secondary image referring to the Discount
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        secondaryLogo:
          description: SecondaryLogo image related to this Discount (e.g. logo for "BIO
            SUISSE" etc.)
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        signet:
          description: Signet is the image related to Cumulus Discount (e.g. image for
            "20x Cumulus")
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        transparent:
          description: Transparent is the main image referring to the Discount in PNG format
          properties:
            description:
              example: Deskriptiver Text des Bilds
              type: string
            hexColor:
              example: "#ff6600"
              type: string
            stack:
              example: https://migros-dev.rokka.io/{stack}/639899686120c3f0b71b244ece8b20fc66ba14d7.png
              type: string
            vector:
              example: https://migros-dev.rokka.io/original/9def306d8cab1a81bc6eb025be80ed780f895b22.svg
              type: string
          type: object
        type:
          description: Type describes which type of discount we got (e.g. aktion, neuheit,
            ...)
          example: aktion
          type: string
        typeId:
          description: TypeID is the discount type identifier (e.g. 001, 005, ...)
          example: ""
          type: string
        typeLabel:
          description: TypeLabel is the name for discount TypeID
          example: NUG Nimm X Artikel
          type: string
        validFromDate:
          description: ValidFrom is the date when this Discount becomes valid/active
          example: 2024-05-07T00:00:00+02:00
          format: date-time
          type: string
        validToDate:
          description: ValidTo is the date till this Discount is valid/active
          example: 2024-05-13T23:59:59+02:00
          format: date-time
          type: string
      required:
        - discountId
      type: object
    events:
      description: Events holds event data for a discount
      items:
        properties:
          endDate:
            description: EndDate is the date when this event expires
            example: 2026-07-22
            format: date
            type: string
          id:
            description: id of an event
            example: "609237"
            type: string
          isMasterAssignment:
            description: isMasterAssignment defines if the Event is the Main event. The
              MasterEvent flag indicates, that this event promotion is
              responsible for the online communication, which means it should be
              shown on migros.ch.
            example: true
            type: boolean
          productID:
            description: productID is the ID of the product that is paired to the event.
            example: "101712200000"
            type: string
          startDate:
            description: StartDate is the date when this event becomes valid
            example: 2026-07-16
            format: date
            type: string
          tactic:
            description: >-
              tactic is a subcategory of TacticType, represented by a numeric
              ID. This ID corresponds to specific options, such as "13
              Wochenflyer" under "80 Print" or "4 POP-Flyer & Kataloge" under
              "84 Beilagen/Flyer".

              Since an event tactic is a subcategory of an event tactic type,
              they should be used together. Knowing only the event tactic is
              pretty useless because it can be a subcategory of multiple event
              tactic types, that have nothing in common. For example event
              tactic '02' can be 'Anzeige' for event tactic type '01 Drucken' or
              'Instore-TV' for tactic type '82 Video'.
            example: "52"
            type: string
          tacticType:
            description: >-
              tacticType represents the advertising strategy for an event. It
              specifies the method as a numeric ID, for example, '80' for
              'Print' or '84' for 'Beilagen/Flyer'.

              Since an event tactic is a subcategory of an event tactic type,
              they should be used together. For instance, an event tactic with
              ID '02' can be a subcategory of multiple event tactic types, which
              have nothing in common.
            example: "900"
            type: string
        type: object
      type: array
  securitySchemes:
    Kong-Api-Key:
      description: Kong key-auth authentication
      in: header
      name: X-Api-Key
      type: apiKey
```
