# H&M API guide



## Choose a H&M operation



Start with the object your task needs. The groups below use the current catalogue; open an endpoint to check accepted identifiers, filters, price and availability before retrieving.



### Products and categories



- [H&M categories](https://www.monocrawl.com/docs/endpoints/hm/categories) — The category tree of an H&M storefront.

- [H&M product](https://www.monocrawl.com/docs/endpoints/hm/product) — One H&M product: title, price, description, composition, care, colours and variants.

- [H&M product suppliers](https://www.monocrawl.com/docs/endpoints/hm/product-suppliers) — The supplier and factory record the retailer publishes for a product: country, supplier and each factory's name, address and workforce band.



### Other operations



- [H&M storefronts](https://www.monocrawl.com/docs/endpoints/hm/countries) — The retailer's country and language list, by region, with each country's storefront language links.

- [H&M new arrivals](https://www.monocrawl.com/docs/endpoints/hm/new-arrivals) — The newest products on an H&M storefront.

- [H&M similar products](https://www.monocrawl.com/docs/endpoints/hm/similar) — Products similar to one product.

- [H&M stores](https://www.monocrawl.com/docs/endpoints/hm/stores) — Every store in a country: address, coordinates, opening hours, departments and status.



### Search and discovery



- [H&M product search](https://www.monocrawl.com/docs/endpoints/hm/search) — Products matching a keyword on an H&M storefront, with price, colours and images.

- [H&M search suggestions](https://www.monocrawl.com/docs/endpoints/hm/suggestions) — Search suggestions for a partial query.



## Check fields and collection limits



Use the endpoint’s declared parameters and returned continuation. Filters from another platform do not automatically apply here. Preserve source identifiers, URLs and warnings; a successful page does not establish complete history. Published response schemas identify whether they come from a reviewed shaper or observed response shapes.



Agents can use `get_endpoint` for the current contract and `get_docs` with topic `platforms/hm` to read this page. The [coverage guide](https://www.monocrawl.com/docs/data-availability) explains nulls and partial results, and the [production guide](https://www.monocrawl.com/docs/production-checklist) covers budgets and recovery.



## Endpoint reference

## hm/categories

`GET /v1/hm/categories`

The category tree of an H&M storefront.

*H&M categories*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | no | Storefront code — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/categories" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "has_more": false,
  "items": [
    {
      "children": [
        {}
      ],
      "id": "example",
      "name": "example",
      "url": "https://example.com/example"
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/categories#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/categories.json)


## hm/countries

`GET /v1/hm/countries`

The retailer's country and language list, by region, with each country's storefront language links.

*H&M storefronts*

| Parameter | Required | Description |
| --- | --- | --- |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/countries" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "has_more": false,
  "items": [
    {
      "code": "example",
      "languages": [
        {}
      ],
      "name": "example",
      "region": "example",
      "transactional": false
    }
  ],
  "regions": [
    "example"
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/countries#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/countries.json)


## hm/new-arrivals

`GET /v1/hm/new-arrivals`

The newest products on an H&M storefront.

*H&M new arrivals*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | no | Storefront code — e.g. `en_us` |
| `page` | no | Page number — e.g. `1` |
| `limit` | no | Per page — e.g. `22` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/new-arrivals" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "country": "example",
  "cursor": null,
  "has_more": false,
  "items": [
    {
      "category": "example",
      "colour": "example",
      "id": "example",
      "image": "https://example.com/example",
      "images": [
        "example"
      ],
      "in_stock": false,
      "new_arrival": false,
      "platform": "example",
      "price": 0,
      "title": "example",
      "type": "example",
      "url": "https://example.com/example"
    }
  ],
  "page": 0
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/new-arrivals#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/new-arrivals.json)


## hm/product

`GET /v1/hm/product`

One H&M product: title, price, description, composition, care, colours and variants.

*H&M product*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Article code (the number in the product URL) — e.g. `1258254001` |
| `country` | no | Storefront code — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/product?id=1258254001" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "care": [],
  "category": "example",
  "colour": "example",
  "country": "example",
  "currency": "example",
  "id": "example",
  "image": "https://example.com/example",
  "images": [
    "example"
  ],
  "platform": "example",
  "price": 0,
  "rating": {
    "max": 0
  },
  "title": "example",
  "type": "example",
  "variants": [
    {
      "colour": "example",
      "image": "https://example.com/example"
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/product#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/product.json)


## hm/product-suppliers

`GET /v1/hm/product-suppliers`

The supplier and factory record the retailer publishes for a product: country, supplier and each factory's name, address and workforce band.

*H&M product suppliers*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Product id, the digits in the product page URL — e.g. `1303341009` |
| `language` | no | Language code such as en_us — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 2 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/product-suppliers?id=1303341009" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "countries": [
    {
      "id": "example",
      "name": "example",
      "suppliers": [
        {}
      ]
    }
  ],
  "platform": "example",
  "product_id": "example",
  "type": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/product-suppliers#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/product-suppliers.json)


## hm/search

`GET /v1/hm/search`

Products matching a keyword on an H&M storefront, with price, colours and images.

*H&M product search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search keyword — e.g. `jacket` |
| `country` | no | Storefront code from hm/countries — e.g. `en_us` |
| `page` | no | Page number — e.g. `1` |
| `limit` | no | Per page, up to 60 — e.g. `36` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/search?query=jacket" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "cursor": null,
  "has_more": false,
  "items": [
    {
      "category": "example",
      "colour": "example",
      "colours_count": 0,
      "currency": "example",
      "id": "example",
      "image": "https://example.com/example",
      "images": [
        "example"
      ],
      "in_stock": false,
      "new_arrival": false,
      "platform": "example",
      "price": 0,
      "title": "example",
      "type": "example",
      "url": "https://example.com/example"
    }
  ],
  "page": 0,
  "pages": 0,
  "query": "example",
  "total": 0
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/search#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/search.json)


## hm/similar

`GET /v1/hm/similar`

Products similar to one product.

*H&M similar products*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Article code — e.g. `1258254001` |
| `country` | no | Storefront code — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/similar?id=1258254001" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "country": "example",
  "has_more": false,
  "items": [
    {
      "category": "example",
      "colour": "example",
      "id": "example",
      "image": "https://example.com/example",
      "images": [
        "example"
      ],
      "in_stock": false,
      "new_arrival": false,
      "platform": "example",
      "price": 0,
      "title": "example",
      "type": "example",
      "url": "https://example.com/example"
    }
  ],
  "product_id": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/similar#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/similar.json)


## hm/stores

`GET /v1/hm/stores`

Every store in a country: address, coordinates, opening hours, departments and status.

*H&M stores*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | yes | Two-letter country code — e.g. `us` |
| `language` | no | Language code such as en_us — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/stores?country=us" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "country": "example",
  "has_more": false,
  "items": [
    {
      "address": "example",
      "city": "example",
      "country": "example",
      "country_code": "example",
      "departments": [
        {}
      ],
      "id": "example",
      "latitude": 0,
      "longitude": 0,
      "name": "example",
      "opening_hours": [
        {}
      ],
      "phone": "example",
      "platform": "example",
      "postcode": "example",
      "region": "example",
      "status": "example",
      "store_class": "example",
      "type": "example"
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/stores#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/stores.json)


## hm/suggestions

`GET /v1/hm/suggestions`

Search suggestions for a partial query.

*H&M search suggestions*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Partial search text — e.g. `jack` |
| `country` | no | Storefront code — e.g. `en_us` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/hm/suggestions?query=jack" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "has_more": false,
  "items": [
    "example"
  ],
  "query": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/hm/suggestions#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/hm/suggestions.json)

