Discover/Hm API
live

Hm APIhm.com

Access H&M US product catalog via API. Search by keyword, retrieve prices, sizes, stock status, color variants, and images for any H&M article.

Endpoint health
verified 21h ago
search_products
get_product_details
2/2 passing latest checkself-healing
Endpoints
2
Updated
22d ago

What is the Hm API?

The H&M API provides 2 endpoints covering the US product catalog, letting you search by keyword and retrieve per-article detail. The search_products endpoint returns paginated listings with prices, image URLs, and color swatches, while get_product_details returns size-level stock status, color variants, structured pricing, and product descriptions — all indexed by H&M article code.

Try it
Page number for pagination, starting at 1
Search keyword (e.g., 'jacket', 'dress', 'shoes')
api.parse.bot/scraper/d7e79149-f317-41bf-a1f3-cc435e8b63e5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d7e79149-f317-41bf-a1f3-cc435e8b63e5/search_products?page=1&query=jacket' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace hm-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: H&M Product Search & Details — bounded, re-runnable; every call capped."""
from parse_apis.h_m_product_search___details_api import HM, ProductNotFound

client = HM()

# Search for jackets — limit caps total items fetched across pages.
for item in client.productsummaries.search(query="jacket", limit=5):
    print(item.title, item.price, item.is_out_of_stock)

# Drill into the first result's full details via the navigation op.
summary = client.productsummaries.search(query="dress", limit=1).first()
if summary:
    product = summary.details()
    print(product.product_name, product.brand)
    for size in product.sizes:
        print(size.label, size.in_stock)

# Direct point-lookup by article code.
try:
    detail = client.products.get(article_code="1354317002")
    print(detail.product_name, detail.availability.stock_state)
    for color in detail.colors:
        print(color.color_name, color.color_code)
except ProductNotFound as exc:
    print(f"Product not found: {exc}")

print("exercised: productsummaries.search / summary.details / products.get")
All endpoints · 2 totalmissing one? ·

Search H&M products by keyword with pagination. Returns product listings with name, price, images, product URL, color swatches, and availability status. Uses the H&M search API which returns up to 36 products per page.

Input
ParamTypeDescription
pageintegerPage number for pagination, starting at 1
queryrequiredstringSearch keyword (e.g., 'jacket', 'dress', 'shoes')
Response
{
  "type": "object",
  "fields": {
    "query": "string, search keyword echoed back",
    "products": "array of product objects with article_code, title, brand, price, prices, product_url, image_product, image_model, gallery_images, category, is_new, is_out_of_stock, swatches",
    "pagination": "object with page, page_size, total_pages, total_items",
    "total_hits": "integer, total number of matching products"
  },
  "sample": {
    "data": {
      "query": "jacket",
      "products": [
        {
          "brand": "H&M",
          "price": "$59.99",
          "title": "Linen-Blend Jacket",
          "is_new": false,
          "prices": [
            {
              "price": 59.99,
              "price_type": "whitePrice",
              "formatted_price": "$59.99"
            }
          ],
          "category": "Dark brown",
          "swatches": [
            {
              "url": "https://www2.hm.com/en_us/productpage.1336927005.html",
              "article_id": "1336927005",
              "color_code": "3C2A2B",
              "color_name": "Dark brown",
              "product_image": "https://image.hm.com/assets/hm/b8/b5/b8b5e5d10737110884575b2b0f6a6e0a3ae2d4e1.jpg"
            }
          ],
          "image_model": "https://image.hm.com/assets/hm/d5/a8/d5a8ccb47610547319962815dcf4a946183322d3.jpg",
          "product_url": "https://www2.hm.com/en_us/productpage.1336927005.html",
          "article_code": "1336927005",
          "image_product": "https://image.hm.com/assets/hm/b8/b5/b8b5e5d10737110884575b2b0f6a6e0a3ae2d4e1.jpg",
          "gallery_images": [
            "https://image.hm.com/assets/hm/5c/bf/5cbf81502d48c8c4d5975973d9c4ddeb06c1cb0d.jpg"
          ],
          "is_out_of_stock": false
        }
      ],
      "pagination": {
        "page": 1,
        "page_size": 36,
        "total_items": 902,
        "total_pages": 26
      },
      "total_hits": 902
    },
    "status": "success"
  }
}

About the Hm API

Search the H&M Catalog

The search_products endpoint accepts a query string (e.g., 'jacket', 'linen trousers') and an optional page integer for pagination. Each result in the products array includes article_code, title, brand, price, a prices array, product_url, image_product, image_model, and gallery_images. The pagination object carries page, page_size, total_pages, and total_items, and total_hits gives the full result count across all pages.

Per-Article Detail

Passing an article_code from search results to get_product_details returns a richer object. The sizes array lists each size label alongside an in_stock boolean, so you can tell at a glance which sizes are currently available. The colors array exposes all color variants for that style — each entry has article_id, color_name, color_code, product_image, and a direct url to that variant. The prices array is structured with price_type, price, formatted_price, min_price, and max_price fields, making it straightforward to detect sale or range pricing.

Additional Fields

get_product_details also returns a description string, a model_image URL, an images array of additional product photography, an is_new boolean flagging new arrivals, and a category field containing the internal category code. Together these fields give you enough data to render a full product page or feed a price-monitoring pipeline without additional requests.

Reliability & maintenanceVerified

The Hm API is a managed, monitored endpoint for hm.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hm.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official hm.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
21h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price changes on specific H&M articles by polling get_product_details and comparing the prices array over time.
  • Build a size availability checker that surfaces only in-stock sizes using the sizes[].in_stock field.
  • Aggregate H&M new arrivals by filtering get_product_details results where is_new is true.
  • Populate a product feed or affiliate catalog with structured titles, images, and URLs from search_products.
  • Compare color variant availability across a style by iterating the colors array returned by get_product_details.
  • Power a fashion search tool that queries H&M by category keyword and paginates through all matching results.
  • Monitor whether specific sizes go in or out of stock for restock notification workflows.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does H&M offer an official developer API?+
H&M does not publish a public developer API or developer portal for accessing its product catalog. This Parse API provides structured access to H&M US product data without requiring a direct relationship with H&M.
How does the `get_product_details` endpoint handle products with multiple color variants?+
The colors array returns one object per color variant, each containing its own article_id, color_name, color_code, product_image, and url. Because each color variant has a distinct article_id, you can call get_product_details separately for each variant to get that variant's specific size availability and pricing.
Does the API cover H&M stores outside the United States?+
The API covers the H&M US catalog only. Other regional storefronts — such as H&M UK, H&M EU, or H&M markets in Asia — are not currently included. You can fork this API on Parse and revise it to target a different regional H&M domain if you need non-US coverage.
Are customer reviews or ratings available through this API?+
Not currently. The API covers product details including prices, sizes, color variants, descriptions, and images, but does not return customer review text or star ratings. You can fork this API on Parse and revise it to add a reviews endpoint if that data is needed.
What is the `article_code` field and where do I get it?+
Each product in a search_products response includes an article_code string that uniquely identifies that product in H&M's catalog. Pass that value directly as the article_code input to get_product_details to retrieve full product information for that item.
Page content last updated . Spec covers 2 endpoints from hm.com.
Related APIs in EcommerceSee all →
H&M API
Access H&M's product catalog, search, category navigation, sale and new-arrival listings, product details, similar-item recommendations, and US store locations.
hanes.com API
Search and browse Hanes clothing products across categories like men's, women's, and sale items, and retrieve detailed information including sizes, colors, and real-time availability. Find exactly what you're looking for with product variants and comprehensive details to compare options before purchase.
homedepot.com API
Search and browse Home Depot's product catalog to compare pricing, check real-time availability, and review detailed product specifications. Find products across all categories, look up store locations and hours, and check fulfillment options including in-store pickup and delivery.
stories.com API
Search & Other Stories' catalog to find products by name or category, and retrieve detailed information including pricing, images, available sizes, colors, and materials for each item. Get comprehensive product details to compare styles, check inventory across variations, and make informed shopping decisions.
abercrombie.com API
Search and browse Abercrombie & Fitch products across categories, new arrivals, and clearance items while retrieving detailed product information like pricing and availability. Access curated collections and find exactly what you're looking for with powerful search capabilities.
cos.com API
Search and browse COS fashion products by name or category to instantly access pricing, product images, and direct links to items. Retrieve detailed information about specific products including descriptions, availability, and pricing to compare styles and make informed shopping decisions.
ahlens.se API
Search and browse products from Åhléns Swedish department store to get pricing, images, brands, and category information, with autocomplete suggestions to help you find what you're looking for. Access detailed product information and explore items across different categories in real-time.
hunkemoller.com API
Browse Hunkemöller's product catalog by category, search for items, view detailed product information, and discover new arrivals with filtering options. Find store locations and compare products to shop for lingerie and intimate apparel across their collection.