icon

H&M Scraper

Scrape Products and Prices from H&M

Extract product prices, markdowns, color and size variant availability, product codes, and ratings from the world's second-largest fashion retailer. H&M sits behind Akamai, which returns a 403 Access Denied reference page to any non-browser request. Scrape.do handles it automatically.

START SCRAPING FOR FREE

Start scraping today with 1000 free credits. No Credit Card Required

H&M screenshot

109.1M Monthly Visits. Zara's Biggest Rival. One API.

hm.com is the retail storefront of H&M (H & M Hennes & Mauritz AB), the world's second-largest clothing retailer after Inditex, with 4,338 stores across 75 markets and ~171,000 employees. The site ranks #20 in the US Fashion and Apparel category on SimilarWeb with around 109.1 million monthly visits, covering women's, men's, and kids' apparel, footwear, accessories, and H&M Home, plus the group's COS, & Other Stories, Weekday, Monki, and ARKET labels.

With Scrape.do you can track prices, markdowns, and 40%-off sale drops across a massive fast-fashion catalog, monitor color and size variant availability by article number, feed LLMs and AI agents with live apparel pricing, and benchmark H&M against Zara, Shein, Uniqlo, and Mango at SKU and category level. All through a single API call.

109.1M Monthly Visits. Zara's Biggest Rival. One API.

Akamai WAF. 403 Access Denied. Handled.

hm.com runs behind Akamai, whose edge network fingerprints every request and returns a hard 403 Access Denied reference page served from errors.edgesuite.net to any request that does not look like a real browser. A plain Python requests, cURL, or datacenter-proxy call to a product page comes back blocked with an Akamai Reference # and no product data, and the x-akamai-transformed response header gives the protection away.

Scrape.do rotates real residential IPs with full browser fingerprints, passes Akamai's bot detection automatically, and returns the fully populated product HTML with title, price, list price, availability, color and size variants, article number, and the embedded JSON-LD ProductGroup schema intact. No Akamai sensor spoofing, no proxy lists, no maintenance.

Akamai WAF. 403 Access Denied. Handled.

How to Scrape H&M

1

Select a Target

Product Page screenshot
2

Send API Request

import requests
import urllib.parse

token = "<SDO-token>"
targetUrl = "https://www2.hm.com/en_us/productpage.1357622001.html"
render = "true"  # set to "false" to disable JavaScript rendering
super = "false"  # set to "true" to enable residential proxies

encodedUrl = urllib.parse.quote(targetUrl)
url = f"https://api.scrape.do/?token={token}&url={encodedUrl}&render={render}&super={super}"

response = requests.get(url)

print(response.text)
3

Get HTML

HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Short-Sleeved Shirt Dress - Green - Ladies | H&M US</title>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "ProductGroup",
    "name": "Short-Sleeved Shirt Dress",
    "brand": { "@type": "Brand", "name": "H&M" },
    "productGroupID": "1357622",
    "material": "Cotton",
    "variesBy": ["https://schema.org/color", "https://schema.org/size"],
    "hasVariant": [
      {
        "@type": "Product",
        "sku": "1357622001003",
        "name": "Short-Sleeved Shirt Dress - Green",
        "color": "Green",
        "size": "S",
        "offers": {
          "@type": "Offer",
          "priceCurrency": "USD",
          "price": 20.99,
          "priceSpecification": {
            "@type": "UnitPriceSpecification",
            "priceType": "https://schema.org/ListPrice",
            "price": 34.99
          },
          "availability": "https://schema.org/InStock"
        }
      }
    ],
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "4.4",
      "reviewCount": "10"
    }
  }
  </script>
</head>
<body>
  <h1 data-testid="product-name">Short-Sleeved Shirt Dress</h1>
  <div class="product-price">
    <span data-testid="red-price">$20.99</span>
    <span data-testid="line-through-white-price">$34.99</span>
  </div>
  <ul class="color-swatches">
    <li data-color="Green" class="selected">Green</li>
    <li data-color="Blue/white striped">Blue/white striped</li>
    <li data-color="Blue/lemons">Blue/lemons</li>
  </ul>
  <div class="sizes">
    <button>XXS</button><button>XS</button><button>S</button>
    <button>M</button><button>L</button><button>XL</button><button>XXL</button>
  </div>
  <button data-testid="pdp_add_to_cart_button">Add to bag</button>
  <button data-testid="find-in-store-button">Find in store</button>
  <div class="reviews">
    <span>Reviews [10]</span>
    <span class="rating">4.4</span>
  </div>
  <dl class="product-description">
    <dt data-testid="description-article-number">Article number</dt>
    <dd>1357622001</dd>
    <dt data-testid="description-garmentLength">Length</dt>
    <dd>Calf length</dd>
    <dt data-testid="description-fits">Fit</dt>
    <dd>Regular fit</dd>
  </dl>
  <div data-testid="grid-gallery">
    <img data-testid="grid-image-1357622001_0"
      src="https://image.hm.com/assets/hm/81/04/81041fed7ff928bf6f7b878907f09b2b6f2bf15c.jpg?imwidth=768">
  </div>
  <!-- ... remaining page content ... -->
</body>
</html>

Scrape.do has been a game-changer with powerful scraping tools, but what truly sets them apart is their excellent customer support.

user avatar
Rogerio C.

CTO

timertimer
capterra best customer support
< 5 min

Average Response Time

No tickets connect with expert engineers.

like changelike change
99.98%

Success rate

hierarchyhierarchy
110 Million

Proxies

trellotrello
+40%

Faster gateway than the closest competitor.

  • Trustpilot Reviews
  • G2 Reviews
  • Capterra Reviews
  • scrapedo capterra most recommended
  • scrapedo capterra best ease of use
  • scrapedo capterra best value
  • capterra best customer support
  • scrapedo capterra front runners

Reliable, Scalable,Unstoppable Web Scraping

START SCRAPING FOR FREE

Sounds great, but I have a few questions..

Yes. hm.com sits behind Akamai, which returns a 403 Access Denied reference page from errors.edgesuite.net to any request that is not a real browser, including Python requests, cURL, and datacenter proxies. Scrape.do rotates real residential IPs with full browser fingerprints, passes Akamai's bot detection automatically, and returns fully rendered product and category HTML. Success rates exceed 95% on product, category, and collection pages.

You can extract product titles, sale prices and struck-through list prices, discount percentages, color and size variants with their SKU codes, availability and in-stock status, article numbers, material and care details, customer ratings and review counts, product images, category breadcrumbs, and the full JSON-LD ProductGroup schema with its hasVariant array of colored and sized offers.

H&M product pages embed a full JSON-LD ProductGroup with prices, variants, availability, and ratings in the server HTML, but a plain request is blocked by Akamai with a 403. A Scrape.do call with render=true routes through a real browser to clear Akamai and returns the fully populated page. Category pages like Women's Dresses are lighter and can often be fetched with super=true alone.