Retail pricing and availability monitoring
Use H&M endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Turn H&M's own app-backend storefront data into structured retail data — keyword product search, category listing pages, and per-product detail with every color's live per-size price and stock plus real customer reviews, all as normalized JSON. Credential-free.
Search H&M products, browse category listings, and get full product detail — per-color pricing, live per-size stock, and customer reviews — as structured JSON.
Endpoint families
5
Documented params
23
Examples
0
Live catalog snapshot
Active endpoints
7
Methods
GET
Required params
11
Schema refs
7
{
"platform": "H&M",
"endpoint": "hm-search",
"method": "GET",
"path": "/hm/search",
"auth": "apiKey"
}Use cases
Search H&M products, browse category listings, and get full product detail — per-color pricing, live per-size stock, and customer reviews — as structured JSON.
Use H&M endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Use H&M endpoints to turn category catalog and product research into repeatable API requests with documented inputs and JSON responses.
Use H&M endpoints to turn review and rating tracking into repeatable API requests with documented inputs and JSON responses.
Managed execution
Each Crawlora platform API is designed around a specific data surface. Instead of exposing a generic fetch endpoint, Crawlora combines endpoint-specific request logic, managed infrastructure, parsing, normalization, billing, and Playground-tested examples.
Request behavior is tuned for the target platform and endpoint type.
Supported endpoints can use managed proxy routing to improve reliability and reduce infrastructure work.
Dynamic pages can be routed through managed browser instances where JavaScript rendering is required.
Challenge pages and unusable upstream responses are detected and surfaced clearly.
Results are returned as documented JSON instead of raw HTML.
Test the same route from Docs and Playground before production integration.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/hm/product/{product_id}
/hm/search
/hm/categories
/hm/listing
/hm/stores
Endpoint catalog
/hm/searchRuns a free-text keyword search against H&M's own app-backend search data and returns normalized products with pricing, images, colors, and per-size stock, plus search-quality metadata (a spelling-correction suggestion, related searches, and a content-filter flag). Unlike category browsing, an obscure or nonsense keyword returns a genuine empty result (zero products) rather than a fallback set. Pagination is page-based and real: requesting a page beyond the real last page returns a normal response with an empty products array rather than an error.
/hm/listingReturns one H&M category's product listing page: normalized products with pricing, images, colors, and per-size stock, sourced from H&M's own app-backend listing data. category_id is an H&M category slug (e.g. ladies_newarrivals_all, men_newarrivals_all, ladies_jeans) -- this build does not expose a category/nav-tree discovery endpoint, so category_id values are currently sourced from known H&M storefront paths rather than a lookup call. Pagination is page-based and real: requesting a page beyond the category's real last page returns a normal response with an empty products array rather than an error.
/hm/product/{product_id}Returns one H&M product's full detail: every purchasable color grouped with its own per-size price and live availability, plus an aggregate rating and real customer reviews (author label, date, body, rating, and any fit-feedback tags the reviewer left, such as "True to Size") when the product has any. This data is not available from hm-listing or hm-search, which only carry one representative price and a per-color stock count. product_id is the numeric id from a listing/search result's id field or its url field's productpage.<id>.html segment. An unrecognized product_id returns 404.
/hm/categoriesReturns H&M's own storefront category navigation, department by department: every direct nav item and subcategory currently shown in the site's own menu, with its display name and storefront URL. Where this build has separately verified the value against hm-listing's own category_id parameter, that id is included too; category_id is omitted for entries not yet verified rather than guessed, since the visible category label is confirmed NOT a reliable way to derive H&M's real listing category ids for every category. department, when given, filters the result to one department.
/hm/product/{product_id}/relatedReturns every product-detail recommendation list H&M's own app shows for one product (which lists are present genuinely varies by product -- for example "more from series" and "style with" appear only when the product has one, while "alternatives" and "upsell" are more consistently present). An unrecognized product_id returns a well-formed empty result rather than an error.
/hm/search/suggestionsReturns H&M's own search-box typeahead suggestions, sourced from the same credential-free app-backend host as hm-listing/hm-search. When query is given, returns spelling-complete phrase suggestions and merchandised content results. When query is omitted or empty, instead returns trending searches and popular-search shortcuts (phrase/content suggestions are both empty in that mode). search_history is part of the real upstream response but confirmed NOT session-scoped -- it returned the identical list across separate cookie-free requests, so treat it as fixed default content rather than a real per-caller history.
/hm/storesReturns H&M physical retail store locations near a point: name, phone, full address, and coordinates. Either search, or both lat and lng, is required. search is a free-text zip code or place name that is first resolved to coordinates; if it does not resolve to any location, a well-formed empty result is returned rather than an error. lat and lng, when given directly, skip that resolution step. radius_meters is optional (1000 to 50000, defaults to 10000). A location with no stores within the radius returns a well-formed empty result rather than an error.
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
How to scrape H&M
Crawlora's H&M endpoints return search, category listings, and product detail as normalized JSON with one API key — no H&M account required.
Send a free-text keyword to /hm/search for paginated, normalized products with pricing, images, and per-color stock.
Pass a known category slug (e.g. ladies_jeans, men_newarrivals_all) to /hm/listing for that category's product listing — H&M doesn't publish a category/nav-tree lookup call, so category_id values come from known storefront paths, not a discovery endpoint.
Pass a product_id (a listing/search result's id, or the digits in a product page's productpage.<id>.html URL) to /hm/product/{product_id} for every color's real per-size price and live availability, plus customer reviews when the product has any.
FAQ
Pass a known category slug to Crawlora's /hm/listing endpoint — H&M doesn't expose a category/nav-tree discovery call, so category_id values (e.g. ladies_jeans, men_newarrivals_all) are sourced from known storefront paths rather than a lookup call.
Yes — unlike category browsing, /hm/search returns a genuine empty result (zero products) for an obscure or nonsense keyword, rather than falling back to a recommended set.
Yes — /hm/product/{product_id} returns every purchasable color grouped with its own real per-size price and live availability, plus an aggregate rating and customer reviews when the product has any. /hm/listing and /hm/search only carry one representative price and a per-color stock count.