H&M
H&M Stock API
Online stock per size for every colour of an H&M product, by article or product code, on 47 countries: each colour's article code and name, then each size's code, label, in-stock flag and H&M's few-left flag, plus the count of sizes and of sizes in stock. This is H&M's online stock in that market, not store stock. 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/jsonarticle_codestringAn H&M article code (10 digits). Every colour of its product is returned. Send article_code or product_code.
Example: 1310382004
product_codestringAn H&M product code: 7 digits, the first 7 of an article code.
Example: 1310382
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: us
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
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# Which sizes of each colour can be ordered online in the US right now.
s = client.hm.stock(article_code="1310382004", country="us")["data"]
print(s["title"], s["sizes_in_stock"], "of", s["sizes_total"], "sizes in stock")
for c in s["colors"]:
print(c["name"], [z["label"] + ("*" if z["few_left"] else "") for z in c["sizes"] if z["in_stock"]])Response