IKEA
IKEA Categories API
The market's IKEA category tree as its site menu shows it: each category's id (the input of the category endpoint), name, url and children. The US tree had 1,570 categories under 23 top-level ones on 2026-11-13. parent_id returns one category's subtree. On the 50 ikea.com markets. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsoncountrystringdefault:usThe IKEA market, as a lowercase code. This endpoint serves the 50 ikea.com markets. Names, descriptions and labels come back in the market's language and prices in its currency, never converted; the answer echoes country, language and currency. A market outside this list answers 400 before anything is charged.
Example: us
us— United States, USD, languages en, es. The default.ca— Canada, CAD, languages en, fr.gb— United Kingdom, GBP, language en.ie— Ireland, EUR, language en.de— Germany, EUR, languages de, en.at— Austria, EUR, languages de, en.ch— Switzerland, CHF, languages de, fr, it, en.fr— France, EUR, language fr.be— Belgium, EUR, languages nl, fr, en.nl— Netherlands, EUR, languages nl, en.dk— Denmark, DKK, language da.se— Sweden, SEK, languages sv, en.no— Norway, NOK, languages no, en.fi— Finland, EUR, languages fi, sv, en.ee— Estonia, EUR, languages et, ru, en.lv— Latvia, EUR, languages lv, ru, en.lt— Lithuania, EUR, languages lt, ru, en.pl— Poland, PLN, language pl.cz— Czech Republic, CZK, languages cs, en.sk— Slovakia, EUR, language sk.hu— Hungary, HUF, language hu.hr— Croatia, EUR, language hr.si— Slovenia, EUR, language sl.rs— Serbia, RSD, language sr.ro— Romania, RON, language ro.pt— Portugal, EUR, languages pt, en.es— Spain, EUR, languages es, en, ca, eu, gl.it— Italy, EUR, language it.il— Israel, ILS, language he.ae— United Arab Emirates, AED, languages ar, en.sa— Saudi Arabia, SAR, languages ar, en.kw— Kuwait, KWD, languages ar, en.qa— Qatar, QAR, languages ar, en.bh— Bahrain, BHD, languages ar, en.om— Oman, OMR, languages ar, en.jo— Jordan, JOD, languages ar, en.eg— Egypt, EGP, languages ar, en.ma— Morocco, MAD, languages ar, fr, en.in— India, INR, language en.my— Malaysia, MYR, languages ms, en.sg— Singapore, SGD, language en.ph— Philippines, PHP, language en.th— Thailand, THB, languages th, en.jp— Japan, JPY, languages ja, en.kr— South Korea, KRW, languages ko, en.au— Australia, AUD, language en.nz— New Zealand, NZD, language en.mx— Mexico, MXN, languages es, en.cl— Chile, CLP, language es.co— Colombia, COP, language es.
languagestringThe answer's language, one the market's site serves; the default is the market's first (en on us, de on de, fr on fr). Multi-language markets: us en/es, ca en/fr, de and at de/en, ch de/fr/it/en, be nl/fr/en, nl nl/en, se sv/en, no no/en, fi fi/sv/en, ee et/ru/en, lv lv/ru/en, lt lt/ru/en, cz cs/en, pt pt/en, es es/en/ca/eu/gl, the Gulf and Arab markets ar/en (ma ar/fr/en), my ms/en, th th/en, jp ja/en, kr ko/en, mx es/en, cn zh/en, pr en/es, do and es_islands es/en, is en/is. Every other market has one language. Another code answers 400.
Example: fr
parent_idstringReturn only this category's subtree (categories[].id), e.g. fu003.
Example: st001
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
r = client.ikea.categories(country="us", parent_id="st001")["data"]
def walk(nodes, depth=0):
for n in nodes:
print(" " * depth, n["id"], n["name"])
walk(n["children"], depth + 1)
walk(r["categories"])Response