H&M
H&M Category API
One H&M category grid by H&M's category id, on 47 countries: the same ids in every market (ladies_dresses, men_jeans, kids_all ...), each item with its article code, title, price, regular price, sale price, member price, discount, colours and sizes with online stock, up to 72 a page with the exact total, sorted by relevance, newest or price and filtered by colour, size, material, fit, product type and sale. 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/jsoncategorystringrequiredAn H&M category id: items[].category of any answer, or a department id. Ids are the same in every market, e.g. ladies_dresses, ladies_tops, ladies_jeans, ladies_knitwear, men_jeans, men_hoodiessweatshirts, men_tshirtstanks, kids_all, ladies_all, men_all.
Example: ladies_dresses
countrystringdefault:usThe H&M market, as a lowercase country code. This endpoint serves all 47 countries: the 40 H&M online stores of their own (us, ca, mx, gb, ie, de, at, ch, fr, be, nl, it, es, pt, se, fi, dk, no, pl, cz, sk, hu, ro, bg, gr, rs, tr, ua, il, hk, mo, tw, jp, kr, in, my, ph, sg, vn, au) plus hr, cy, ee, lv, lt, lu, si on H&M's shared English EUR store (the answer says store "eu"). Prices come back in the market's currency, never converted; every answer echoes country, language, currency, locale and store. ae, eg, id, th, br and cn (H&M runs a separate site there), al, az, ba, by, cl, co, cr, ge, is, kh, kz, mk, nz, pe, xk and za (no H&M online store), ru, and uk (send gb) answer 400, not charged.
Example: gb
us— United States, USD, en (English). The default.ca— Canada, CAD, en (English) or fr (French); default en.mx— Mexico, MXN, es (Spanish).gb— United Kingdom, GBP, en (English).ie— Ireland, EUR, en (English).de— Germany, EUR, de (German).at— Austria, EUR, de (German).ch— Switzerland, CHF, de (German) or fr (French) or it (Italian); default de.fr— France, EUR, fr (French).be— Belgium, EUR, nl (Dutch) or fr (French); default nl.nl— Netherlands, EUR, nl (Dutch).it— Italy, EUR, it (Italian).es— Spain, EUR, es (Spanish).pt— Portugal, EUR, pt (Portuguese).se— Sweden, SEK, sv (Swedish).fi— Finland, EUR, fi (Finnish) or sv (Swedish); default fi.dk— Denmark, DKK, da (Danish).no— Norway, NOK, no (Norwegian).pl— Poland, PLN, pl (Polish).cz— Czechia, CZK, cs (Czech).sk— Slovakia, EUR, sk (Slovak).hu— Hungary, HUF, hu (Hungarian).ro— Romania, RON, ro (Romanian).bg— Bulgaria, EUR, bg (Bulgarian).gr— Greece, EUR, el (Greek).rs— Serbia, RSD, sr (Serbian).tr— Turkey, TRY, tr (Turkish).ua— Ukraine, UAH, uk (Ukrainian).il— Israel, ILS, he (Hebrew).hk— Hong Kong, HKD, zh (Chinese) or en (English); default zh.mo— Macau, HKD, zh (Chinese) or en (English); default zh.tw— Taiwan, TWD, zh (Chinese) or en (English); default zh.jp— Japan, JPY, ja (Japanese).kr— South Korea, KRW, ko (Korean).in— India, INR, en (English).my— Malaysia, MYR, en (English).ph— Philippines, PHP, en (English).sg— Singapore, SGD, en (English).vn— Vietnam, VND, vi (Vietnamese).au— Australia, AUD, en (English).hr— Croatia, EUR, en (English); H&M's shared English EUR store (store "eu").cy— Cyprus, EUR, en (English); H&M's shared English EUR store (store "eu").ee— Estonia, EUR, en (English); H&M's shared English EUR store (store "eu").lv— Latvia, EUR, en (English); H&M's shared English EUR store (store "eu").lt— Lithuania, EUR, en (English); H&M's shared English EUR store (store "eu").lu— Luxembourg, EUR, en (English); H&M's shared English EUR store (store "eu").si— Slovenia, EUR, en (English); H&M's shared English EUR store (store "eu").
languagestringThe answer's language, from the market's own list (the first is the default): ca en or fr; ch de, fr or it; be nl or fr; fi fi or sv; hk, mo and tw zh or en; every other market its one language (see the markets table). Titles, descriptions, colours and facet values come back in it. A language the market does not serve answers 400, not charged.
Example: fr
pageintegerdefault:1Results page, 1-based, up to 200.
Example: 2
page_sizeintegerdefault:36Items per page, 1 to 72.
Example: 72
sortenum<string>default:relevanceResult order. The same four sorts on every market.
Example: price_asc
relevance— H&M's own order. The default.newest— Newest first.price_asc— Price, low to high.price_desc— Price, high to low.
colorstring | string[]Colour: up to 10 values of the color facet of an earlier answer in the same market (e.g. black_000000 on us, schwarz_000000 on de); several values are ORed.
Example: black_000000
sizestring | string[]Size: values of the size facet (e.g. womenswear;NO_FORMAT[Numeric];8).
Example: womenswear;NO_FORMAT[SML];M
materialstring | string[]Material: values of the material facet, in the market's language (e.g. Cotton, Baumwolle).
Example: Cotton
fitstring | string[]Fit: values of the fit facet (e.g. Slim fit, Loose fit).
Example: Loose fit
product_typestring | string[]Product type: values of the product_type facet (e.g. Jeans).
Example: Jeans
on_salebooleanOnly marked-down items.
Example: true
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# One category id, several markets: how many dresses, how many on sale.
for country in ["gb", "de", "se", "us"]:
r = client.hm.category(category="ladies_dresses", country=country)["data"]
print(country, r["total"], "items,", r["on_sale_count"], "on sale,", r["price_range"], r["currency"])Response