Zara Scraper - Prices, Rebajas, Variants & Composition
Pricing
from $1.00 / 1,000 product results
Zara Scraper - Prices, Rebajas, Variants & Composition
Scrape Zara (zara.com) products: current price plus strike-through Rebajas (sale) discount, full colour variant matrix with per-colour availability, and (with full detail) fabric composition and a per-size availability/price matrix. Browse by category or Rebajas, or paste links.
Pricing
from $1.00 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Zara Product Scraper
Pull structured product data from Zara (zara.com), the global fast-fashion retailer. Browse any category or Zara's own Rebajas (sale) catalog for a chosen section, or paste product and category/listing links directly. Every record includes the current price, the strike-through original price with discount percentage when a product is on Rebajas, and the full colour variant matrix with per-colour availability -- plus fabric composition and a real per-size availability/price matrix when you ask for full detail.
Why This Scraper?
- Was-price and discount, structured, straight from Zara's own pricing data. When a product is on Rebajas, the record carries the current price, the strike-through original price, and the discount percentage -- taken directly from the site's own
isOnSaleflag, never guessed. Full-price products return these fields as null, so a discount is always real. - Rebajas, first class. A
specialsOnlytoggle browses the chosen section's own, real, currently-running Rebajas (sale) catalog -- thousands of genuinely marked-down items, not a guessed category. - Full colour variant matrix. Every colourway Zara sells for a product, each with its own price, availability, and image gallery. With full detail on, each colour also carries a real per-size matrix (in stock / out of stock) and each size's own price.
- Fabric composition. With
fetchDetailson, every product also returns its fabric composition -- a material breakdown by percentage, per garment part. - Two ways in. Browse a category or Rebajas feed, or paste any product / category link.
- Optional export to your apps. Send results into Notion, Linear, Airtable, or any Apify MCP connector alongside the dataset.
Data You Get
| Field | Example value |
|---|---|
| productId | 07521308 |
| name | Sample Ribbed Knit Dress |
| brand / section | Zara, WOMAN |
| family / subfamily | Dresses, Midi |
| reference | 1234/567/800 |
| url | https://www.zara.com/es/es/sample-ribbed-knit-dress-p07521308.html?v1=545409966 |
| price / currency | 15.99, EUR |
| originalPrice / discountPercent / isOnSale | 25.99, 38, true |
| availability | in_stock |
| colors[] | [{"id": "800", "name": "Black", "hexColor": "#000000", "availability": "in_stock", "price": 15.99, "originalPrice": 25.99, "discountPercent": 38, "isOnSale": true, "images": [...], "sizes": [...]}] |
| compositions | [{"part": "Outer shell", "materials": [{"material": "Cotton", "percentage": "95%"}, {"material": "Elastane", "percentage": "5%"}]}] |
| reviews | [] |
Sample shape: values above are illustrative placeholders, not from a live product.
How to Use
1. Browse the women's Rebajas (sale) catalog, Spain market:
{"mode": "search","section": "WOMAN","specialsOnly": true,"maxItems": 50}
2. Browse a specific category id, UK market, biggest discount first:
{"mode": "search","market": "gb/en","categoryId": "2420896","sortBy": "discountDesc","maxItems": 40}
3. Full product detail (composition and per-size availability) for a pasted product link:
{"mode": "url","urls": ["https://www.zara.com/es/es/sample-ribbed-knit-dress-p07521308.html?v1=545409966"],"fetchDetails": true}
4. Paste a category / listing page:
{"mode": "url","urls": ["https://www.zara.com/es/es/mujer-vestidos-l1066.html"],"maxItems": 100}
Input Parameters
| Parameter | Type | Description |
|---|---|---|
mode | string | search (browse a category or Rebajas) or url (paste links). |
market | string | Zara's own market path prefix, e.g. es/es, gb/en (search mode only; a pasted URL carries its own market). |
section | string | WOMAN, MAN, KID, or BEAUTY (search mode). Drives the Rebajas catalog and labels results. |
categoryId | string | A specific Zara category id to browse (search mode). Ignored when Rebajas only is on. |
specialsOnly | boolean | Browse the chosen section's real Rebajas (sale) catalog instead of a specific category (search mode). |
searchTerm | string | Keep only products whose name/description contains this text (narrows the loaded catalog). |
colors | array | Keep only products with a colourway matching one of these names (partial, case-insensitive). |
sizes | array | Keep only products with one of these sizes in stock. Requires fetchDetails. |
minPrice / maxPrice | number | Price band to keep, in the market's own currency. |
sortBy | string | Order results after filtering: relevance, price low→high, price high→low, or biggest discount first. |
urls | array | Product or category/listing URLs to scrape (url mode). Filter fields are ignored in this mode. |
fetchDetails | boolean | Add fabric composition and a real per-size availability/price matrix. A pasted product URL always fetches full detail. |
maxItems | integer | Cap on total products returned; 0 = unlimited. |
proxy | object | Connection settings. Defaults work out of the box. |
mcpConnectors | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
notionParentPageUrl | string | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | Cap on items exported to each connector per run. Does not affect the dataset. |
Output Example
{"productId": "07521308","name": "Sample Ribbed Knit Dress","brand": "Zara","reference": "1234/567/800","section": "WOMAN","family": "Dresses","subfamily": "Midi","description": "Midi dress with a round neckline and long sleeves.","url": "https://www.zara.com/es/es/sample-ribbed-knit-dress-p07521308.html?v1=545409966","currency": "EUR","price": 15.99,"originalPrice": 25.99,"discountPercent": 38,"isOnSale": true,"availability": "in_stock","image": "https://static.zara.net/photos/sample/image1.jpg","defaultColorId": "800","colors": [{"id": "800","name": "Black","hexColor": "#000000","discernProductId": "545409966","availability": "in_stock","images": [{ "url": "https://static.zara.net/photos/sample/image1.jpg", "width": 1500, "height": 2250, "kind": "GENERAL" }],"sizes": [{ "id": "S", "name": "S", "availability": "in_stock", "sku": 12345678, "price": 15.99, "originalPrice": 25.99, "discountPercent": 38, "isOnSale": true }],"currency": "EUR","price": 15.99,"originalPrice": 25.99,"discountPercent": 38,"isOnSale": true}],"compositions": [{ "part": "Outer shell", "materials": [{ "material": "Cotton", "percentage": "95%" }, { "material": "Elastane", "percentage": "5%" }] }],"reviews": []}
Sample shape: values above are illustrative placeholders, not from a live product.
A note on reviews, sort, and brand
Zara does not surface customer reviews on its product pages -- reviews is always returned as an empty list rather than omitted or guessed. No usable server-side keyword-search or sort parameter is available on Zara's browse routes, so searchTerm and sortBy narrow and order results client-side against the site's own real values rather than faking a query. Zara is a single-brand shop, so there is no brand filter -- every record's brand is Zara.
Send results into your apps (MCP connectors)
Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the mcpConnectors field. Each connector receives a condensed, human-readable summary per product (name plus key fields), while the complete record always stays in the Apify dataset. For Notion, set notionParentPageUrl to the page the item pages should be created under, and use maxNotifyListings to cap how many items are exported per connector per run. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.