ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

H&M

H&M Search API

Search one H&M market's online catalog by keyword, in that market's language and currency, on 47 countries: each item with its article code, title, price, regular price, sale price, member price, discount, colours, sizes with online stock, new-arrival flag and H&M category id, up to 72 a page with the exact total, sorted by relevance, newest or price and filtered by colour, size, material, fit, product type, department, sale and one store's assortment. An article code as the query finds that article. Costs 1 credit per request.

POST/api/v1/hm/search

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
querystringrequired

Search keywords, 1-200 characters, in any language. An article or product code finds that item.

Example: jeans

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: 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").
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

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.
departmentenum<string>

Only one department (default: every department; the answer's departments[] carries the count of each).

Example: women

  • 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).
storestring

A store code from the stores endpoint (e.g. US0760): only items in that store's assortment. This is the store's range, not per-size store stock.

Example: US0760

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_saleboolean

Only marked-down items.

Example: true

Request

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key", timeout=120)

# One article code, read in several markets: codes are the same everywhere.
for country in ["us", "gb", "de", "fr", "se", "jp"]:
    r = client.hm.search(query="1372161001", country=country)["data"]
    for i in r["items"]:
        if i["article_code"] == "1372161001":
            print(country, i["title"], i["price"], i["regular_price"], i["member_price"], r["currency"])

Response

"query": "jeans",
"count": 36,
"total": 1329,
"page": 1,
"page_size": 36,
"total_pages": 37,
"sort": "relevance",
"filters": {},
"on_sale_count": 60,
"department": null,
"store_code": null,
"did_you_mean": [],
"related_searches": [],
"country": "us",
"language": "en",
"currency": "USD",
"locale": "en_us",
"store": "us",
},
"response_time": 3560
}
PreviousTrendyol DeliveryNextH&M Product
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