API

IKEA API: ceny, zásoby a výrobky z ikea.com/cz v JSON

IKEA nemá veřejné API pro vývojáře. Tohle rozhraní čte český obchod ikea.com/cz tak, jak ho vidí zákazník — název, cenu v Kč, akční a členské ceny, rozměry, hodnocení a hlavně počet kusů v jednotlivých obchodních domech — a vrací to jako JSON. Není to napojení pro dodavatele IKEA ani pro správu objednávek: čte se jen veřejný katalog a dostupnost zboží.

Endpointy

endpointCo se vracíPovinné
searchVyhledávání podle slova, názvu série (BILLY) nebo čísla zboží: cena, cena IKEA Family zvlášť, předchozí cena u akce, hodnocení, barvy a kategorie. Řazení a filtry jsou ty, které nabízí sama IKEA.query
categoryVšechny výrobky jedné kategorie, stránkované, se stejnými řádky a filtry jako vyhledávání.category_id
categoriesStrom kategorií po jedné úrovni, s počtem výrobků v každé kategorii.vše volitelné
product/detailKompletní karta výrobku: všechny ceny odděleně (běžná, IKEA Family, předchozí, nejnižší za 30 dní), rozměry, balení, materiály, návody k montáži, záruka a designér.product_id
product/availabilityZásoby až 10 výrobků ve všech obchodních domech v Česku: počet kusů, stav, ulička a regál v samoobslužném skladu, termín a množství doplnění, Click & Collect a doručení domů.vše volitelné
product/reviewsRecenze zákazníků po stránkách: hvězdičky, dílčí hodnocení (kvalita, montáž…), ověřený nákup a odpověď IKEA.product_id
storesObchodní domy IKEA v Česku s id pro product/availability a souřadnicemi.vše volitelné
suggestNašeptávač z vyhledávacího pole: návrhy hledání, kategorie a výrobky.query

Každé volání se účtuje v kreditech. Neúspěšná a blokovaná volání jsou zdarma.

Funkční příklad

U výrobku s nízkou zásobou přijde i ohlášené doplnění. Pohovka GLOSTAD měla na Zličíně 1 kus a doplnění 16 kusů mezi 25. 10. a 1. 11., na Černém Mostě 29 kusů. Než pošlete zákazníka do konkrétního obchodního domu, podívejte se na quantity a restocks, ne jen na status.

Požadavek
curl -X POST https://api.reefapi.com/ikea/v1/product/availability \
  -H "x-api-key: VAS_KLIC" \
  -H "content-type: application/json" \
  -d '{"product_id": "50489012", "country": "cz"}'
Odpověď (zkrácená)
{
  "ok": true,
  "data": {
    "items": [
      {
        "item_no": "50489012",
        "online": { "home_delivery_available": true, "click_collect_available": true },
        "stores": [
          {
            "store_id": "408",
            "store_name": "IKEA Praha - Cerny Most",
            "quantity": 29,
            "status": "high_in_stock",
            "sales_locations": [{ "type": "AISLE_AND_BIN", "aisle": "09", "bin": "00" }]
          },
          {
            "store_id": "178",
            "store_name": "IKEA Praha - Zlicin",
            "quantity": 1,
            "status": "low_in_stock",
            "restocks": [{ "earliest_date": "2026-10-25", "latest_date": "2026-11-01", "quantity": 16 }]
          },
          ...
        ],
        "store_count": 4,
        "in_stock_store_count": 4
      }
    ],
    "country": "cz"
  },
  "meta": { "record_count": 1, "cache_hit": false, "mode": "live" }
}

Vlastní scraper na IKEA: kde to drhne

Stránka výrobku na ikea.com nese data ve skriptu, ne v HTML, a IKEA formát toho skriptu mění bez ohlášení. V říjnu 2026 se změnil klíč, pod kterým data leží, a parser, který hledal ten původní, začal u každého výrobku ve všech zemích hlásit „nenalezeno“ — bez jediné chyby, která by napověděla proč. Stalo se to i nám a opravili jsme to.

Druhá past je cena. U akcí IKEA Family stojí v datech na místě ceny členská cena a běžná cena je až jako „předchozí“. Skript, který vezme první číslo, uloží cenu, kterou zaplatí jen členové. Tady jsou běžná cena, cena IKEA Family, předchozí cena a nejnižší cena za 30 dní samostatná pole.

Když sortiment potřebujete stáhnout jednou, vlastní skript stačí. Jakmile má běžet denně, rozhoduje hlavně to, kdo si včas všimne, že se zdroj změnil.

Omezení a poctivé poznámky

  • Tohle není oficiální API IKEA a s IKEA nemáme žádné partnerství.
  • Souhrnné hodnocení výrobku započítává recenze ze všech zemí, kdežto product/reviews vrací ve výchozím stavu jen recenze z Česka (parametr scope).
  • Čísla zboží jsou většinou globální, ale ne vše se v Česku prodává. Zboží mimo český sortiment se v dostupnosti vrátí v not_sold_here, ne jako „vyprodáno“.
  • Názvy obchodních domů přicházejí tak, jak je IKEA posílá ve svých datech o zásobách, tedy bez diakritiky (Praha - Cerny Most).
  • Výchozí země je us: bez country: "cz" se dotaz pošle do amerického obchodu a ceny přijdou v dolarech.
  • Cenu u ikea.com filtrujete přes cenová pásma IKEA (filters, f-price-buckets); parametry min_price a max_price platí jen pro IKEA Türkiye.
  • Nic se neukládá do cache: zásoby i ceny se čtou z IKEA při každém volání znovu.