Danish FMCG · catalog API + shelf intelligence

Ground truth for every shelf in Denmark.

One canonical catalog of every SKU, price and shelf share across Netto, Rema 1000, Føtex, Bilka, Coop and Lidl — served as REST and webhooks. The data your team has been hand-collecting in spreadsheets, in one place, always fresh.

5,937live offers
2,672stores covered
20chains tracked
Tracking live offers across
fakta Tyskland
Bilka
Lidl
Scandinavian Park
Coop 365discount
Føtex
Fleggaard
Netto
CITTI
Kvickly
Calle
Pøtzsch
Løvbjerg
BorderShop
SuperBrugsen
Meny
Rema 1000
Spar
Dagli'Brugsen
Min Købmand
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/v1/products/5740900403214200 OK
{
  "gtin": "5740900403214",
  "brand": "Coca-Cola",
  "name": "Coca-Cola Zero 1,5 L",
  "category": "beverages.carbonated",
  "prices": [
    {
      "chain": "netto",
      "price": 19.95,
      "observed_at": "…09:42Z"
    },
    {
      "chain": "rema",
      "price": 20.00,
      "observed_at": "…09:38Z"
    },
    {
      "chain": "foetex",
      "price": 21.50,
      "observed_at": "…09:31Z"
    }
  ]
}
  • 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
Coverage

Every chain we're live on.

As of 2026-07-28.

ChainStoresLive offersStatus
fakta Tyskland3706Live
Bilka19680Live
Lidl171644Live
Scandinavian Park1555Live
Coop 365discount320501Live
Føtex119387Live
Fleggaard6351Live
Netto588239Live
CITTI1227Live
Kvickly62199Live
Calle6188Live
Pøtzsch1182Live
Løvbjerg18181Live
BorderShop2178Live
SuperBrugsen217170Live
Meny118145Live
Rema 1000438122Live
Spar138116Live
Dagli'Brugsen26786Live
Min Købmand17280Live
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
  • 5,937live 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,672stores
  • 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
  • 5,937live 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
  • 5,937live 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 SKU, every chain, every price — one call away.

Free to start across every chain. No credit card.