---
title: "Browse an H&M category's product listing"
method: GET
path: "/hm/listing"
tags: ["H&M"]
---

# Browse an H&M category's product listing

`GET /hm/listing`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/hm/listing`
- Auth: API key in header `x-api-key`

Returns one H&M category's product listing page: products with pricing, images, colors, and per-size stock. category_id is an H&M category slug (e.g. ladies_newarrivals_all, men_newarrivals_all, ladies_jeans) -- there is no category/nav-tree discovery endpoint, so category_id values come 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.

## Query parameters

- `category_id` string, required
- `page` integer
- `page_size` integer
- `sort` 'RELEVANCE' | 'NEWEST_FIRST' | 'PRICE_ASCENDING' | 'PRICE_DESCENDING'
- `is_new` boolean

## Headers

- `x-api-key` string, required

## Response `200`

OK

- HmListingResponseDoc
  - `code` integer
  - `data` HmListingResponse
    - `category_id` string
    - `count` integer
    - `fetched_at` string
    - `is_new` boolean
    - `page` integer
    - `page_size` integer
    - `products` HmProductSummary[]
      - `availability` string
      - `brand` string
      - `category_code` string
      - `colors` HmColorSwatch[]
        - `article_id` string
        - `color_code` string
        - `image_url` string
        - `name` string
        - `url` string
      - `coming_soon` boolean
      - `currency` string
      - `formatted_price` string
      - `id` string
      - `image_url` string
      - `model_image_url` string
      - `name` string
      - `new_arrival` boolean
      - `price` number
      - `sizes` HmSizeStock[]
        - `id` string
        - `label` string
        - `stock` integer
      - `url` string
    - `sort` string
    - `source_url` string
    - `total_hits` integer
    - `total_pages` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
