Zalando Product Scraper avatar

Zalando Product Scraper

Pricing

from $0.85 / 1,000 listings

Go to Apify Store
Zalando Product Scraper

Zalando Product Scraper

Zalando product dataset from category pages, search queries, or product URLs, including prices, brands, and optional listing details.

Pricing

from $0.85 / 1,000 listings

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Zalando Product Scraper creates a structured dataset of products collected from Zalando. Each dataset item represents one Zalando product and can include identifiers, brand, listing title, current and original prices, discount amount, currency, promotion flags, silhouette, images, sizes, and optional product-page details such as description, variants, availability, and GTIN. Query the source with category, search, or product .html URLs (startUrls) and/or search terms (searchQueries) resolved against baseUrl. Control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Dataset at a glance

PropertyValue
SourceZalando shop domains (default en.zalando.de)
Record unitOne Zalando product
Input methodsCategory, search, or product .html URLs (startUrls) and/or searchQueries
Main identifierssku (recommended), product url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, HTML (Apify dataset exports)
Update modelFresh records per Actor run
Pricing$1 / 1,000 listings; +$2 / 1,000 listing details; Actor start $0.00005

Coverage and available records

The Actor collects public Zalando product records from one or both entry points. When both are set, the seeds are combined.

  • URL-based: Pass Zalando category, search, or product page URLs in startUrls. Category and search pages paginate. Product URLs ending in .html produce a single product record.
  • Search-based: Pass free-text terms in searchQueries (for example nike trainers). Queries resolve against baseUrl (default https://en.zalando.de).

Record types and limits:

  • Listing-level records are always collected when a product is returned: id, sku, name, brand, url, price, originalPrice, discountAmount, currency, flags, silhouette, imageUrl, images, sizes, color, sourceUrl, sourceQuery, and detailsScraped.
  • Product detail fields are conditional: description, variants (including GTIN and availability on each variant) are returned only when listingDetails is enabled and the product page is collected successfully.
  • Result cap: maxItems limits products across all seeds (0 means unlimited). The default is 50.

Known exclusions: login-only Zalando content is not collected; each run captures page state at run time (no historical snapshots); coverage is limited to the shop domains you query via startUrls or baseUrl.

Data dictionary

Field names below match dataset record JSON properties exactly. Fields marked conditional appear only when listingDetails is enabled and the product page is collected. Values come from Zalando; the Actor does not calculate catalog prices.

Product listing fields

FieldTypeNullableDescriptionExample
idstringYesZalando product identifierern:product::RE015O0NC-A12
skustringNoConfig SKU; best stable deduplication keyRE015O0NC-A12
namestringYesProduct titleNike Air Force 1 '07
brandstringYesBrand nameNike
urlstringNoProduct page URL; secondary deduplication keyhttps://en.zalando.de/nike-air-force-1-07-re015o0nc-a12.html
pricenumberYesCurrent selling price in currency99.99
originalPricenumberYesOriginal / pre-discount price in currency149.99
discountAmountnumberYesDiscount amount in currency50.0
currencystringYesISO currency code for price fieldsEUR
flagsstring[]YesPromotion flags as shown on Zalando["Sale"]
silhouettestringYesProduct type / silhouetteSneakers
imageUrlstringYesPrimary product image URL
imagesstring[]YesProduct image URLs
sizesstring[]YesAvailable size labels
colorstringYesColor as shown on Zalando; typically present after listing details
sourceUrlstringYesSeed URL that produced the recordhttps://en.zalando.de/outlet-mens-shoes/
sourceQuerystringYesSearch term when the record came from a search seednike trainers
detailsScrapedbooleanYestrue when listing details were collected for this recordtrue

Product detail fields (conditional — listingDetails)

FieldTypeNullableDescriptionExample
descriptionstringYesProduct description from the product page
variantsobject[]YesSize / config variants with identifiers, price, GTIN, and availabilitySee variant table

Each variants[] object can include:

FieldTypeNullableDescription
skustringYesVariant SKU
sizestringYesSize label
gtinstringYesGTIN when Zalando publishes one
pricenumberYesVariant price
currencystringYesISO currency code
availabilitystringYesAvailability label from the product page

Example dataset record

Representative listing record for SKU RE015O0NC-A12. Image URLs, sizes, color, description, and variants are omitted here; they appear on the record when Zalando returns them and, for description / variants, when listingDetails succeeds.

{
"id": "ern:product::RE015O0NC-A12",
"sku": "RE015O0NC-A12",
"name": "Nike Air Force 1 '07",
"brand": "Nike",
"url": "https://en.zalando.de/nike-air-force-1-07-re015o0nc-a12.html",
"price": 99.99,
"originalPrice": 149.99,
"discountAmount": 50.0,
"currency": "EUR",
"flags": ["Sale"],
"silhouette": "Sneakers",
"sourceUrl": "https://en.zalando.de/nike-air-force-1-07-re015o0nc-a12.html",
"sourceQuery": null,
"detailsScraped": false
}

The record above matches this input:

{
"startUrls": [
{ "url": "https://en.zalando.de/nike-air-force-1-07-re015o0nc-a12.html" }
],
"maxItems": 1,
"listingDetails": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarray (requestListSources)No*Zalando category, search, or product .html URLsURL-based entry point. Combined with searchQueries when both are set
searchQueriesarrayNo*Free-text terms (e.g. nike trainers)Search terms resolved against baseUrl
baseUrlstringNohttps://en.zalando.deZalando shop origin (e.g. https://en.zalando.de, https://www.zalando.co.uk)Shop domain used when resolving searchQueries
maxItemsintegerNo500 or any positive integerMaximum products across all seeds; 0 = unlimited
listingDetailsbooleanNofalsetrue / falseCollect description, variants, availability, and GTIN (charged as listing-details)
detailConcurrencyintegerNo10150Parallel product-page fetches when listingDetails is enabled
proxyConfigurationobjectNoApify proxy, RESIDENTIAL groupApify proxy groups or custom proxiesResidential proxies are recommended

* Provide at least one of startUrls or searchQueries.

Minimal request:

{ "startUrls": [{ "url": "https://en.zalando.de/outlet-mens-shoes/" }] }

Advanced request (combined seeds with listing details):

{
"startUrls": [{ "url": "https://en.zalando.de/outlet-mens-shoes/" }],
"searchQueries": ["nike trainers"],
"baseUrl": "https://en.zalando.de",
"maxItems": 200,
"listingDetails": true,
"detailConcurrency": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Retrieve the data through the API

The Actor runs on the Apify platform. This is the Apify Actor API, not an official Zalando API.

  1. Start the Actor with a JSON input (console or API).
  2. Wait for the run to finish, or use a synchronous endpoint if you want the response inline.
  3. Retrieve items from the run's default dataset.
  4. Paginate or export the dataset.

Python example:

from apify_client import ApifyClient
client = ApifyClient("YOUR-APIFY-TOKEN")
run_input = {
"startUrls": [{"url": "https://en.zalando.de/outlet-mens-shoes/"}],
"maxItems": 10,
"listingDetails": True,
}
run = client.actor("datascrapers/zalando-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["sku"], item["name"], item["price"])

Apify generates ready-to-run Python, JavaScript, and cURL examples on the Actor's API tab. Do not put a real API token in shared code or URLs.

Data quality and record handling

  • Conditional fields: description, variants, GTIN, and availability appear only when listingDetails is enabled and the product page is collected. Listing-only runs return a leaner record.
  • Source changes: Zalando values can change; unreadable fields are omitted or returned as null rather than fabricated.
  • Deduplication: within a run, products are de-duplicated by sku. Across runs, records are appended. Use sku as the stable external key, or url as a secondary key.
  • Partial enrichment: a failed details fetch does not drop the listing record.
  • Charges: the Actor stops when a spending limit is reached (see run log). Price, discount, currency, and flag values are read from Zalando and stored as the types in the data dictionary.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL / SupabaseDataset API poll or webhook consumerStore SKUs, prices, and discount amounts alongside catalog records
Google SheetsApify Google Sheets integrationShare shortlists for price and assortment checks
PIM / catalog systemsDataset API or completion webhookRefresh fashion product feeds
S3 / cloud storageScheduled export via Apify scheduler + integrationArchival of market snapshots

Pricing and cost examples

The Actor uses pay-per-event pricing. Event rates are tiered by Apify plan. Listed amounts are the base rates:

EventTriggerRate
Actor startOnce per run$0.00005
dataset-itemEvery product record pushed to the dataset$0.001 per listing ($1.00 per 1,000)
listing-detailslistingDetails enabled and details collected$0.002 per listing ($2.00 per 1,000)

Example costs (Actor start omitted; it is $0.00005):

RecordsConfigurationEstimated base cost
1,000Listing only$1.00
10,000Listing only$10.00
1,000Listing + listing details$3.00
10,000Listing + listing details$30.00

Apify paid plans reduce event rates. Compute units and proxy usage are billed by your Apify plan. Estimates depend on the verified pricing model and the options selected for the run.

Limitations and responsible data use

  • The Actor collects publicly accessible data from Zalando pages only.
  • Field availability depends on what Zalando renders at run time; some values can be null or missing, and site changes can alter fields.
  • The Actor does not provide historical snapshots unless you store them yourself. Assortment, currency, and prices differ by shop domain.
  • Residential proxies are recommended; coverage may degrade without them.
  • You are responsible for compliance with Zalando's terms of service, applicable privacy law, and any contractual obligations before using the data.

Dataset questions

What does one dataset item represent?

One Zalando product. Size and config variants nest in variants when listingDetails is enabled, so a product with several sizes still produces a single dataset item.

Which field should I use as a unique identifier?

sku is the recommended deduplication key. url is a reasonable secondary key.

Are fields nullable or conditional?

Yes. description, variants, GTIN, and availability exist only when listingDetails is enabled and the product page is collected. Fields Zalando does not render are returned as null or omitted.

Can I retrieve the records as CSV or JSON?

Yes. Export JSON, CSV, Excel, XML, or HTML from the Apify Console, or query the Dataset API.

How do I query by category, search term, or product URL?

Pass category or search page URLs, or a product .html URL, in startUrls. For keyword search without a URL, set searchQueries and optionally baseUrl. Both inputs can be combined; maxItems applies across them.

Does the Actor return historical data?

No. Each run captures page state at run time. Schedule repeated runs and store outputs to track price or assortment changes.

What counts as a billable result?

Actor start once per run ($0.00005); dataset-item for every product ($0.001); and listing-details when details are collected ($0.002 per product). A listing-only run incurs Actor start plus dataset-item only.

  • IKEA Product Scraper — Home and furniture products for cross-retailer catalog and price comparison with Zalando home and lifestyle items.
  • Flipkart Product Scraper — Marketplace apparel and footwear records joinable by brand or title for multi-market pricing.
  • Amazon Search Scraper — Marketplace product records for competitive benchmarking against Zalando listings.
  • Etsy Scraper — Independent fashion and accessories listings for adjacent assortment research.
  • Best Buy Product Scraper — Electronics listings for the same price-monitoring pipelines when comparing non-apparel categories.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.