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
Crawlora's Zara endpoints return search, category listings, product detail, and category taxonomy as normalized JSON with one API key — no Zara account required.
Send a keyword and department section to /zara/search for paginated, normalized products with pricing and every color variant.
Pass a categoryId from /zara/categories to /zara/category/{categoryId}/products for that category's complete product listing in one call — Zara does not paginate category browsing.
Pass a productId (from a search or category result's url field) to /zara/product/{productId} for full detail — every color variant, per-size stock, and the full image gallery.
FAQ
Send a keyword and section to Crawlora's /zara/search endpoint and get normalized, paginated products with pricing and every color variant as structured JSON, no Zara account required.
No — /zara/category/{categoryId}/products always returns a category's complete product listing in a single call, matching how Zara's own category data is structured.
No — Zara's own search falls back to a broader recommended result set for an obscure or nonsense keyword instead of returning empty, and there is no reliable field to distinguish a true match from that fallback.