Spring til indhold

Pris-API

Prisdata på supermarkedspriser.dk er resultatet af egen indsamling, matching og kvalitetssikring. API'et er derfor ikke åbent: adgang kræver en nøgle, som jeg kun udsteder efter individuel aftale. Der udstedes som udgangspunkt ikke nye nøgler i øjeblikket. Kald uden gyldig nøgle afvises med 401.

Vilkår for API-adgang

  • Adgang gives kun med en nøgle udstedt af supermarkedspriser.dk efter skriftlig aftale.
  • Nøglen er personlig for aftaleparten og må ikke deles eller videregives.
  • Data må ikke videredistribueres, videresælges eller gøres tilgængelige for tredjepart, hverken rå eller bearbejdet.
  • Data må ikke bruges til at opbygge, træne eller berige et konkurrerende produkt, en konkurrerende tjeneste eller et selvstændigt datasæt.
  • Lokal cachning må højst ske i 24 timer, medmindre andet er aftalt skriftligt.
  • Ved enhver offentlig visning skal supermarkedspriser.dk angives som kilde med link.
  • Nærings- og mærkedata stammer fra Open Food Facts og er underlagt ODbL.
  • Adgang kan begrænses eller tilbagekaldes uden varsel. Priser leveres uden garanti og kan være forsinkede.

Forespørgsler om adgang kan sendes via kontaktsiden. Beskriv formål, omfang og forretningsmodel. Jeg forbeholder mig at afvise uden begrundelse.

Teknisk reference (kræver nøgle)

Nøglen sendes som Authorization: Bearer smp_… eller i headeren X-Api-Key. Rate-limit: 120 kald/minut.

Søg i kataloget

GET https://supermarkedspriser.dk/api/v1/produkter?q=smør&limit=20
Authorization: Bearer smp_…

Parametre: q (min. 2 tegn), limit (1–50, standard 20).

Slå en vare op (GTIN eller slug)

GET https://supermarkedspriser.dk/api/v1/produkt/5701234567890
Authorization: Bearer smp_…
{
  "attribution": "…",
  "currency": "DKK",
  "product": { "name": "…", "slug": "…", "gtin": "…", "lowest_price": 18.95, "url": "…" },
  "prices": [
    { "retailer": "Netto", "price": 18.95, "unit_price": 94.75, "unit": "kr/kg",
      "is_offer": false, "price_type": "hyldepris", "border_shop": false,
      "source": "api", "observed_at": "2026-10-06T04:12:00+02:00", "valid_to": null }
  ]
}

Læs price_type før du sammenligner. Den siger hvad slags pris rækken er, og de tre slags kan ikke stilles side om side:

  • hyldepris: kædens egen pris fra dens webshop eller API. Det er den, man kan sammenligne med en pris i en butik.
  • leveringspris: hentet fra kædens butik på Wolt, fordi kæden ikke udstiller hyldepriser. Den ligger typisk over prisen i butikken og kommer fra én butik.
  • avistilbud: kampagnepris fra den trykte tilbudsavis. Gælder til valid_to og er ikke en normalpris.
  • indberettet: set i butikken og dokumenteret med kvittering eller prisskilt, bekræftet af to uafhængige bidragydere.
  • medlemspris: kræver kædens klub eller app (Netto+, Coop-appen, Lidl Plus). Den slår de øvrige: en Lidl Plus-pris er først og fremmest en pris, man ikke kan få uden appen.

Brug counts, hvis du selv regner. Den er false for medlemspriser og grænsebutikker, altså priser de færreste kan gå ind og få. Vi holder dem ude af vores egne tal, og de bør også holdes ude af dine: ellers sammenligner du din hyldepris med en andens medlemsrabat.

border_shop: true er en butik ved den dansk-tyske grænse; de kan ikke handles af alle og tæller aldrig med i hverken billigste pris eller gennemsnit. Vi svarer kun med priser, en indsamling har bekræftet inden for tre døgn. Står en kæde ikke i svaret, har vi ingen aktuel pris på den vare.