Zara Product Scraper — Prices, Stock & Variants
Pricing
from $4.00 / 1,000 product scrapeds
Zara Product Scraper — Prices, Stock & Variants
Extract validated Zara product data from product URLs, search terms, or category pages. Get prices, sale prices, availability, images, color and size options, descriptions, and canonical URLs for fashion research and monitoring. Pay only for complete product rows.
Pricing
from $4.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Zara Product Scraper is an Apify Actor for fashion analysts, ecommerce teams, monitoring workflows, and AI agents that need validated public Zara product records. It accepts Zara product URLs, category pages, search URLs, or product search terms. Each saved dataset item represents one complete product record, with fields such as productId, reference when available, name, price, originalPrice when shown, currency, availability, colors, sizes, images, description, category, canonical URL, source type, search term, and scrapedAt. The outcome is a clean, one-record-per-product dataset built for downstream analysis and automation.
Best fit and connected workflows
This Actor fits workflows that start with a public Zara product page, a Zara category page, or a Zara search page and need structured product rows. It also fits discovery runs where a simple term such as linen shirt is turned into a Zara search page for collection.
Common routing patterns include:
- Direct product URL monitoring for price, sale price, stock text, and variants.
- Search-term discovery for broader product collection from a selected Zara storefront.
- Category-page collection for a bounded slice of a public Zara assortment.
- Apify MCP usage when an agent needs a focused Zara product extraction tool with validated rows and provenance.
Practical scenario
Maya, a merchandiser, starts with a Zara search URL for linen shirts and sets maxProducts to 20. The run returns rows with productId, name, price, availability, colors, sizes, images, url, and scrapedAt. Maya uses availability and originalPrice to review live assortment and markdowns, then opens the canonical URLs to compare the storefront pages.
Input fields
| Field | Type | Purpose |
|---|---|---|
startUrls | array of strings | Zara product, category, or search URLs for direct collection |
searchTerms | array of strings | Product terms used to construct Zara search pages |
country | string | Storefront used when building search URLs from searchTerms |
maxProducts | integer | Global output and billing cap for the run |
maxScrollsPerListing | integer | Scroll count for lazy-loaded search and category pages |
includeVariants | boolean | Includes color and size options from the product page |
proxyConfiguration | object | Proxy settings, with Residential as the default group |
Focused JSON example
{"startUrls": ["https://www.zara.com/us/en/search?searchTerm=linen"],"searchTerms": ["linen shirt"],"country": "US","maxProducts": 10,"maxScrollsPerListing": 2,"includeVariants": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output fields
| Field | Type | Meaning |
|---|---|---|
productId | string | Stable Zara product identifier when exposed |
reference | string or null | Product reference or SKU when shown |
name | string | Current Zara product title |
description | string or null | Product description from the public product page |
price | number or null | Current public price |
originalPrice | number or null | Previous public price when a markdown is shown |
currency | string or null | Currency code or symbol-derived code |
availability | string or null | Public availability text |
colors | array of strings | Public color names at scrape time |
sizes | array of strings | Public size labels at scrape time |
images | array of strings | Public high-resolution image URLs |
category | string or null | Public category or breadcrumb text |
url | string | Canonical Zara URL of the product page |
sourceType | string | Discovery source such as search term, direct URL, or listing URL |
searchTerm | string or null | Search term used for discovery |
scrapedAt | string | UTC timestamp for validation and save time |
Illustrative JSON record
{"productId": "43284705","reference": "5644/401/800","name": "LINEN BLEND SHIRT","description": "Relaxed fit shirt made from a linen blend.","price": 49.9,"originalPrice": 69.9,"currency": "USD","availability": "In stock","colors": ["Ecru", "Navy blue"],"sizes": ["S", "M", "L"],"images": ["https://static.zara.net/photos///2026/V/0/1/p/5644/401/800/2/w/750/5644401800_1_1_1.jpg"],"category": "WOMAN / SHIRTS","url": "https://www.zara.com/us/en/linen-blend-shirt-p05644401.html","sourceType": "searchTerm","searchTerm": "linen shirt","scrapedAt": "2026-07-15T17:00:00.000Z"}
How it works
The Actor uses a browser session with the default Apify Residential proxy configuration. It accepts direct Zara URLs or builds Zara search URLs from search terms and the selected storefront. For search and category pages, it uses listing scrolls to load more product cards up to the configured cap. Each product is validated before it is written to the dataset, and only complete schema-validated product rows are billed as Product scraped events. The default dataset contains product rows, while OUTPUT and RUN_SUMMARY provide terminal outcome and safe diagnostics.
Pricing
This Actor uses Pay per event pricing. The primary event is Product scraped, which is charged only when one complete, schema-validated Zara product record is saved to the default dataset. Apify platform usage also applies, including actor start charges, browser execution, and proxy usage.
For example, twenty-five saved products mean twenty-five product events. The live Pricing tab in Apify Console is the current source of truth for the latest pricing details and platform usage view.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. The exact Actor identity is khadinakbar/zara-product-scraper.
Tool description: use this tool when an agent needs a focused Zara product extraction workflow from product URLs, search terms, or category pages, with validated rows and provenance fields suitable for downstream reasoning.
Scrape Zara product rows for these search terms and return the validated dataset items with price, availability, images, colors, sizes, canonical URLs, and scrape timestamps. Use the US storefront and cap the run at 8 products.
Output interpretation: the default dataset contains one record per validated product. sourceType and searchTerm explain how each row was discovered, while scrapedAt marks validation time in UTC. Provenance stays inside the product row, so an agent can connect each item back to the search term or direct URL used for discovery.
Scope, pagination, and cost guidance: direct product URLs map to individual product pages, while search and category pages may use multiple listing scrolls. maxProducts serves as the global output and billing cap, and maxScrollsPerListing controls how many times listing pages load more cards. The default Residential proxy setup matches the browser-driven storefront access pattern.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/zara-product-scraper').call({searchTerms: ['linen shirt'],country: 'US',maxProducts: 5,includeVariants: true,});const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems({ clean: true });console.log(items);
Best results and outcome guidance
Use direct product URLs when you already have a known Zara item and want the clearest product-level result. Use searchTerms when discovery starts from a concept such as black dress, linen shirt, or kids trainers. Use startUrls for product pages, search pages, or category pages that already define the scope. Keep maxProducts aligned with the number of product rows you want, and use includeVariants when color and size options matter for your downstream workflow.
Focused standalone workflow
This Actor is designed as a focused standalone workflow.
Design note
I found that the dataset contract requires productId, name, colors, sizes, images, url, sourceType, and scrapedAt on every saved record, which makes the output consistently product-shaped and easy to consume.
FAQ
When should I use startUrls instead of searchTerms?
Use startUrls when you already have Zara product, category, or search URLs. Use searchTerms when you want the Actor to build Zara search pages from product terms.
Which storefront does a search term use?
searchTerms uses the storefront selected in country. Product and category URLs keep the storefront already present in the URL.
How does maxProducts affect the run?
maxProducts sets the global output and billing cap. The Actor checks it before scheduling products and again before each paid dataset write.
What does includeVariants add?
It includes publicly visible color and size options from the product page. Availability remains a product-level signal.
How should category pages be used?
Category pages work well when a merchandiser wants a bounded slice of a public Zara catalog and expects listing-style discovery with scroll-based loading.
Responsible use
Use this Actor for public Zara product data in line with applicable terms, law, and organizational policy. The outputs are observations from the public storefront and fit workflows for analysis, catalog monitoring, and agent automation that respect the source site's public access patterns.