H&M Product Scraper π
Pricing
Pay per usage
H&M Product Scraper π
Scrape H&M products instantly with complete details: pricing, images, stock status, and reviews. Export to JSON/CSV for competitive analysis, price monitoring, and retail research. Fast, reliable H&M data extraction for ecommerce intelligence.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
1
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
H&M Product Scraper
Extract structured H&M product search data at scale for catalog analysis, pricing monitoring, merchandising research, and market intelligence. Collect product listings with pricing, images, availability, swatches, and pagination metadata in clean dataset output.
Features
- Keyword or URL input β Start from a keyword or an H&M search URL.
- Structured product output β Collect product ids, titles, prices, links, images, and stock signals.
- Pagination support β Crawl multiple result pages until your limit is reached.
- Null-free dataset records β Empty and null values are removed before saving.
- Simple input contract β Use only core fields while advanced API options stay managed internally.
Use Cases
Product Catalog Research
Build a searchable dataset of H&M products for category discovery, assortment reviews, and collection planning.
Pricing Intelligence
Track visible pricing and product availability across multiple pages and compare changes over time.
Merchandising Monitoring
Analyze product titles, image coverage, and category distribution to identify merchandising opportunities.
Competitive Benchmarking
Export product data into BI tools and compare assortment depth, pricing structure, and stock signals.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | β | Optional H&M search URL to parse query and locale from. |
keyword | String | Yes | shirt | Search keyword used for result retrieval. |
locale | String | No | en_us | Locale in ll_cc format. |
results_wanted | Integer | No | 20 | Maximum number of products to save. |
max_pages | Integer | No | 10 | Safety cap on number of pages to process. |
proxyConfiguration | Object | No | Apify Proxy | Proxy settings for reliability and anti-blocking. |
Output Data
Each dataset item may contain:
| Field | Type | Description |
|---|---|---|
id | String | Product identifier |
trackingId | String | Tracking identifier |
productName | String | Product title |
brandName | String | Brand name |
productUrl | String | Product detail URL |
formattedPrice | String | Displayed formatted price |
price | Number | Numeric price value |
priceMin | Number | Minimum listed price |
priceMax | Number | Maximum listed price |
isNewProduct | Boolean | New product flag |
stockState | String | Availability state |
isOnline | Boolean | Online sale availability |
isComingSoon | Boolean | Coming-soon flag |
colorName | String | Primary color name |
colorCode | String | Primary color code |
swatchColorNames | Array | Flattened swatch color names |
swatchColorCodes | Array | Flattened swatch color codes |
allSizes | Array | Flattened list of all size labels |
availableSizes | Array | Flattened list of available size labels |
outOfStockSizes | Array | Flattened list of out-of-stock size labels |
sizesCount | Number | Count of total size labels |
imageProductSrc | String | Product image URL |
imageModelSrc | String | Model image URL |
galleryImages | Array | Gallery image URLs |
mainCatCode | String | Main category code |
searchQuery | String | Query used for this run |
locale | String | Locale used for this run |
pageNumber | Number | Result page number |
Usage Examples
Basic Keyword Search
{"keyword": "shirt","results_wanted": 20,"max_pages": 3}
Start From H&M Search URL
{"startUrl": "https://www2.hm.com/en_us/search-results.html?q=shirt&page_key=2026-03-30T08:08:11.763Z--shirt","results_wanted": 100,"max_pages": 8}
Keyword Run With Proxy
{"keyword": "linen shirt","locale": "en_us","results_wanted": 150,"max_pages": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"id": "1293921003","trackingId": "OzU7IzsxMjkzOTIxMDAzOyM7Izo=","productName": "Oxford Shirt","brandName": "H&M","productUrl": "https://www2.hm.com/en_us/productpage.1293921003.html","formattedPrice": "$24.99","price": 24.99,"priceMin": 24.99,"priceMax": 24.99,"stockState": "Available","isOnline": true,"colorName": "Blue/striped","colorCode": "333859","swatchColorNames": ["Blue/striped", "White"],"allSizes": ["XS", "S", "M", "L", "XL"],"availableSizes": ["S", "M", "L", "XL"],"outOfStockSizes": ["XS"],"sizesCount": 5,"imageProductSrc": "https://image.hm.com/assets/hm/example-product.jpg","imageModelSrc": "https://image.hm.com/assets/hm/example-model.jpg","mainCatCode": "men_shirts","searchQuery": "shirt","locale": "en_us","pageNumber": 1}
Tips For Best Results
Start Small First
- Begin with
results_wanted: 20to validate run behavior. - Increase limits after checking output quality.
Use Stable Query Terms
- Prefer specific product terms like
linen shirtorcotton shirt. - Keep keyword spelling consistent for repeatable monitoring runs.
Use Proxies For Reliability
- Residential proxies improve stability for larger runs.
- Keep a reasonable page cap when running very frequent schedules.
Integrations
- Google Sheets β Create live product tracking sheets.
- Airtable β Build searchable product databases.
- Looker Studio / BI tools β Visualize pricing and category trends.
- Webhooks β Forward fresh product data to external systems.
- Make / Zapier β Automate downstream workflows.
Export Formats
- JSON β API and engineering workflows
- CSV β Spreadsheet analysis
- Excel β Reporting and operations
- XML β Legacy integrations
Frequently Asked Questions
How many products can I collect?
You can collect across multiple pages based on results_wanted and max_pages.
Does the dataset include empty values?
No. Null and empty values are removed before records are saved.
Can I run this on a schedule?
Yes. You can schedule recurring runs in Apify and export new data automatically.
Why use proxy configuration?
Proxy configuration helps improve stability and reduces blocking during repeated runs.
Can I use a full search URL instead of keyword?
Yes. Provide startUrl and the actor will parse query and locale automatically.
Where are advanced controls like touch point and sorting?
The actor uses stable internal defaults for advanced API parameters so the input remains simple and reliable.
Support
For issues or feature requests, use Apify Console support and actor issue channels.
Resources
Legal Notice
This actor is designed for legitimate data collection and analytics workflows. Users are responsible for complying with applicable terms, policies, and laws in their jurisdiction.