Madpris stiller en offentlig JSON API til rådighed, så du kan hente priser, produkter og statistik direkte fra vores database. Alle endpoints er læse-adgang (GET) og kræver ingen autentifikation.
Base URL: https://madpris.gratis.dk
Bemærk: Alle svar er i JSON-format med
Content-Type: application/json og CORS-headeren
Access-Control-Allow-Origin: * — du kan derfor kalde
API’et direkte fra browser-JavaScript.
Returnerer alle tilgængelige filtermuligheder: butikker, kategorier, mærker, underkategorier, nationale oprindelser og prisinterval.
Ingen.
curl "https://madpris.gratis.dk/api/filters"
{
"stores": [
{"id": "rema1000", "name": "Rema 1000"},
{"id": "netto", "name": "Netto"},
...
],
"categories": [
"Mejeri", "Kød", "Grønt", ...
],
"brands": [
"Arla", "Thise", "Naturmælk", ...
],
"subcategories": {
"Mejeri": ["Mælk", "Ost", "Yoghurt", ...],
...
},
"nationalities": [
"Dansk", "Italiensk", "Tysk", ...
],
"price_range": {"min": 0.0, "max": 999.0}
}
Overordnet statistik over databasen: antal produkter, butikker, kategorier, seneste opdatering, samt fordeling på butikker.
Ingen.
curl "https://madpris.gratis.dk/api/stats"
{
"total_products": 45231,
"total_stores": 19,
"total_categories": 48,
"last_updated": "2026-07-22T23:05:00Z",
"stores": {
"rema1000": 5230,
"netto": 4891,
...
}
}
Returnerer produkter med de største prisfald i databasen. Et prisfald beregnes som forskellen mellem den aktuelle pris og en tidligere højere pris.
| Parameter | Type | Standard | Beskrivelse |
|---|---|---|---|
| sort | string | "drop_pct" | Sortering: drop_pct (procentvist fald) eller drop_abs (absolut fald i kroner) |
| page | integer | 1 | Sidenummer (50 produkter per side) |
curl "https://madpris.gratis.dk/api/price-drops?sort=drop_pct&page=1"
{
"total": 872,
"page": 1,
"page_size": 50,
"total_pages": 18,
"products": [
{
"group_id": 1423,
"name": "Økologisk hakket oksekød 8-12%",
"store": "rema1000",
"current_price": 28.0,
"previous_price": 42.0,
"drop_pct": 33.3,
"drop_abs": 14.0,
"category": "Kød",
...
},
...
]
}
Henter prishistorik for et bestemt produkt over tid. Du kan slå op enten via group_id (anbefalet) eller via kombinationen store + name.
| Parameter | Type | Standard | Beskrivelse |
|---|---|---|---|
| group_id påkrævet* | integer | — | Gruppe-ID for produktet (foretrækkes) |
| store påkrævet* | string | — | Butik-id (f.eks. "netto", "rema1000"). Kun hvis group_id ikke angives |
| name påkrævet* | string | — | Produktnavn. Kun hvis group_id ikke angives |
* Enten group_id alene, eller både store og name sammen.
curl "https://madpris.gratis.dk/api/price-history?group_id=1423"
{
"group_id": 1423,
"name": "Økologisk hakket oksekød 8-12%",
"store": "rema1000",
"history": [
{"date": "2026-07-01", "price": 42.0},
{"date": "2026-07-08", "price": 38.0},
{"date": "2026-07-15", "price": 35.0},
{"date": "2026-07-22", "price": 28.0}
]
}
Slår et produkt op via dets EAN-stregkode (GTIN). Returnerer produktdetaljer på tværs af alle butikker hvis tilgængeligt.
| Parameter | Type | Standard | Beskrivelse |
|---|---|---|---|
| ean påkrævet | string | — | EAN-stregkode, minimum 8 cifre (f.eks. 5701234567890) |
curl "https://madpris.gratis.dk/api/product-by-ean?ean=5711952000123"
{
"ean": "5711952000123",
"name": "Arla Letmælk 1L",
"brand": "Arla",
"category": "Mejeri",
"stores": [
{
"store": "netto",
"price": 14.95,
"store_product_name": "Arla Letmælk 1 liter",
"url": null
},
{
"store": "rema1000",
"price": 14.50,
"store_product_name": "Arla Letmælk 1L",
"url": null
}
]
}
Søger efter produkter på tværs af butikker og returnerer sammenlagte resultater — identiske produkter fra forskellige butikker slås sammen til én post med priser fra hver butik. Dette er det primære søge-endpoint som hjemmesiden selv bruger.
| Parameter | Type | Standard | Beskrivelse |
|---|---|---|---|
| q | string | "" | Søgeord (fritekst) |
| stores | string | "" | Komma-separerede butik-id’er (f.eks. "netto,rema1000") |
| category | string | "" | Kategorinavn (f.eks. "Mejeri") |
| subcategory | string | "" | Underkategori (f.eks. "Mælk") |
| brand | string | "" | Mærkenavn |
| sort | string | "unit_price" | Sortering: unit_price, name, price, store |
| order | string | "asc" | Rækkefølge: asc eller desc |
| min_price | number | — | Minimumspris (f.eks. 10) |
| max_price | number | — | Maksimumspris (f.eks. 50) |
| on_sale | string | "" | Kun tilbudsvarer: "1" for ja |
| organic | string | "" | Kun økologisk: "1" for ja |
| sugarfree | string | "" | Kun sukkerfri: "1" for ja |
| lactosefree | string | "" | Kun laktosefri: "1" for ja |
| glutenfree | string | "" | Kun glutenfri: "1" for ja |
| brand_grouping | string | "1" | Gruppér efter mærke: "0" for slået fra |
| size_grouping | string | "1" | Gruppér efter størrelse: "0" for slået fra |
| nationality_grouping | string | "1" | Gruppér efter oprindelse: "0" for slået fra |
| multi_store | string | "0" | Kun produkter med flere butikker: "1" |
| page | integer | 1 | Sidenummer (50 produkter per side) |
curl "https://madpris.gratis.dk/api/merged-products?q=m%C3%A6lk&category=Mejeri&sort=unit_price&order=asc&page=1"
{
"total": 342,
"page": 1,
"page_size": 50,
"total_pages": 7,
"products": [
{
"group_id": 1423,
"name": "Sødmælk",
"brand": "Arla",
"category": "Mejeri",
"unit": "L",
"unit_size": 1.0,
"unit_price": 14.95,
"nationality": "Dansk",
"ean": "5711952000123",
"organic": true,
"store_products": [
{
"store": "netto",
"store_product_name": "Arla Sødmælk 1L",
"price": 14.95,
"unit_price": 14.95,
"on_sale": false,
"url": null
},
{
"store": "rema1000",
"store_product_name": "Arla Sødmælk 1 liter",
"price": 14.50,
"unit_price": 14.50,
"on_sale": false,
"url": null
}
]
},
...
]
}
Søger efter rå produkter — hver butiks variant returneres som en selvstændig post. Brug /api/merged-products hvis du vil have produkter slået sammen på tværs af butikker.
| Parameter | Type | Standard | Beskrivelse |
|---|---|---|---|
| q | string | "" | Søgeord (fritekst) |
| stores | string | "" | Komma-separerede butik-id’er |
| category | string | "" | Kategorinavn |
| brand | string | "" | Mærkenavn |
| sort | string | "unit_price" | Sortering: unit_price, name, price, store |
| order | string | "asc" | Rækkefølge: asc eller desc |
| min_price | number | — | Minimumspris |
| max_price | number | — | Maksimumspris |
| on_sale | string | "" | Kun tilbudsvarer: "1" |
| organic | string | "" | Kun økologisk: "1" |
| sugarfree | string | "" | Kun sukkerfri: "1" |
| lactosefree | string | "" | Kun laktosefri: "1" |
| glutenfree | string | "" | Kun glutenfri: "1" |
| page | integer | 1 | Sidenummer (50 produkter per side) |
curl "https://madpris.gratis.dk/api/products?q=hakket+okse&sort=price&order=asc"
{
"total": 28,
"page": 1,
"page_size": 50,
"total_pages": 1,
"products": [
{
"id": 18932,
"store": "netto",
"name": "Hakket oksekød 8-12%",
"brand": "Danish Crown",
"category": "Kød",
"price": 28.0,
"unit": "g",
"unit_size": 500,
"unit_price": 56.0,
"ean": "5711952123456",
"organic": false,
"on_sale": true,
"url": null
},
...
]
}
Madpris API — madpris.gratis.dk