Luxury retail pricing and stock monitoring
Usa los endpoints de Hermès para convertir luxury retail pricing and stock monitoring en solicitudes API repetibles con inputs documentados y respuestas JSON.
Turn Hermès' own storefront and product APIs into structured luxury retail data — a browsable category taxonomy, keyword search and per-category browsing with live facets, full product detail with every color and size variant, cross-sell recommendations, a sitemap-backed catalogue index for near-complete coverage, search-box autocomplete, and the worldwide store directory. All normalized JSON, credential-free.
Browse Hermès categories, search or list the full catalogue, get product detail with variants and recommendations, and look up stores as JSON.
Familias de endpoints
6
Parámetros documentados
29
Ejemplos
8
Snapshot en vivo del catálogo
Endpoints activos
8
Métodos
GET
Parámetros obligatorios
12
Referencias de esquema
8
{
"platform": "Hermès",
"endpoint": "hermes-search",
"method": "GET",
"path": "/hermes/search",
"auth": "apiKey"
}Casos de uso
Browse Hermès categories, search or list the full catalogue, get product detail with variants and recommendations, and look up stores as JSON.
Usa los endpoints de Hermès para convertir luxury retail pricing and stock monitoring en solicitudes API repetibles con inputs documentados y respuestas JSON.
Usa los endpoints de Hermès para convertir category and catalogue coverage research en solicitudes API repetibles con inputs documentados y respuestas JSON.
Usa los endpoints de Hermès para convertir store network and market-availability mapping en solicitudes API repetibles con inputs documentados y respuestas JSON.
Ejecución gestionada
Cada cifra de abajo se lee directamente del catálogo de endpoints en vivo de Hermès — 8 endpoints, 29 parámetros de solicitud documentados y 8 esquemas de respuesta publicados — el mismo catálogo contra el que corren Docs y Playground.
8 documented Hermès endpoints, grouped into 7 request families — Product, Categories and Category, plus 4 more.
29 request parameters are documented across those Hermès endpoints, 12 of them required — the full input contract is public before you write any integration code.
8 of the 8 Hermès endpoints ship a recorded example response, and 8 carry a documented response schema — you can code against the real JSON before the first request.
Hermès endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
8 hosted MCP tools back the Hermès endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Mapa de cobertura
Estas tarjetas se generan a partir del catálogo de endpoints activo, así que la landing page refleja la misma superficie de API que usan Docs y Playground.
/hermes/product
/hermes/categories
/hermes/category
/hermes/products
/hermes/search
/hermes/stores
Catálogo de endpoints
/hermes/searchSearches the Hermès catalogue by keyword and returns a page of normalized products in the same shape as hermes-category. A query Hermès has no match for returns total 0 with an empty products array: Hermès itself renders unrelated fallback recommendations on a no-results page, and those are deliberately not returned as results. When Hermès applies its own spelling correction the corrected term is reported in results_for. Page size is fixed at 48 by Hermès and cannot be changed.
Notas de la respuesta
- **A query with no matches returns `total` 0 and an empty `products` array.** Hermès' own no-results page still renders around 18 unrelated recommendations; those are deliberately not returned, so an empty result is never disguised as a list of unrelated products. - `results_for` appears only when Hermès applied its own spelling correction and searched for a different term than the one supplied. - **Page 1 is fully validated; pages beyond 1 are best-effort and should be treated as provisional.** Hermès gates the paginated URL shape harder than the bare one — its own `robots.txt` disallows the parameter that carries the offset, so those URLs are never edge-cached and always reach the origin's bot defense. Measured on cold categories: page 1 passed 10/10 while page 2 was blocked 10/10 in the same run on the same backends. When a page beyond 1 cannot be fetched the endpoint returns an upstream error rather than silently returning page 1 again. - **Page size is fixed at 48 by Hermès and cannot be changed.** `page_size` always reports 48; a page past the end returns an empty `products` array with the real `total` still reported. - `price` is a bare number as Hermès publishes it; `currency` is the ISO-4217 code for the selected market. - `filters` are the facet groups Hermès offers for the query, and are informational — this endpoint does not currently accept facet filters as inputs. A no-results query returns no facet groups. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "query": "scarf", "total": 1078, "page": 1, "page_size": 48, "products": [ { "sku": "H004368S 04", "title": "La Nature en Voyage scarf 90", "url": "https://www.hermes.com/us/en/product/la-nature-en-voyage-scarf-90-H004368Sv04/", "slug": "la-nature-en-voyage-scarf-90", "price": 505, "currency": "USD", "price_type": "fixed", "color": "Blue", "colorless": false, "more_colors": true, "size": "", "product_code": "S1A1", "department_code": "S", "family_code": "S01", "division_code": "01", "in_stock": true, "in_store": false, "personalizable": false, "images": [ "https://assets.hermes.com/is/image/hermesproduct/004368S%2004_front_wm_1" ] } ], "filters": [] } } ```
Herramienta MCP hermes_search
/hermes/suggestReturns Hermès' own search-box autocomplete for a partial term: matching categories with the number of items behind each, and matching products. The category codes returned are the same codes hermes-category accepts, so a suggestion feeds straight into a category browse. An empty query is supported and returns Hermès' default suggestions rather than an error.
Notas de la respuesta
- `categories[].code` is the same category code `hermes-category` accepts, so a suggestion feeds straight into a category browse without a lookup. - `categories[].results` is how many items Hermès has behind that category for the term. - `products[].sku` can be passed to `hermes-product`. Note that belt and strap combinations carry a longer composite sku (`U_BELT_38_HOMME-H081675CP2K-H081779CAAA120`). - Either list may be empty for a term Hermès has no match for; that is a genuine empty result, not an error. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "query": "bel", "categories": [ { "label": "Belts in Women collection", "code": "WOMEN_BELTS", "results": 293 }, { "label": "Belts in Men collection", "code": "MEN_BELTS", "results": 193 } ], "products": [ { "label": "Tube H belt buckle & Reversible leather strap 38 mm", "sku": "U_BELT_38_HOMME-H081675CP2K-H081779CAAA120", "url": "https://www.hermes.com/us/en/product/tube-h-belt-buckle-reversible-leather-strap-38-mm-U_BELT_38_HOMME/", "image": "https://assets.hermes.com/is/image/hermesproduct/081675CP_front_1" } ] } } ```
Herramienta MCP hermes_suggest
/hermes/categoriesReturns 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.
Notas de la respuesta
- `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. - The taxonomy is market-specific: names and paths are localized, and the set of categories can differ between markets. Example response: ```json { "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 } ] } } ```
Herramienta MCP hermes_categories
/hermes/categoryBrowses one Hermès product category and returns a page of normalized products (SKU, title, price with currency, colour, size, stock, images) plus the facet groups Hermès offers for that category, and the category's own title and description. The category parameter takes a category code from hermes-categories, which is the discovery endpoint for every accepted value. Page size is fixed at 48 by Hermès and cannot be changed. Prices are returned with the ISO-4217 currency for the selected market, since Hermès itself publishes bare numbers.
Notas de la respuesta
- **Page 1 is fully validated; pages beyond 1 are best-effort and should be treated as provisional.** Hermès gates the paginated URL shape harder than the bare one — its own `robots.txt` disallows the parameter that carries the offset, so those URLs are never edge-cached and always reach the origin's bot defense. Measured on cold categories: page 1 passed 10/10 while page 2 was blocked 10/10 in the same run on the same backends. When a page beyond 1 cannot be fetched the endpoint returns an upstream error rather than silently returning page 1 again. - **Page size is fixed at 48 by Hermès and cannot be changed.** `page_size` always reports 48. `total` is the full result count, so the last page may hold fewer than 48 products and a page past the end returns an empty `products` array with the real `total` still reported. - `price` is a bare number as Hermès publishes it; `currency` is the ISO-4217 code for the selected market, so prices from different markets are not silently comparable. - `in_stock` is online availability; `in_store` reports that Hermès shows the item as available in its physical stores. Many Hermès pieces are listed but not purchasable online. - `size` is empty for items Hermès marks as having no size. - `filters` are the facet groups Hermès itself offers for this category. They are informational — this endpoint does not currently accept facet filters as inputs. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "code": "WOMEN_SHOES_SNEAKERS", "name": "Sneakers", "title": "Women's leather sneakers & trainers", "description": "Explore all styles of women's sneakers...", "path": "/us/en/category/women/shoes/sneakers/", "url": "https://www.hermes.com/us/en/category/women/shoes/sneakers/", "total": 100, "page": 1, "page_size": 48, "products": [ { "sku": "H252013Z BM360", "title": "Jet sneaker", "url": "https://www.hermes.com/us/en/product/jet-sneaker-H252013ZvBM/", "slug": "jet-sneaker", "price": 1300, "currency": "USD", "price_type": "fixed", "color": "Blue", "colorless": false, "more_colors": false, "size": "36", "product_code": "Z857", "department_code": "Z", "family_code": "Z01", "division_code": "02", "in_stock": true, "in_store": false, "personalizable": false, "images": [ "https://assets.hermes.com/is/image/hermesproduct/252013Z%20BM_front_wm_1" ] } ], "filters": [ { "name": "Line", "attribute": "display_name", "values": [{ "name": "Jet", "value": "jet", "count": 20 }] } ] } } ```
Herramienta MCP hermes_category
/hermes/productReturns one Hermès product's full detail: title, description, dimensions, the Hermès colour name, country of manufacture, price with its market currency, stock, every product image, and the complete colour and size variant matrix with per-variant sku, price, stock and image. Care, gift and delivery text are returned as Hermès' own HTML fragments. sku accepts the reference-plus-colour form (H252013Z BM), the fuller listing sku that also carries size (H252013Z BM360), or the URL identifier returned by hermes-products (H252013ZvBM).
Notas de la respuesta
- `price` is a bare number as Hermès publishes it; `currency` is the ISO-4217 code for the selected market. - `variants.colors` and `variants.sizes` are the full purchasable matrix, each entry carrying its own sku, price, stock, URL and image — so a caller can enumerate every variant without further requests. - `color_name` is Hermès' own colour name (`bleu galet/blanc`), while `colors` is the coarse colour family it files the item under (`Blue`). - `care_instructions`, `gift` and `delivery_and_returns` are returned as Hermès' own HTML fragments rather than flattened to text, because their markup carries links and structure. - `size` is empty for items Hermès marks as having no size. - A sku Hermès does not recognize returns `404`. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "sku": "H252013Z BM360", "title": "Jet sneaker", "product_code": "Z857", "url": "https://www.hermes.com/us/en/product/jet-sneaker-H252013ZvBM/", "slug": "jet-sneaker", "price": 1300, "currency": "USD", "price_type": "fixed", "description": "Sneaker in parachute fabric and suede goatskin...", "dimensions": "Sole height: 0.87\"", "made_in": "Made in Italy", "color_name": "bleu galet/blanc", "colors": ["Blue"], "size": "36", "materials": ["Textile"], "gender": ["Women"], "categories": ["WOMEN_SHOES_SNEAKERS"], "in_stock": true, "in_store": false, "personalizable": false, "images": ["https://assets.hermes.com/is/image/hermesproduct/252013Z%20BM_front_wm_1"], "variants": { "colors": [ { "sku": "H252013Z 02360", "title": "Jet sneaker", "color": "noir", "price": 1300, "url": "https://www.hermes.com/us/en/product/jet-sneaker-H252013Zv02360/", "image": "https://assets.hermes.com/is/image/hermesproduct/252013Z%2002_thumbnail_20", "in_stock": true } ], "sizes": [ { "sku": "H252013Z BM365", "title": "Jet sneaker", "size": "36.5", "price": 1300, "in_stock": true } ] } } } ```
Herramienta MCP hermes_product
/hermes/product/recommendationsReturns the cross-sell shelves Hermès shows on a product page: "keep exploring" (similar items) and "perfect partner" (items styled with it), each a list of normalized products with price, stock and image. Takes the same sku forms as hermes-product. A product Hermès offers no recommendations for returns an empty shelves list rather than an error.
Notas de la respuesta
- Two shelves are possible: `keep_exploring` (similar items) and `perfect_partner` (items Hermès styles with it). Only shelves Hermès actually returns are included, so a product may have one, both or neither. - A product Hermès offers no recommendations for returns an empty `shelves` array rather than an error. - Products in a shelf use the same shape as `hermes-category` results, so they carry price, currency, stock and images and can be fed straight back into `hermes-product`. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "sku": "H252013Z BM360", "shelves": [ { "name": "perfect_partner", "total": 4, "products": [ { "sku": "H410001F 8553", "title": "Uni ring, medium model", "url": "https://www.hermes.com/us/en/product/uni-ring-H410001Fv85/", "price": 475, "currency": "USD", "in_stock": true, "images": ["https://assets.hermes.com/is/image/hermesproduct/410001F%2085_front_wm_1"] } ] } ] } } ```
Herramienta MCP hermes_product_recommendations
/hermes/productsReturns a page of Hermès' full catalogue index for one market: each product's URL, slug, URL identifier and the date Hermès last modified it. Built from Hermès' own product sitemap, so it enumerates the entire catalogue for that market including items no category listing surfaces. Use changed_since to return only products added or updated on or after a date, which makes this a new-arrivals feed. The product_id is the identifier used in the product URL and is NOT the same string as the sku returned by hermes-category and hermes-search, which also encodes size.
Notas de la respuesta
- **`product_id` is the identifier used in the product URL, and is not the same string as the `sku` returned by `hermes-category` and `hermes-search`.** The URL identifier joins Hermès' reference and colour codes with a `v` (`H252013ZvBM`); the sku additionally encodes size (`H252013Z BM360`). They are related but not interchangeable, and this endpoint does not invent a conversion between them. - A small number of products are belt or strap combinations whose identifier contains underscores (`U_BELT_13pH010384CDZ2pH065538CAAB065`). These are returned like any other product. - `last_modified` is Hermès' own sitemap timestamp. Hermès restamps the sitemap daily, so a same-day `changed_since` can match a large share of the catalogue. - A page past the end returns an empty `products` array with the real `total` still reported. - This endpoint carries no price, stock or attribute data. Hermès does not serve product detail pages to automated clients, so per-product fields are available only for items that appear in a `hermes-category` or `hermes-search` listing. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "total": 4082, "page": 1, "limit": 100, "products": [ { "product_id": "H000044Ev01M", "slug": "chut-iii-anti-noise-bonnet", "url": "https://www.hermes.com/us/en/product/chut-iii-anti-noise-bonnet-H000044Ev01M/", "last_modified": "2026-09-07" } ] } } ```
Herramienta MCP hermes_products
/hermes/storesReturns Hermès' worldwide store directory: name, street address, city, postal code, country, geographic coordinates, phone, displayed opening hours, whether in-store appointments are offered, and store photos. Optionally narrowed to one country (by name or ISO-2 code) or city. Hermès publishes the same worldwide directory for every market, so locale selects the language names are returned in rather than which stores are listed.
Notas de la respuesta
- **Hermès publishes the same worldwide directory for every market**, so `locale` selects the language store names are returned in, not which stores are listed. Filter with `country`/`city` to narrow the set. - A `country` or `city` filter that matches nothing returns `total` 0 with an empty `stores` array. An unfiltered request that parses to zero stores is treated as upstream drift and returns an error instead, so an empty result is never mistaken for "Hermès has no stores". - `opening_hours` is Hermès' own HTML fragment, returned verbatim rather than parsed into a structured schedule, because the format varies by market. - `appointment_in_store` reports whether that store offers booked appointments. Example response: ```json { "code": 200, "msg": "ok", "data": { "locale": "us_en", "total": 305, "stores": [ { "id": "04D84F8F", "name": "Hermès Faubourg Saint-Honoré", "street": "24 rue du Faubourg Saint-Honoré", "city": "Paris", "postal_code": "75008", "country": "France", "country_code": "fr", "continent": "Europe", "phone": "+33 1 40 17 46 00", "latitude": 48.8703, "longitude": 2.3169, "opening_hours": "<li>Monday to Saturday - 10:30 am to 7 pm</li>", "appointment_in_store": true, "url": "https://www.hermes.com/us/en/find-store/france/paris/hermes-faubourg-04D84F8F/", "images": [ "https://assets.hermes.com/is/image/hermesedito/store-04D84F8F-1" ] } ] } } ```
Herramienta MCP hermes_stores
APIs relacionadas
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Cómo hacer scraping de Hermès
Crawlora's Hermès endpoints return category, search, product, recommendation, catalogue-index, autocomplete, and store data as normalized JSON with one API key — Hermès has no plain-HTTP path at all, so every call goes through the render fleet except the catalogue index and store directory, which read cached or edge-cached sources directly.
Call /hermes/categories for every browsable category code and name, market by market. Pass a code to /hermes/category for a page of normalized products plus the facet groups Hermès offers for it, or send a keyword to /hermes/search for the same product shape by query instead. Both accept a locale for market and language, and both cap at Hermès' fixed 48-item page size — page 1 is fully validated, later pages are best-effort since Hermès' own robots.txt disallows the offset parameter.
Pass a sku from a category, search, or suggest result to /hermes/product for full detail — every color and size variant with its own price and stock, care instructions, and images. Pass the same sku to /hermes/product/recommendations for the keep_exploring and perfect_partner cross-sell shelves Hermès shows on that product page.
Use /hermes/products for a paginated feed built from Hermès' own product sitemap — around 3,400 to 5,000 items per market including products no category or search surfaces, each with its URL, slug, and last-modified date. Add changed_since to turn it into a new-arrivals feed. It carries no price or stock data; pair it with the product endpoint for that.
Send a partial term to /hermes/suggest for Hermès' own autocomplete — matching category codes with item counts, plus matching product skus, both feeding straight into the category or product endpoints. Call /hermes/stores, optionally filtered by country or city, for the worldwide store directory with address, coordinates, hours, and appointment availability — the same directory is returned for every market, since locale only changes the language.
Preguntas frecuentes
Call /hermes/categories for every browsable category code and name for a market, then pass a code to /hermes/category for that category's page of normalized products and its own facet groups. Editorial and story tiles with no browsable page are excluded, so every code /hermes/categories returns is one /hermes/category will accept.
Page 1 is fully validated. Hermès' own robots.txt disallows the offset parameter that carries later pages, so those never reach an edge cache and always hit its bot defense directly — measured at 10/10 blocked on page 2 versus 10/10 passing on page 1 in the same run. A page that cannot be fetched returns an upstream error rather than silently repeating page 1.
/hermes/product accepts three interchangeable forms: the bare reference-plus-colour Hermès' own frontend sends (H252013Z BM), the fuller sku with size that /hermes/category and /hermes/search return (H252013Z BM360), or the URL identifier /hermes/products returns (H252013ZvBM). All three resolve to the same product; an unrecognized sku returns 404.
No — /hermes/products is built from Hermès' own sitemap and carries only URL, slug, and last-modified date for near-complete catalogue coverage, since Hermès does not serve full product detail pages to automated clients at that scale. Price, stock, and variant data are only available for items that also appear in a /hermes/category or /hermes/search result, or by looking the sku up directly on /hermes/product.
No — /hermes/stores returns the same worldwide store directory regardless of the locale parameter, which only changes the language store names are returned in. Filter with country or city to narrow the set; a filter that matches nothing returns an empty list, while an unfiltered request that parses to zero stores is treated as upstream drift rather than a genuine empty result.