Danish FMCG · catalog API + shelf intelligence

Ground truth for every shelf in Denmark.

Every current offer from 20 Danish chains — Netto, Rema 1000, Føtex, Bilka, Lidl, Kvickly and 14 more — in one API, served as REST and webhooks. The data your team has been hand-collecting in spreadsheets, in one place, updated as each chain publishes.

6,096live offers
20chains tracked
141curated products
2,741stores covered
AI-generated illustration of a store manager, a store employee and a customer sharing a local shelf price togetherAI-generated image
Tracking live offers across
BilkaBilka
FøtexFøtex
KvicklyKvickly
LidlLidl
Scandinavian ParkScandinavian Park
fakta Tysklandfakta Tyskland
FleggaardFleggaard
PøtzschPøtzsch
LøvbjergLøvbjerg
SuperBrugsenSuperBrugsen
NettoNetto
CalleCalle
MenyMeny
Coop 365discountCoop 365discount
Rema 1000Rema 1000
SparSpar
BorderShopBorderShop
Dagli'BrugsenDagli'Brugsen
Min KøbmandMin Købmand
LET-KØB
Two products, one source of truth

Build with the data, or read it in your dashboard.

Catalog API

For engineers building grocery apps and pricing tools.

One REST endpoint per resource. Webhook events when a price or assortment changes. Normalized categories across every chain.

GET/api/v1/public/catalog/products/5741000155257200 OK
{
  "ok": true,
  "data": {
    "id": "af5a5489-d551-42c4-9dae-3438cbc518df",
    "canonicalName": "Pepsi Max Lime 50cl flaske",
    "ean": "5741000155257",
    "variant": "lime",
    "volumeMl": 500,
    "unitCount": 1
  },
  // prices: GET /products/{id}/offers
}
  • REST + webhooks · OpenAPI spec
  • Normalized GTINs and categories
  • Live distribution across every chain we cover
Shelf Intelligence

For category and pricing teams at FMCG brands.

See your brand the way the market does — every price, promo and catalog placement across every covered chain, from the same live data behind our API. In-store signals like share-of-shelf are in development.

  • Price and promo tracking across every covered chain
  • Price history for your products, day by day
  • Catalog presence: where your brand is (and isn't) on offer
Built on the API

From “these five products are missing” to a live site.

Christian mailed us about a gap in the catalog, pulled his first data the same day, and shipped a price board that keeps a school-camp fund topped up.

“Every month I buy 6–10 trays of soft drinks for the teachers’ lounge at my son’s school, and the surplus goes to his school camp. I wanted to find the cheapest offer across every chain, so the surplus ends up as big as possible.”

“Version 1 is live, with data from your API.”

Christianboxie.dk Translated from Danish
Coverage

Every chain we're live on.

As of 2026-10-12.

ChainStoresLive offersStatus
Bilka19991Live
Føtex119767Live
Kvickly62538Live
Lidl171511Live
Scandinavian Park1504Live
fakta Tyskland3379Live
Fleggaard6367Live
Pøtzsch1324Live
Løvbjerg18268Live
SuperBrugsen217227Live
Netto588202Live
Calle6193Live
Meny118148Live
Coop 365discount320147Live
Rema 1000438137Live
Spar138105Live
BorderShop2104Live
Dagli'Brugsen26772Live
Min Købmand17268Live
LET-KØB6936Live
Who builds on it

Four teams, four different reasons.

Pricing

Track competitor prices live across every chain.

Query current prices over REST, or get a webhook the moment a price moves — instead of weekly manual checks.

  • 20chains
  • 6,096live offers
  • REST+ webhooks
Get API access
Category

See your category across every chain’s catalog.

Which products each chain lists, and at what price — rebuilt from every catalog we ingest. No store visits, no spreadsheets.

  • 20chains
  • 2,741stores
  • catalogsourced
Get API access
Developers

Ship a price-comparison app in days, not quarters.

One REST endpoint per resource, official SDKs, and webhooks for changes. The catalog is already normalized across chains.

  • REST+ webhooks
  • SDKsofficial
  • 6,096live offers
Get API access
Analysts

Alternative data on Danish FMCG pricing.

Price and assortment across every chain, straight from the API — with per-product price history. No scraping, no store panels.

  • 20chains
  • 6,096live offers
  • RESTAPI access
Get API access
Official SDKs

Typed clients for TypeScript, Python and Go.

Hand-written, idiomatic clients over the same public Catalog API — typed models, cursor pagination and typed errors, one call away.

TypeScript@shelfatlas/catalog-client
npmTerminal
npm install @shelfatlas/catalog-client
Pythonshelfatlas
pipTerminal
pip install shelfatlas
Goshelfatlas-go
goTerminal
go get github.com/SlambertDK/shelfatlas-go
Start mapping the shelf

Every current offer, every chain — one call away.

Free to start across every chain. No credit card.