Migros - Ein M besser

Nachhaltig sein:

Wir reden nicht nur drüber, wir machen es. Mehr erfahren!

Migros Data Access

Logins for Data Access

You can get your credentials by filling out this form. We will not be able to hand-out the credentials before Friday Sept. 24th, 17:00.

Migros Product Data

The product data consists of a ZIP file (7z) with data of Migros products in JSON format.
The files within the ZIP file can be found in `./products/de/` and `./products/en`, and each file represents the data for one product.

The files from the folder ‘/de/’ contain the product data with german texts, whereas the folder ‘/en/’ contain the product data with english texts, as far as there are English texts available. Mostly, when no English text is available, the texts are in German as a fallback.
The filename is the ID of the product.

Model Structure

The structure of the JSON in each file is defined in the file openapi.yaml as an OpenAPI specification.
You can visualize this file on if you like.

Not every product has all the fields described in the specification.
There might also be fields in the specification which no product has set.

Data for M-Check sustainability scale

Every food product from a Migros-owned brand has some M-Check sustainability data. Those data can be found in the object «m_check2», and it includes its CO2 footprint, including the CO2 percentage generated on production, packaging and transportation. Additionally, it also contains a “animal welfare” rating. 

Here is a visual representation of those data:



You can use this data by e.g. importing it into a database or document storage.

Migros Shopping Cart Data

The shopping cart data consists of 19 CSV files with shopping cart / sales data from the past 19 months from anonymized customers. 

Each file is a sample of the sales of one month.

Each file contains 10 columns:

  • `YYYYMM`: year and month
  • `KundeID`: anonymised household number 
  • `WarenkorbID`: a per-file, per-household sequence number
  • `ProfitKSTID`: shop ID
  • `ProfitKSTNameD`: shop name
  • `GenossenschaftCode`: cooperative ID
  • `TransaktionDatumID`: date of purchase in the form YYYY-MM-DD
  • `TransaktionZeit`: time of purchase in the form (H)HMMSS 
  • `ArtikelID`: Migros product number
  • `Menge`: amount

The first column `YYYYMM` reflects the filename and is year and month.

In total the files contain the purchases of 10'000 households. Each household is uniquely (even accross files) identified by the `KundeID`. Each shopping cart is uniquely identified by the combined key YYYYMM-KundeID-WarenkorbID.

The columns `ProfitKSTID` and `ProfitKSTNameD` contain the ID and the name of the Shop. `GenossenschaftCode` is the 4-letter-cooperative code spelled out.

The column `TransaktionZeit` contains the local time (wall clock) in the format HHMMSS or HMMSS if before 10:00:00h.

The column `ArtikelID` contains the article ID/Migros product number as used in the Product data.

The columns `Menge` contains the amount bought: This might be in pieces or kilogram, depending on the article (meter or square meter are possible too but both are uncommon).