H&M
H&M Deals API
The H&M sale grid of one department in one market, on 47 countries: every marked-down item with its article code, title, sale price, regular price, discount, member price, 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 and product type. Sales run in seasons: the grid may be empty between sales. 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 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
departmentenum<string>default:womenWhose sale grid to read.
Example: men
women— Women (H&M's ladies_all).men— Men (men_all).kids— Kids (kids_all).baby— Baby (kids_newbornbaby_viewall).home— H&M HOME (home_all).
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
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# Is a sale running? An empty grid means no sale in that market right now.
for country in ["gb", "us", "de", "se", "pl"]:
r = client.hm.deals(country=country, department="men")["data"]
print(country, r["total"], "items on sale", r["currency"])
for i in r["items"][:3]:
print(" ", i["article_code"], i["title"], i["sale_price"], i["regular_price"], i["discount_percent"])Response