Hermes API endpoint
Returns every browsable Hermès category for a market: the category code hermes-category accepts, its display name, its page path and absolute URL, its parent code and its depth in the tree. This is the discovery endpoint for hermes-category's category parameter, so every accepted value is obtainable from this API rather than by reading the website. Editorial and story tiles that carry no browsable category page are excluded, so every code returned is one hermes-category will accept.
/hermes/categoriesReturns every browsable Hermès category for one market. This is the
discovery endpoint for hermes-category's category parameter — every
value that endpoint accepts is obtainable here, so a category code never
has to be guessed or read off the website.
Query parameters:
locale (optional) — market and language, default us_en. One of:
at_de, au_en, be_en, be_fr, br_pt, ca_en, ca_fr, ch_de, ch_fr, cz_en, de_de, dh_en, dk_en, es_es, fi_en, fr_fr, gr_en, hk_en, ie_en, it_it, jp_ja, kr_ko, lu_fr, mo_en, mx_es, my_en, nl_en, no_en, pl_en, pt_en, ri_en, se_en, sg_en, th_en, tw_zh, uk_en, us_en.
Any other value returns 400 before any upstream request is made.Notable response behavior:
code is the value to pass to hermes-category. path and url point
at the same category on hermes.com for the selected market.parent_code is empty for a top-level department; depth is 0 there and
increases with nesting. children counts direct subcategories.| Field | Filled in, of 175 checked | Values in the sample |
|---|---|---|
| code | 175 | |
| name | 175 | “Women” and 129 other values |
| path | 175 | “/us/en/category/women/” and 174 other values |
| url | 175 | hermes.com |
| depth | 175 | 0 to 2, median 2 |
| children | 175 | 0 to 18, median 0 |
| parent_code | 166 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| locale | string | No | Market and language. One of: at_de, au_en, be_en, be_fr, br_pt, ca_en, ca_fr, ch_de, ch_fr, cz_en, de_de, dh_en, dk_en, es_es, fi_en, fr_fr, gr_en, hk_en, ie_en, it_it, jp_ja, kr_ko, lu_fr, mo_en, mx_es, my_en, nl_en, no_en, pl_en, pt_en, ri_en, se_en, sg_en, th_en, tw_zh, uk_en, us_en Allowed values: at_de, au_en, be_en, be_fr, br_pt, ca_en, ca_fr, ch_de, ch_fr, cz_en, de_de, dh_en, dk_en, es_es, fi_en, fr_fr, gr_en, hk_en, ie_en, it_it, jp_ja, kr_ko, lu_fr, mo_en, mx_es, my_en, nl_en, no_en, pl_en, pt_en, ri_en, se_en, sg_en, th_en, tw_zh, uk_en, us_en. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/hermes/categories?locale=at_de" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "ok",
"data": {
"locale": "us_en",
"total": 176,
"categories": [
{
"code": "WOMEN",
"name": "Women",
"path": "/us/en/category/women/",
"url": "https://www.hermes.com/us/en/category/women/",
"depth": 0,
"children": 8
},
{
"code": "WOMEN_SHOES_SNEAKERS",
"name": "Sneakers",
"path": "/us/en/category/women/shoes/sneakers/",
"url": "https://www.hermes.com/us/en/category/women/shoes/sneakers/",
"parent_code": "WOMEN_SHOES",
"depth": 2,
"children": 0
}
]
}
}Request schema
No body schema
Response schema
#/definitions/hermes.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | hermes.CategoriesResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].children | integer | No | ||||
| data.categories[].code | string | No | ||||
| data.categories[].depth | integer | No | ||||
| data.categories[].name | string | No | ||||
| data.categories[].parent_code | string | No | ||||
| data.categories[].path | string | No | ||||
| data.categories[].url | string | No | ||||
| data.locale | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | ok |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/hermes/categories?locale=at_de" \
-H "x-api-key: $CRAWLORA_API_KEY"