---
title: "Search H&M product listings by free-text keyword"
method: GET
path: "/hm/search"
tags: ["H&M"]
---

# Search H&M product listings by free-text keyword

`GET /hm/search`

## Request

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

Runs a free-text keyword search on H&M and returns products with pricing, images, colors, and per-size stock, plus search-quality metadata (a spelling-correction suggestion, related searches, and a content-filter flag). Unlike category browsing, an obscure or nonsense keyword returns a genuine empty result (zero products) rather than a fallback set. Pagination is page-based and real: requesting a page beyond the real last page returns a normal response with an empty products array rather than an error.

## Query parameters

- `query` string, required
- `page` integer
- `page_size` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- HmSearchResponseDoc
  - `code` integer
  - `data` HmSearchResponse
    - `count` integer
    - `fetched_at` string
    - `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
    - `query` string
    - `search_meta` HmSearchMeta
      - `blocked` boolean
      - `did_you_mean` string[]
      - `query` string
      - `related_searches` 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/0497899e2016?raw)
