Endpoint Playground
Test Crawlora's H&M Product Search API with realistic prefilled parameters. Generate a cURL request, inspect the expected structured JSON response, and open the full docs or pricing page when you are ready to integrate this public web data extraction endpoint into your application.
curl "https://api.crawlora.net/api/v1/hm/search?query=<query>" \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| query | string | Yes | Free-text search keyword | |
| page | integer | No | Page number, one-based, defaults to 1 | |
| page_size | integer | No | Results per page, 1 to 72, defaults to 36 |
{
"code": 200,
"data": {
"count": 1,
"fetched_at": "sample",
"page": 1,
"page_size": 1,
"products": [
{
"availability": "sample",
"brand": "sample",
"category_code": "sample",
"colors": [
{
"article_id": "sample-id",
"color_code": "sample",
"image_url": "https://example.com/resource",
"name": "sample",
"url": "https://example.com/resource"
}
],
"coming_soon": true,
"currency": "sample",
"formatted_price": "sample",
"id": "sample-id",
"image_url": "https://example.com/resource",
"model_image_url": "https://example.com/resource",
"name": "sample",
"new_arrival": true,
"price": 1.23,
"sizes": [
{
"id": "sample-id",
"label": "sample",
"stock": 1
}
],
"url": "https://example.com/resource"
}
],
"query": "sample",
"search_meta": {
"blocked": true,
"did_you_mean": [
"sample"
],
"query": "sample",
"related_searches": [
"sample"
]
},
"source_url": "https://example.com/resource",
"total_hits": 1,
"total_pages": 1
},
"msg": "OK"
}Public Playground
Sample responses, schemas, request previews, and code snippets are visible before sign in. Create an account when you are ready to save an API key and run authenticated requests.
Runs a free-text keyword search against H&M's own app-backend search data and returns normalized 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.
{
"code": 200,
"data": {
"count": 1,
"fetched_at": "sample",
"page": 1,
"page_size": 1,
"products": [
{
"availability": "sample",
"brand": "sample",
"category_code": "sample",
"colors": [
{
"article_id": "sample-id",
"color_code": "sample",
"image_url": "https://example.com/resource",
"name": "sample",
"url": "https://example.com/resource"
}
],
"coming_soon": true,
"currency": "sample",
"formatted_price": "sample",
"id": "sample-id",
"image_url": "https://example.com/resource",
"model_image_url": "https://example.com/resource",
"name": "sample",
"new_arrival": true,
"price": 1.23,
"sizes": [
{
"id": "sample-id",
"label": "sample",
"stock": 1
}
],
"url": "https://example.com/resource"
}
],
"query": "sample",
"search_meta": {
"blocked": true,
"did_you_mean": [
"sample"
],
"query": "sample",
"related_searches": [
"sample"
]
},
"source_url": "https://example.com/resource",
"total_hits": 1,
"total_pages": 1
},
"msg": "OK"
}curl "https://api.crawlora.net/api/v1/hm/search?query=<query>" \
-H "x-api-key: $CRAWLORA_API_KEY"