Zalando Scraper [💰$1.5/1K] | Fashion | Products | Prices avatar

Zalando Scraper [💰$1.5/1K] | Fashion | Products | Prices

Pricing

from $1.47 / 1,000 results

Go to Apify Store
Zalando Scraper [💰$1.5/1K] | Fashion | Products | Prices

Zalando Scraper [💰$1.5/1K] | Fashion | Products | Prices

💰 $1.5 / 1K results. Scrape Zalando fashion listings and collect everything you need — product details, brands, prices, sizes, availability, images, and more. Ideal for competitor monitoring, fashion research, price comparison, and large-scale product data collection.

Pricing

from $1.47 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

1

Bookmarked

23

Total users

4

Monthly active users

20 hours ago

Last modified

Share

Zalando Scraper - Fashion Listings, Prices and Stock by Market

The Zalando Scraper collects public fashion listings from Zalando storefronts and returns structured product rows with names, brands, SKUs, prices, discounts, images, sizes, stock status and product URLs. It supports listing and product URLs, keyword searches and 17 European markets.

Use it for competitor price monitoring, assortment research, size availability checks and catalog enrichment. Listing cards are enriched from Zalando's embedded hydration JSON (images, sizes, flags, prices and currency) without extra page requests. A lightweight GraphQL availability query adds per-size stock status on paid runs. It can emit only changes between scheduled runs.

Main Use Cases for Zalando Product Data

  • Competitor price monitoring - track current and original prices, discounts and sale flags across Zalando markets.
  • Assortment research - measure which brands and categories a market carries and how deeply each assortment is stocked.
  • Size availability analysis - collect per-size availability and identify broken size runs and popular sizes without downloading full product pages.
  • Markdown tracking - schedule runs with monitor mode to capture price drops, price rises and sold-out events.
  • Catalog enrichment - append product names, SKUs, brand data, images and URLs to an internal PIM or marketplace feed.

How It Works

Zalando listing pages becoming structured fashion product rows with prices, brand data, sizes and stock status

Provide Zalando listing or product URLs in startUrls, or supply searchTerms and pick a market with domain. Search terms become a Zalando search page on that storefront. Start URLs keep their own market and query string, so you can mix markets in one run.

The listing parser extracts the product name, SKU, brand, current and original price, discount, thumbnail, image set, flags, availability, product URL and size cards. Pagination continues until maxItems is reached or the listing pages run out. Up to three pages can be fetched and enriched concurrently; stock lookups are batched, item-budget reservations keep maxItems exact, and each row is pushed as soon as its stock lookup finishes so partial results survive an aborted run. maxPages can cap pagination, and maxItems is the hard budget applied after filters.

Listing rows already include the image set, size SKUs, merchandising flags, currency and availability from Zalando's hydration JSON. Paid runs also call Zalando's lightweight GraphQL availability query for each saved product and merge the complete size run. That query is a few kilobytes per product and returns which variants are in stock, not exact FEW/MANY quantities. Full product pages are not fetched for listing rows, so no product-detail event is required. The free tier returns rich listing data without per-size stock. minPrice, maxPrice, onSaleOnly and brandIncludes filter candidates before the item budget is consumed, while sortBy controls local ordering and Zalando order parameters.

deduplicateProducts skips a SKU already saved when the same product appears on several pages or search paths. Monitor mode adds a changeType of new, price_drop, price_rise, back_in_stock or sold_out and stores state under monitorKey; unchanged products are omitted to keep scheduled runs small.

Input

All fields are optional in the schema, but you need at least one start URL or one search term. The most important controls are the market, item budget, stock switch and monitor mode.

FieldTypeRequiredDefaultWhat it does
startUrlsstring[]NoZalando AT exampleZalando listing or product URLs. Each URL keeps its own market and filters.
searchTermsstring[]No[]Keywords to search on the selected market. Each term becomes a search page.
domainstringNoatZalando market code used for search terms, such as at, de, fr, it, nl, pl or se.
maxItemsintegerNo100Maximum products saved. The free tier is limited to 50.
scrapeDetailsbooleanNotrueAdds per-size availability through Zalando's lightweight GraphQL query. No full PDP fetch and no product-detail event. Forced off on the free tier.
minPricenumberNoNoneKeep products at or above this current price in the listing currency.
maxPricenumberNoNoneKeep products at or below this current price in the listing currency.
onSaleOnlybooleanNofalseKeep only products whose current price is below the original price.
brandIncludesstring[]No[]Case-insensitive brand names to include. Empty means all brands.
sortBystringNorelevanceSort candidates by relevance, price, newest or another supported Zalando order.
maxPagesintegerNo0Maximum listing pages. Zero derives a page budget from maxItems.
deduplicateProductsbooleanNotrueSkip a SKU already saved in this run.
monitorModebooleanNofalseEmit only new, price change and stock change events between runs.
monitorKeystringNozalando-monitorState key for a monitored product set. Use one key per feed.
maxConcurrencyintegerNo40Parallel page requests. Paid default 40, free tier capped at 5.
maxRequestsPerMinuteintegerNo1200Global request rate limit. Free tier capped at 150.
cookiesstringNoNoneOptional cookie header or EditThisCookie array for regional sessions.
proxyConfigobjectNoResidential Apify ProxyProxy configuration. Residential proxies are strongly recommended.

Start with a narrow search term or category URL and maxItems around 100 to validate the market and filters. The free tier returns at most 50 products without per-size stock, and caps concurrency and request rate. Prices are numeric in the listing currency; priceCurrency is filled from hydration when Zalando exposes it.

Output

A product row contains identity, pricing, availability, media, size and monitoring fields. Listing rows are already enriched; scrapeDetails adds per-size availability from Zalando's GraphQL size query.

Field groupFieldsWhat you get
Identityurl, sku, name, brandProduct URL, stable SKU, full product name and brand object with optional brand URL.
Pricingprice.original, price.current, price.promotional, priceCurrencyOriginal, current and promotional price values plus the storefront currency when exposed.
Availabilityavailable, comingSoon, flagsWhether the product can be bought, whether it is upcoming, and visible merchandising flags.
Sizessizes, sizes[].inStock, sizes[].stockStatusSize labels, variant SKUs and per-size availability merged from Zalando's GraphQL size run.
Mediathumbnail, images, videosPackshot thumbnail, gallery URLs and video URLs when present.
MonitoringchangeType, monitorKeyChange event in monitor mode and feed key.
ProvenancescrapedFrom, scrapedAt, stockStatusSource, stockStatusExactHow the row was produced, the observation timestamp, and whether stock came from GraphQL availability or a direct PDP.

priceCurrency is read from Zalando's hydration data when available, but can still be null in some markets. sizes contains labels, variant SKUs and inStock booleans. For GraphQL-enriched rows, stockStatus is MANY when at least one unit is available and NONE when the size is unavailable; stockStatusExact is false because Zalando's public size query does not expose exact FEW/MANY quantities. stockStatusSource is graphql-availability for those rows. videos, rating, sizeAdvice and some flags can be null. Monitor mode omits unchanged products, so a small run is expected even when the catalog has not shrunk. Direct product URLs still use a full PDP fetch and can return exact FEW/MANY stock; if that PDP request fails, the Actor can return a basic listing-fallback row from the already-fetched listing card.

Pricing

Pricing is pay-per-event. A start event is charged per run and each saved product is charged as a result.

EventFREEBRONZESILVERGOLD+
Actor start, per run$0.00005$0.00005$0.00005$0.00005
Product result$0.0015$0.00149$0.00148$0.00147

That is $1.50 per 1,000 products on FREE and $1.47 per 1,000 on GOLD+. A 1,000-product run costs about $1.50 before the start fee. Per-size availability uses a tiny GraphQL response per product, so it does not need a separate product-detail event. Full product pages are only fetched for direct product URLs; that path still supports the optional product-detail event. The free preview is limited to 50 products without per-size stock.

Example Input

{
"searchTerms": [
"nike air max"
],
"domain": "de",
"maxItems": 200,
"scrapeDetails": true,
"onSaleOnly": true,
"brandIncludes": [
"Nike"
],
"maxConcurrency": 10,
"proxyConfig": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

This searches the German storefront for discounted Nike Air Max products and keeps up to 200 listing rows with per-size availability. Lower concurrency if Zalando returns challenge pages.

Example Output

{
"url": "https://www.zalando.de/nike-air-max-90-sneaker-white-ni111a0n7-a11.html",
"sku": "NI111A0N7-A11",
"name": "Nike Air Max 90 - white/black",
"brand": {
"name": "Nike",
"uri": "https://www.zalando.de/nike/"
},
"price": {
"original": 149.99,
"current": 119.99,
"promotional": null
},
"priceCurrency": "EUR",
"available": true,
"comingSoon": false,
"flags": [
"sale"
],
"sizes": [
{
"size": "42",
"sku": "NI111A0N7-A11042",
"inStock": true,
"stockStatus": "MANY"
},
{
"size": "43",
"sku": "NI111A0N7-A11043",
"inStock": false,
"stockStatus": "NONE"
}
],
"stockStatusSource": "graphql-availability",
"stockStatusExact": false,
"thumbnail": "https://img01.ztat.net/article/spp-media-p1/example.jpg?filter=packshot",
"images": [
"https://img01.ztat.net/article/spp-media-p1/example.jpg?filter=packshot"
],
"videos": [],
"scrapedAt": "2026-10-22T12:00:00.000Z"
}

Values are illustrative; exact SKU, image and size objects depend on the market. stockStatus: "MANY" here means the size is available, not an exact quantity. A product can have available: true while specific sizes are sold out.

Integrations and Automation

Run the Actor through the Apify API, Apify MCP, schedules, Zapier, Make or n8n. Export JSON, CSV, Excel or HTML, or push rows to Google Sheets, Airtable, BigQuery, a database, a PIM or a webhook.

For price monitoring, key the warehouse on sku plus market. Store price.original, price.current and available per snapshot, then compare runs. Monitor mode is lighter because it emits only changed products with a changeType.

For assortment analysis, aggregate by brand.name, category URL and sizes.stockStatus. Keep the source market separate, because the same SKU can differ in pricing, availability and size runs across countries.

FAQ

Which Zalando markets are supported?

The domain field accepts market codes such as at, de, fr, it, nl, pl and se. Start URLs point at any Zalando storefront and keep their own market.

Why did I get fewer than maxItems products?

Filters, exhausted pages, deduplication and the item budget can reduce the count. On the free tier, results are capped at 50 regardless of maxItems.

Are sizes and stock status always included?

Paid listing runs include size labels, variant SKUs and per-size inStock/stockStatus from Zalando's GraphQL availability query when scrapeDetails is enabled (the default). The free tier returns size labels and SKUs without per-size stock. Exact FEW/MANY quantities are only read from direct product URLs, which use a full PDP fetch.

What does monitor mode change?

It compares the current run with state under monitorKey and emits only new, price-change and stock-change rows. Unchanged products are skipped. Use a different key for each product set.

Why is priceCurrency null?

The Actor reads priceCurrency from Zalando's embedded hydration data when it is present. It can still be null for some markets or card formats; derive it from the storefront domain if you need a guaranteed value.

Do I need a Zalando account or API key?

No. The Actor reads public storefront pages. It does not log in, add to a cart or access account data.

For AI Agents and LLM Apps

The Actor provides structured product records with stable SKUs, brand data, price fields, sizes and stock status. It is callable through the Apify API and Apify MCP for commerce research and monitoring agents.

  • One row is one product in one Zalando market. Use sku plus market as the stable key.
  • Prices are numeric, but priceCurrency can be null. Resolve currency from the storefront domain before comparing rows.
  • Listing rows include images, size labels/SKUs, flags and currency. Paid runs add per-size inStock/stockStatus from a lightweight GraphQL query; free-tier runs do not include per-size stock.
  • Monitor mode emits a changeType and omits unchanged products, so absence from a run does not mean the product disappeared.
  • The free tier is capped at 50 products and five concurrent requests.

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Zalando. It reads publicly visible product data for market research, price comparison and catalog analysis. Zalando terms and applicable consumer and competition law still apply.

Product data can include brand names, images and pricing protected by third-party rights. Keep attribution where required, do not republish copyrighted media as your own, and treat prices as observations rather than guaranteed live offers. Do not use the Actor to overload a storefront or bypass access controls.

SEO Keywords

Zalando scraper, Zalando product data, Zalando price tracker, Zalando fashion scraper, Zalando API alternative, Zalando catalog data, Zalando sizes, Zalando stock status, fashion product scraper, European fashion data, Zalando markdown tracking, Zalando brand monitoring, Zalando dataset, competitor price monitoring, fashion ecommerce data, Zalando sale tracker, product availability data, Zalando market research, fashion catalog enrichment, Zalando listing scraper