Retail pricing and availability monitoring
Use Zara endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Turn Zara's public storefront into structured retail data — keyword product search with pagination, full category listings with pricing and availability, and per-color product detail with real marketing copy, per-size stock, and full image galleries, all as normalized JSON. Credential-free.
Search Zara products, browse category listings, and get full product detail — pricing, images, sizes, and availability — as structured JSON.
Endpoint families
6
Documented params
18
Examples
6
Live catalog snapshot
Active endpoints
6
Methods
GET
Required params
13
Schema refs
6
{
"platform": "Zara",
"endpoint": "zara-search",
"method": "GET",
"path": "/zara/search",
"auth": "apiKey"
}Use cases
Search Zara products, browse category listings, and get full product detail — pricing, images, sizes, and availability — as structured JSON.
Use Zara endpoints to turn retail pricing and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Use Zara endpoints to turn category catalog and product research into repeatable API requests with documented inputs and JSON responses.
Use Zara endpoints to turn colorway and stock tracking into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Zara endpoint catalog — 6 endpoints, 18 documented request parameters, and 6 published response schemas — the same catalog Docs and Playground run against.
6 documented Zara endpoints, grouped into 6 request families — Categories, Category and Product, plus 3 more.
18 request parameters are documented across those Zara endpoints, 13 of them required — the full input contract is public before you write any integration code.
6 of the 6 Zara endpoints ship a recorded example response, and 6 carry a documented response schema — you can code against the real JSON before the first request.
Zara 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.
6 hosted MCP tools back the Zara endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/zara/categories
/zara/category/{categoryId}/products
/zara/product/{productId}
/zara/search
/zara/stores
/zara/suggest
Endpoint catalog
/zara/searchSearches Zara product listings by keyword within one department section, with real offset-based pagination. Returns normalized products with pricing, images, availability, and every purchasable color variant, plus the upstream's own search facets. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior. Requesting an offset beyond the available results returns a normal, empty result with is_last_page true rather than an error.
Response notes
- This search is best-effort relevance, not a guaranteed keyword match. For an obscure or nonsense `query`, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior. - Pagination is real: the same `offset` returns identical results on repeat requests, and different offsets return different, mostly non-overlapping windows of `total_count` results. - `is_last_page` is the upstream's own genuine "no more results" marker. Requesting an `offset` beyond the available results returns a normal `200` with an empty `products` array and `is_last_page: true`, not an error. - Each product's `colors[].id` is a color-specific id; `colors[].product_id` is that color's own upstream product id. - `facets` lists the available filters (e.g. color, price range) with live per-value result counts where the upstream provides one. Example response: ```json {"code":200,"msg":"OK","data":{"query":"jeans","section":"WOMAN","offset":0,"limit":24,"count":1,"total_count":382,"is_last_page":false,"products":[{"id":545408253,"reference":"C08727223427000-I2026","name":"TRF LOW-RISE WIDE LEG JEANS","price":59.90,"section_name":"WOMAN","family_name":"TROUSERS","subfamily_name":"T.FOLDER PANTS","availability":"in_stock","url":"https://www.zara.com/us/en/trf-low-rise-wide-leg-jeans-p08727223.html","image_url":"https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800","colors":[{"id":"427","product_id":545413052,"name":"Mid-blue","price":59.90,"availability":"in_stock","image_url":"https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800"},{"id":"443","product_id":545413048,"name":"Dark indigo","price":59.90,"availability":"in_stock"}]}],"facets":[{"key":"color_facet","values":[{"id":"beige","label":"Beige","count":8},{"id":"black","label":"Black","count":15}]}]}} ```
MCP tool zara_search
/zara/product/{productId}Returns one Zara product's full detail: every purchasable color variant with its real marketing description, per-size stock, and full image gallery -- richer than the per-product summaries returned by zara-category-products and zara-search. productId is a numeric id, taken from a search/category result's url field (the digits after "-p" in the product-detail URL). An unrecognized productId returns 404.
Response notes
- `colors` lists every purchasable color of the base product, not just one -- requesting the shared productId for a multi-color product returns all of its colors in one response. - Each color's `sizes[]` carries real per-size stock (`availability`), unlike category/search which only expose one stock flag for the whole color. - Each color's `description` is the real marketing copy from the product-detail page (category/search do not carry a description at all). - Each color's `images` is the full ordered image gallery for that color, not just one representative image. - `composition` lists the product's material breakdown (e.g. "OUTER SHELL" / 100% cotton) where Zara provides one. - `price` is in US dollars, at both the color and size level. - An unrecognized `productId` returns `404`. A non-numeric or missing `productId` returns `400` before any upstream request is made. Example response: ```json {"code":200,"msg":"OK","data":{"product_id":"08727223","name":"TRF LOW-RISE WIDE-LEG JEANS","reference":"08727223-I2026","section_name":"WOMAN","family_name":"PANTALON","subfamily_name":"T.PANT.PAQUETER","composition":[{"description":"OUTER SHELL","components":[{"material":"cotton","percentage":"100%"}]}],"url":"https://www.zara.com/us/en/trf-low-rise-wide-leg-jeans-p08727223.html","colors":[{"id":"443","name":"Dark indigo","price":59.90,"availability":"in_stock","description":"LOW RISE - WIDE LEG - FULL LENGTH. Low-rise, five-pocket jeans. Full-length wide leg. Front zip fly and metal button fastening.","images":["https://static.zara.net/assets/public/9246/6e0d/5d894ce9b14f/191334afdb14/06929222443-p/06929222443-p.jpg?w=800"],"sizes":[{"id":32,"name":"25 (US 0)","price":59.90,"availability":"in_stock","sku":545408284},{"id":34,"name":"26 (US 2)","price":59.90,"availability":"in_stock","sku":545408285}]}]}} ```
MCP tool zara_product
/zara/category/{categoryId}/productsReturns a Zara category's full product listing: normalized products with pricing, images, and availability, sourced from Zara's own category browse data. categoryId is a numeric id from zara-categories. Zara does not paginate this data -- the response always contains the category's complete listing in one call, not one page of it. Each entry represents one purchasable color variant rather than a color-grouped product family, matching how Zara's own category data is structured.
Response notes
- Zara does not paginate this endpoint: the response always contains the category's complete listing in one call, not one page of it. `count` is that listing's real size. - Each entry in `products` represents one purchasable color variant rather than a color-grouped product family (matching how Zara's own category data is structured) -- `colors` therefore always holds exactly one entry, itself. This differs from `zara-search`, whose entries group every color of a base product together. - `price` is in US dollars. - `url` reconstructs Zara's own product-detail page URL from the product's SEO keyword and id. - An unrecognized `categoryId` returns `404`. A non-numeric or missing `categoryId` returns `400` before any upstream request is made. Example response: ```json {"code":200,"msg":"OK","data":{"category_id":"2491844","count":1,"products":[{"id":545413052,"reference":"08727223-I2026","name":"TRF LOW-RISE WIDE LEG JEANS","price":59.90,"section_name":"WOMAN","family_name":"PANTALON","subfamily_name":"T.PANT.PAQUETER","availability":"in_stock","url":"https://www.zara.com/us/en/trf-low-rise-wide-leg-jeans-p08727223.html","image_url":"https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800","colors":[{"id":"427","product_id":545413052,"name":"Mid-blue","price":59.90,"availability":"in_stock","image_url":"https://static.zara.net/assets/public/0670/266f/94d044d4b726/35ed5c28bb36/06688224427-p/06688224427-p.jpg?w=800"}]}]}} ```
MCP tool zara_category_products
/zara/categoriesReturns Zara's full category and subcategory navigation tree for the US storefront (WOMAN, MAN, KID, and other top-level sections), sourced directly from Zara's own category navigation data. Each entry's id is the value to pass as categoryId to zara-category-products. Takes no query parameters.
Response notes
- Each entry's `id` is the value to pass as `categoryId` to `zara-category-products`. - `has_subcategories` mirrors the upstream's own flag for whether an entry has deeper `subcategories`. - `section_name` is inherited from a node's top-level ancestor (e.g. `WOMAN`, `MAN`, `KID`, `HOME`, `BEAUTY`, and a few additional storefront sections). - Purely structural placeholder entries (Zara's own `DIVIDER_*` visual separators) and entries with an entirely empty name are filtered out -- everything returned is a real, browsable category or subcategory. Example response: ```json {"code":200,"msg":"OK","data":{"source_url":"https://www.zara.com/us/en/categories?ajax=true","fetched_at":"2026-08-10T00:00:00Z","categories":[{"id":1881757,"name":"WOMAN","section_name":"WOMAN","has_subcategories":true,"subcategories":[{"id":2491844,"name":"JEANS","section_name":"WOMAN","has_subcategories":false}]},{"id":1885841,"name":"MAN","section_name":"MAN","has_subcategories":true,"subcategories":[{"id":2727524,"name":"THE NEW","section_name":"MAN","has_subcategories":false}]}]}} ```
MCP tool zara_categories
/zara/storesReturns Zara physical retail stores near a location: name, full address, phone, coordinates, opening hours status, pickup/donation eligibility, and a canonical store page URL. lat and lng are both required -- this endpoint does not accept a free-text zip/city search. A location with no stores within the radius returns a normal response with an empty stores array rather than an error.
Response notes
- A location with no nearby stores within the given radius returns a well-formed empty result (`count: 0`, `stores: []`), not an error. - `status` reflects the store's current open/closed state. - `pickup_allowed` and `donation_allowed` are genuine, upstream-enforced flags -- `pickup_only`/`donation_only` filter on the same fields server-side. Example response: ```json { "code": 200, "msg": "OK", "data": { "lat": 34.0901, "lng": -118.4065, "radius": 30, "count": 1, "stores": [ { "id": 11857, "name": "BEVERLY CENTER", "commercial_name": "ZARA BEVERLY CENTER MALL", "type": "Mall", "sections": ["Woman", "Man", "Kids"], "address": "8500, BEVERLY BLVD.", "city": "LOS ANGELES", "state": "CALIFORNIA", "postal_code": "90048", "country": "US", "phone": "8332472473", "latitude": 34.07561, "longitude": -118.37711, "status": "OPEN", "pickup_allowed": false, "donation_allowed": true, "url": "https://www.zara.com/us/en/stores-locator/zara-los-angeles-ca_la_u_la_beverly-center-m-s11857" } ] } } ```
MCP tool zara_stores
/zara/suggestReturns Zara's own search-suggestion (typeahead) results for a partial keyword, the same suggestions shown while typing into Zara's search box. A nonsense query returns a normal response with an empty suggestions array rather than a fallback/recommended set.
Response notes
- A nonsense or obscure `query` returns a normal `200` with an empty `suggestions` array, a genuine no-results signal -- unlike `zara-search`, which falls back to a broader recommended result set instead of returning an empty list for an obscure keyword. - Suggestions are plain search phrases, not product ids -- pass one directly as the `query` to `zara-search`. Example response: ```json {"code":200,"msg":"OK","data":{"query":"j","count":10,"suggestions":["jeans","jacket","leather jacket","jumpsuit","white jeans","jorts","jean shorts","denim jacket","baggy jeans","low rise jeans"]}} ```
MCP tool zara_suggest
Related APIs
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.
How to scrape Zara
Zara's own category tree is large enough that a full pull comes back as one of the biggest single responses in Crawlora's retail catalog, spanning WOMAN, MAN, and KID down to dozens of subcategories each. A 2026-09-24 search for "denim jacket" in the WOMAN section returned 36 matches from $49.90 to $129. Crawlora's six Zara endpoints turn that search, plus category listings, product detail, typeahead, and the store locator, into normalized JSON with one API key, no Zara account required.
/zara/search takes a query and a required section (WOMAN, MAN, KID, HOME, or BEAUTY). Color and size facets follow the section you pass, while the root-category facet always lists Woman, Man, and Kid totals so a UI can offer cross-department navigation.
/zara/categories returns the full WOMAN/MAN/KID navigation with each category's id, ready to pass to /zara/category/{categoryId}/products. The tree is large and mostly static, so cache it rather than refetch per request.
Pass a category id to /zara/category/{categoryId}/products for that category's complete listing. Zara doesn't paginate this endpoint, and each entry is one color variant, not a grouped product family.
Pass the numeric id from a product URL's -p segment to /zara/product/{productId} for every color's marketing copy, per-size stock, and full image gallery. A TRF Denim Crossover Bomber Jacket pull showed five in-stock sizes and one sold-out XXL.
/zara/stores takes lat/lng and a radius and returns nearby locations with hours, phone, and pickup/donation eligibility. A 20-mile radius around midtown Manhattan returned 13 stores, one still marked PROVISIONAL rather than OPEN.
/zara/suggest returns Zara's own search-box typeahead for a partial keyword: ten suggestions for "jean," and an empty list for nonsense input.
FAQ
Color and size facets are scoped to the requested section. The rootCategories facet is a navigation aid that always shows Woman, Man, and Kid totals, so use it to link across departments rather than as a section count.
It depends. /zara/category/{categoryId}/products lists individual color variants as separate entries, while /zara/product/{productId} groups every color under one product with its own sizes and stock.
Yes. /zara/stores can return a location with status PROVISIONAL rather than OPEN, and a provisional entry may be missing fields like phone that an open store always has.
Not reliably. An obscure keyword can fall back to Zara's own recommended results instead of an empty array, so a nonzero result count alone doesn't confirm a real match.
Zara is the flagship chain of Inditex, the Spanish retail group founded by Amancio Ortega, who still holds a majority stake. Inditex reported €39.8 billion in revenue for the year ended January 31, 2026.