H&M API Scraper
Pricing
from $1.69 / 1,000 listing results
Go to Apify Store
H&M API Scraper
Scrapes H&M product search results (PLP) and product detail (PDP) data via the mobile app's backend APIs.
H&M API Scraper
Pricing
from $1.69 / 1,000 listing results
Scrapes H&M product search results (PLP) and product detail (PDP) data via the mobile app's backend APIs.
searchQuery
Optional
The search term this row came from. Rows from several queries share one dataset.
locale
Optional
The H&M locale the listing was read from, e.g. en_us. Decides the language, the prices and the currency.
productId
Optional
H&M's product id for this COLOURWAY. The same garment in two colours is two ids and two rows.
productName
Optional
Display name as the listing shows it.
brandName
Optional
Brand label; 'H&M' on own-brand products.
colorName
Optional
This colourway's colour name.
price
Optional
The price a buyer is shown right now, in currency. On a discounted product this is the sale price - see isOnSale.
formattedPrice
Optional
price as H&M formats it for the locale, e.g. '$9.99'.
priceType
Optional
H&M's own name for which price price is: 'redPrice' on a sale, 'whitePrice' at full price. Read this rather than inferring from the numbers.
isOnSale
Optional
True when the listing carries a reduced (red) price. False at full price.
originalPrice
Optional
The pre-discount (white) price, in currency. Null when the product is not on sale, because the white price IS the current price then.
formattedOriginalPrice
Optional
originalPrice as H&M formats it. Null when not on sale.
discountPercent
Optional
H&M's own discount label, verbatim and as a STRING, e.g. '-60%'. Null when not on sale.
stockState
Optional
H&M's stock state for the colourway, e.g. 'Available'.
inStock
Optional
True when stockState is 'Available'.
colors
Optional
Colour names of every sibling colourway of this garment, including this one.
articleIds
Optional
Article ids of those sibling colourways - the handles for rolling rows up into one garment.
sizes
Optional
Size labels that are IN STOCK for this colourway. A size with no stock is omitted.
imageUrl
Optional
Primary listing image.
imageUrls
Optional
Every listing image for this colourway.
productUrl
Optional
The product page on hm.com for this colourway.
currency
Optional
ISO code for price, derived from locale. The product-detail endpoint always quotes USD, so it is not used for this.
pdpCode
Optional
Product code echoed by the product-detail endpoint. Present only when details were fetched and returned.
pdpName
Optional
H&M's internal product name from the detail record - often a design codename rather than the listing name.
description
Optional
Product description from the detail record.
priceValidFrom
Optional
Start of the validity window of the US price. NOTE the provenance: the detail endpoint only answers for market 'hm-us', so this dates the US price even on a non-US locale - measured 2026-11-08, identical 2025-12-07 on an en_us row at 34.99 USD and a de_de row at 29.99 EUR for the same product. It does NOT date the price column.
priceValidTo
Optional
End of the validity window of the US price. Same provenance as priceValidFrom: the detail endpoint only answers for market 'hm-us', so this dates the US price even on a non-US locale and does NOT date the price column. H&M uses a far-future date (2999) for an open-ended price.
mainCategory
Optional
The detail record's main-category label, verbatim. H&M is inconsistent here: mostly a display name ('Loose', 'Wide'), occasionally an internal slug ('kids_boys_clothing_jeans') - measured 2 of 20 rows. Normalise before grouping on it.
supercategories
Optional
Ancestor category names from the detail record.
fits
Optional
Fit labels from the detail record.
baseProductCode
Optional
H&M's grouped product code, e.g. '1045459_group_080'.
ancestorProductCode
Optional
The style code shared by every colourway of the garment - the stable key for rolling colourways up.