IKEA API: priser, matvaror och lagersaldo från ikea.com/se i JSON
API:et läser den svenska webbutiken på ikea.com/se så som en kund ser den — namn, pris i kronor, sänkta priser med giltighetstid, IKEA Family-pris när det finns, mått, betyg och hur många exemplar som står i varje varuhus — och ger tillbaka allt i JSON-format. Skicka med `country: "se"` i varje anrop, annars svarar den amerikanska butiken med priser i dollar. För leverantörer och partner som vill koppla upp sig mot IKEA:s egna system är det här fel verktyg, och det går inte att beställa via API:et; det läser bara det publika sortimentet och lagersaldot.
Endpoints
| endpoint | Vad som kommer tillbaka | Obligatoriska |
|---|---|---|
| search | Sök på ord, serienamn (KIVIK, BILLY) eller artikelnummer. Varje rad har pris och valuta, pristyp (ordinarie, nytt lägre pris, tidsbegränsat erbjudande, utgående), föregående pris, IKEA Family-pris i eget fält, betyg, färger och kategori. Sortering och filter är IKEA:s egna. | query |
| category | Alla produkter i en kategori, till exempel `fu003` (Soffor & soffgrupper), sida för sida och med samma fält och filter som sökningen. | category_id |
| categories | Kategoriträdet en nivå i taget, med antal produkter per kategori. Utan `category_id` börjar det vid avdelningarna högst upp. | alla valfria |
| product/detail | Hela produktbladet via artikelnummer eller produktens URL: alla priser var för sig, giltighetsdatum för en prissänkning, beskrivning, designer, mått, varje paket med mått och vikt, material, skötselråd, monteringsanvisningar, garanti och öppet köp. | product_id |
| product/availability | Lagersaldo för upp till 10 artiklar i de svenska varuhusen: antal, status, väntade påfyllningar med datum, samt om hemleverans och Klicka & hämta är möjliga. För KIVIK-soffan i vårt test svarade 19 varuhus, från Haparanda till Malmö - Svågertorp. | alla valfria |
| product/reviews | Kundrecensioner sida för sida: stjärnor, delbetyg, verifierat köp och IKEA:s svar. Som standard bara recensioner skrivna i Sverige; `scope: "other_markets"` ger resten. | product_id |
| stores | De svenska varuhusen med id, namn och koordinater. Id:t är det som `product/availability` tar emot i `store_id`. | alla valfria |
| suggest | Förslagen som visas när man skriver i IKEA:s sökruta: sökord, kategorier och produkter. | query |
Varje anrop debiteras i krediter. Misslyckade och blockerade anrop är gratis.
Fungerande exempel
På matvaror räcker det inte att läsa priset. Alla tre sillburkarna kostar 18 kr och har 250 g på etiketten, men IKEA:s egen prisenhet anger 0,14 kg för SILL DILL och 0,15 kg för SILL MATJES (SILL SENAP: 0,25 kg), alltså avrunnen vikt, sillen utan lag. Därför ligger förpackningens vikt i `measure` och den mängd priset avser i `quantity` och `unit`, i separata fält. Något jämförpris per kilo räknar vi inte fram, eftersom IKEA inte publicerar något. `online_sellable: false` betyder att varan inte går att köpa i webbutiken. Den fjärde träffen på ”sill” är för övrigt barnköket SILLTRUT.
curl -X POST https://api.reefapi.com/ikea/v1/search \
-H "x-api-key: DIN_NYCKEL" \
-H "content-type: application/json" \
-d '{"query": "sill", "country": "se", "page_size": 12}'{
"ok": true,
"data": {
"results": [
...
{
"item_no": "30101031",
"title": "SILL DILL Inlagd sill med dill, 250 g",
"price": 18.0,
"currency": "SEK",
"price_type": "regular",
"price_basis": "per_quantity",
"quantity": 0.14,
"unit": "kg",
"measure": "250 g",
"member_price": null,
"online_sellable": false,
"rating": 4.6,
"rating_count": 617,
"category_path": [{ "key": "fb001", "name": "Mat & dryck" }, { "key": "25214", "name": "Fisk & skaldjur" }]
},
{
"item_no": "30201648",
"title": "SILL MATJES Matjessillfiléer, 250 g",
"price": 18.0,
"currency": "SEK",
"price_type": "regular",
"price_basis": "per_quantity",
"quantity": 0.15,
"unit": "kg",
"measure": "250 g",
"online_sellable": false
}
],
"count": 4,
"total_results": 4,
"country": "se",
"language": "sv",
"currency": "SEK"
},
"meta": { "record_count": 4, "cache_hit": false, "mode": "live" }
}Skrapa ikea.com/se själv? Det här brukar gå snett
Bredvid priset skriver IKEA en enhet, och den betyder olika saker beroende på vad som står där. ”styck” på en mugg är ett vanligt styckpris. Ett antal betyder att priset gäller ett helt paket med så många delar. En vikt på en matvara anger nästan alltid hur mycket förpackningen innehåller, men inte alltid (se sillen ovan). Ett skript som bara sparar siffran tappar skillnaden. Vår egen första version gjorde misstaget att läsa ”styck” som en måttenhet, och det rättades efter mätning innan testerna skrevs.
Lagret har en egen fälla. IKEA:s lagersvar räknar upp fler enheter (varuhus och andra lagerplatser) än den publika varuhuslistan, och de enheter som inte för artikeln har aldrig något antal. Dem sorterar vi bort och redovisar bara som ett antal. Frågar man efter ett artikelnummer från ett annat land ser svaret ut som ”slut i alla varuhus”, fast varan säljs under ett annat nummer. Här kommer sådana artiklar i `not_sold_here` i stället för som slutsålda.
Att hämta sortimentet en gång klarar vilket skript som helst. Det svåra är att märka när en enhet, ett varuhus eller ett artikelnummer plötsligt betyder något annat än det gjorde i går, och den kontrollen ligger hos oss.
Gränser och ärliga noteringar
- IKEA står inte bakom tjänsten: det här är inte IKEA:s eget API, och det finns inget avtal eller samarbete mellan oss och IKEA.
- Standardvärdet för `country` är `us`, inte `se`, och det gäller alla åtta endpoints, även `stores` och `suggest`.
- Priserna är webbutikens priser för Sverige. Varuhusspecifika priser och fraktkostnad (den beror på postnummer) ingår inte.
- Prisfiltret för svenska IKEA går via IKEA:s prisintervall (`filters`, `f-price-buckets`). `min_price` och `max_price` gäller bara IKEA Türkiye.
- Påfyllningar återges som IKEA skickar dem. I vårt test stod Uppsala som `out_of_stock` med en påfyllning daterad 2026-10-25 och `quantity: 0`; vi tolkar inte om det.
- Betyget på en produkt räknar recensioner från alla länder, medan `product/reviews` som standard bara visar de svenska.
- EAN/GTIN publiceras inte av IKEA och finns därför inte i svaren.
- Svaren sparas inte: priser och lager läses om från IKEA vid varje anrop.