H&M Scraper
Pricing
from $1.20 / 1,000 products
H&M Scraper
Scrape H&M products from search queries, search URLs, and category URLs, with optional product details.
Pricing
from $1.20 / 1,000 products
Rating
0.0
(0)
Developer
Data Scrapers
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
H&M Scraper creates a structured dataset of apparel products collected from H&M. Each dataset item is one article and can include the article id, name, price, currency, discount, color, sizes, availability, and product URL. Query the source with search terms or H&M category and product URLs, choose a locale such as de_de, optionally add the description and composition, limit results with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.
Dataset at a glance
| Property | Value |
|---|---|
| Source | H&M |
| Record unit | One article |
| Input methods | searchQueries, startUrls, locale |
| Main identifiers | articleId, url |
| Delivery | Apify Dataset and API |
| Export formats | JSON, CSV, Excel, XML, and other Apify dataset exports |
| Update model | Fresh records per Actor run |
| Pricing | $1.50 per 1,000 products on the Free plan |
Coverage and available records
searchQueries runs against the market in locale, for example de_de or en_us. startUrls accepts H&M search, category, and product URLs. The locale in the URL path selects the market for that URL, so a de_de category URL stays on the German site even if locale is different.
includeProductDetails adds description and composition when the product page is fetched. detailConcurrency sets how many detail pages are requested at once. maxItems caps articles.
Each saved row is one articleId. Color variants can be separate articles. The Actor does not collect account wish lists or checkout data.
Data dictionary
| Field | Type | Nullable | Description | Example |
|---|---|---|---|---|
| articleId | string | No | Article id used for deduplication | 1345672001 |
| productName | string | No | Product name | Jacke mit Schaldetail |
| price | number | Yes | Current price | 37.5 |
| currency | string | Yes | Currency | EUR |
| formattedPrice | string | Yes | Display price | 37,50 € |
| percentageDiscount | string | Yes | Discount label | -25% |
| colorName | string | Yes | Color on a color-variant row | Weinrot |
| url | string | No | Product URL | https://www2.hm.com/de_de/productpage.1345672001.html |
| sourceQuery | string | Yes | Search that found the article | jackets |
| details | object | Yes | Description and composition when details are on | {"description": "Kurze, oversized Jacke..."} |
Example dataset record
{"articleId": "1345672001","productName": "Jacke mit Schaldetail","price": 37.5,"currency": "EUR","formattedPrice": "37,50 €","percentageDiscount": "-25%","url": "https://www2.hm.com/de_de/productpage.1345672001.html","sourceQuery": "jackets","details": {"description": "Kurze, oversized Jacke aus weichem Filzmaterial mit einem abnehmbaren, langen Schal.","compositions": ["Obermaterial: Polyester 100%", "Futter: Polyester 100%"]}}
Query and input reference
| Field | Required | Description |
|---|---|---|
| searchQueries | No | Search terms, such as jackets |
| startUrls | No | H&M search, category, or product URLs |
| locale | No | Market for search queries, such as de_de or en_us |
| includeProductDetails | No | Fetch description and composition and charge product-details |
| detailConcurrency | No | Parallel product-page requests |
| maxItems | No | Maximum articles |
| proxyConfiguration | No | Apify proxy settings |
Provide a search term or a start URL.
Retrieve the data through the API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("datascrapers/h-and-m-scraper").call(run_input={"searchQueries": ["jackets"],"locale": "de_de","includeProductDetails": True,"maxItems": 5,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["productName"], item["price"], item["articleId"])
Data quality and record handling
Deduplicate on articleId. url is a second key. details is present only after a successful product page. A failed detail request is not charged. sourceQuery separates articles when one run contains several searches. Each run writes a new dataset.
Pricing and cost examples
Pay per event. Prices are per 1,000 events. Platinum and Diamond use the Gold rate. Platform usage is not billed separately.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| product | $1.50 | $1.40 | $1.30 | $1.20 |
| product-details | $2.50 | $2.40 | $2.30 | $2.20 |
A Free-plan run that saves 1,000 articles costs $1.50. Adding details for those articles costs $2.50 more. Leave includeProductDetails off when you only need price and URL.
Limitations and responsible data use
Search uses locale. URLs use the locale in the path. Prices and sizes change with the live catalog. Collect public product fields only, and keep maxItems small on the first run.
Dataset questions
What is one dataset item?
One H&M article, identified by articleId.
When is product-details charged?
When includeProductDetails is on and the product page is fetched.
Which field should I use to merge runs?
articleId or url.
Related datasets from Data Scrapers
- Calvin Klein Scraper for apparel
- MediaMarkt Scraper for retail products
- Cdiscount Scraper for retail catalogs
- Back Market Scraper for refurbished products
Data Scrapers support
Questions about this dataset: stardustspotlight@gmail.com.
