ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

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.

POST/api/v1/hm/deals

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).

Body

application/json
countrystringdefault:us

The 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").
languagestring

The 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:women

Whose 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:1

Results page, 1-based, up to 200.

Example: 2

page_sizeintegerdefault:36

Items per page, 1 to 72.

Example: 72

sortenum<string>default:relevance

Result 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

"department": "men",
"count": 36,
"total": 414,
"page": 1,
"page_size": 36,
"total_pages": 12,
"sort": "relevance",
"filters": {},
"on_sale_count": 414,
"country": "gb",
"language": "en",
"currency": "GBP",
"locale": "en_gb",
"store": "gb",
},
"response_time": 2820
}
PreviousH&M CategoryNextH&M New Arrivals
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

Ask AI about Scavio

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy