Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kaufland Discounts

🇬🇧 English | 🇩🇪 Deutsch

Small, unofficial Python client for current offers from physical Kaufland stores.

The project can be used as a CLI or directly as a small API wrapper in Python code. It explicitly targets Kaufland stores and their offers, not the Kaufland online marketplace.

This repository does not contain credentials. Required values must be provided locally through .env.

What does it do?

  • Search Kaufland stores
  • Display store information
  • Load current offers for a store
  • Print results as a simple CLI list

Example:

uv run main.py Frankfurt --limit 10

Example output:

Kaufland Frankfurt/Main-Griesheim (DE1483)
Mainzer Landstraße 683, 65933 Frankfurt am Main, DE
50.0998058, 8.5872564
069/5800263-0
MobilePayment, LoyaltyProgram, LoyaltyPointsProgram, LoyaltyCoupons, AdBanner, PartnerBenefits, KScanDZ, Xtra
Open: Mon, Tue, Wed, Thu, Fri, Sat
Closed: Sun
Offers: 56
  MÜLLER:       Kefir oder Ayran                     |     0.88 | (1 kg = 1.76)      | loyalty    0.79* | 2026-04-30 – 2026-05-06
  ZOTT:         Zottarella Classic-Rolle             |     2.22 | Abtropfgewicht ... | loyalty    1.99* | 2026-04-30 – 2026-05-06
  NESTLÉ ...    Eisgenuss                            |     1.99 | (1 l = 2.37 - 7... | loyalty    1.79* | 2026-04-30 – 2026-05-06
  DOVGAN:       Plombir Eis                          |     2.79 | (1 l = 3.58 - 8... | loyalty    2.49* | 2026-04-30 – 2026-05-06
  YOUCOOK:      Fertiggericht                        |     3.79 | (1 kg = 9.03)      | loyalty    3.49* | 2026-04-30 – 2026-05-06
  POPP:         Feinkostsalat                        |     1.89 | (1 kg = 4.73)      | loyalty    1.69* | 2026-04-30 – 2026-05-06
  MILKA:        Pralinés oder Hauchzarte Herzen      |     1.69 | (1 kg = 13.00 -... | loyalty    1.49* | 2026-04-30 – 2026-05-09
  LAMBERTZ:     Coco-Fleur, Balena oder Divina       |     1.49 | (1 kg = 11.92 -... | loyalty    1.29* | 2026-04-30 – 2026-05-09
  SÖHNLEIN:     Brillant Sekt oder weinhaltiges G... |     2.69 | (1 l = 3.59)       | loyalty    2.49* | 2026-04-30 – 2026-05-09
  BECK'S:       Pils oder Gold                       |    10.99 | (1 l = 1.10)       | loyalty    9.99* | 2026-04-30 – 2026-05-06

Scope

This repository intentionally contains only the small part required for store and offer data.

Not included:

  • Login flows and user/profile management
  • Loyalty balances, coupons, partner benefits
  • Marketplace features
  • Anything related to payments
  • Shopping lists (sync), scan apps / self-checkout carts
  • Offer alerts
  • ...

The project is intended to be read-only.

Installation

Requirements:

  • Python 3.12+
  • uv or regular pip

With uv:

uv sync

Or with pip:

pip install -e .

Configuration

The project uses pydantic-settings and loads optional values from a local .env.

Create/copy .env first and add the required values:

cp .env.example .env

References

The implementation is based on publicly available live client and test references around the Kaufland app API, including an archived SchwarzIT reference:

This repository intentionally does not contain embedded auth values.

CLI Usage

Search for a store and show offers:

uv run main.py Frankfurt

Show more offers:

uv run main.py Frankfurt --limit 20

Set a different country:

uv run main.py Turek --country PL

Python Usage

from main import Kaufland

with Kaufland() as kaufland:
    store = kaufland.find_store("Frankfurt")
    offers = kaufland.offers(store.store_id)

print(store.title)
print(len(offers))

Inspiration

Inspired by torbenpfohl/rewe-discounts.

I wanted to build a small automation that gives me an overview of current offers from different stores nearby without having to open several separate apps.

More small API wrappers for other stores, for example Edeka, are planned or already exist as PoCs.

Notes

This project is unofficial and can stop working at any time if Kaufland changes the app API or its response format. Please do not fire large amounts of automated requests. The tool is intended for small local queries.

License

This project is licensed under the Apache-2.0 license. See LICENSE for details.

About

Unofficial read-only Python client for current Kaufland store offers.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages