Use Crawlora's H&M API endpoints to extract supported public H&M data as structured JSON. This documentation covers 7 active endpoints including Browse H&M's storefront category navigation, Browse an H&M category's product listing, Get an H&M product's full detail, Get an H&M product's related items, and related APIs. Developers can use these endpoints for monitoring, enrichment, research dashboards, internal data pipelines, and agent-native workflows without maintaining platform-specific scraping code. Each endpoint page documents authentication, request parameters such as category_id, product_id, query, cURL examples, response examples, response schemas, errors, credit cost, and Playground testing. Send requests to the Crawlora API with an x-api-key header, review usage and plan limits on pricing, and test safe sample requests in Playground before moving the workflow into production.
Choose an endpoint, send an authenticated request with the x-api-key header, and inspect the normalized JSON response. The examples below use the public Crawlora API base URL and the same endpoint catalog used by Playground.
Base URL
https://api.crawlora.net/api/v1
Auth header
x-api-key: $CRAWLORA_API_KEY
Primary endpoint
GET /hm/search
Credit cost
3 credits/request
curl -X GET "https://api.crawlora.net/api/v1/hm/search?query=coffee&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"
These endpoint cards are generated from the active Crawlora endpoint catalog, including method, path, auth mode, credit cost, parameter summary, docs, and Playground links.
GET/hm/categoriesapiKey5 credits/request
Browse H&M's storefront category navigation
Returns 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.
Returns 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.
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.
Returns 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.
Runs 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.
Returns 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.
Returns 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.