This repository implements the publicly accessible (unauthenticated) API endpoints used by the ALDI SÜD website for querying current offers, products, categories and stores.
This is a Go library. There are no dependencies, so you can easily compile it yourself. Python bindings are possible if there is interest.
Use the library: go get github.com/ByteSizedMarius/aldiscount
import aldi "github.com/ByteSizedMarius/aldiscount/pkg"
ctx := context.Background()
promos, err := aldi.New().CurrentOffers(ctx)
if err != nil {
return err
}
for _, p := range promos {
fmt.Println(p) // 14.08.2026 - 15.08.2026: 103 articles
for _, prod := range p.Products {
fmt.Println(" ", prod) // EHRMANN Grand Dessert 190 g - 0,49 EUR (2,58 EUR/1 kg)
}
}Or install the CLI:
- Install via Go:
go install github.com/ByteSizedMarius/aldiscount/cmd/aldiscount@latest - Or clone and build:
go build -o aldiscount ./cmd/aldiscount
Example: Offers for a single day:
$ aldiscount offers -date 2026-08-14
BBQ Marinierte Hähnchensteaks 550 g - 4,99 EUR (statt 6,29 EUR) [Frischekracher]
MILSANI Emmentaler am Stück 400 g - 2,79 EUR (statt 3,49 EUR) [Gekühlte Produkte]
CUCINA NOBILE Geriebener Hartkäse 250 g - 3,49 EUR (13,96 EUR/1 kg) [Vorräte]
...
aldi-sued.de is a single-page app that talks to a JSON API, and this library talks to the same one.
Offers start on several days throughout the week, so they are keyed by their start day. Nothing lists which days carry offers, so a date range is swept. The library picks that range automatically and drops days that have already expired.
ALDI only publishes a start date. Promotion.ValidUntil fills in the end, since every offer runs through the Saturday of its week.
This project is not affiliated with, endorsed by, or sponsored by ALDI. "ALDI" is a registered trademark of its respective owner.
This is an unofficial client based on publicly observable network traffic from the ALDI SÜD website. It is provided for educational and research purposes. The underlying API is undocumented and may change or break at any time without notice.
Every call this library makes is a GET, so nothing here can change state at ALDI. Use of this software is at your own risk. Users are responsible for ensuring their usage complies with applicable terms of service.
Important
The API is rate-sensitive. The client paces its requests and retries dropped ones.
aldiscount: console client for the ALDI SÜD product API
Usage:
aldiscount <command> [flags]
Commands:
dates list days that have offers
offers list offer articles for one day or a window
themes list the offer themes of one day, with counts
search free-text search of all articles
categories print the category tree
stores list stores, or those near a point
Global flags:
-json print raw json instead of text
-store service point id to scope to (default: a fallback store)
dates:
-from, -to window as YYYY-MM-DD (default: the current and coming week)
offers:
-date a single day as YYYY-MM-DD
-from, -to a window instead, same default as dates
-no-themes skip theme tagging, much faster at one request per day
themes:
-date a single day as YYYY-MM-DD
search:
-q search term
stores:
-lat, -lon centre point
-radius km around it (default 10)
Examples:
aldiscount dates
aldiscount offers -date 2026-08-14
aldiscount themes -date 2026-08-14
aldiscount search -q kaffee
aldiscount stores -lat 49.48 -lon 8.47 -radius 25
Feel free to open github issues for suggestions, questions, bugs. PRs welcome.