# Zalando Scraper - Products, Prices & Discounts (`haketa/zalando-scraper`) Actor

Scrape the Zalando fashion catalog: product name, brand, price, original price, discount %, sale flag, available sizes, colour, category and image — from any category, brand or search page, any country domain. Track price drops and size availability. No login, no API key, no browser.

- **URL**: https://apify.com/haketa/zalando-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** E-commerce, Business
- **Features:** Limited permissions
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Zalando Scraper — Products, Prices, Discounts, Sizes & Availability 👗👟

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/haketa/zalando-scraper)
[![Maintenance](https://img.shields.io/badge/Maintained-Active-brightgreen?style=flat-square)](https://apify.com/haketa/zalando-scraper)
[![Data Format](https://img.shields.io/badge/Format-JSON%20%7C%20CSV%20%7C%20Excel-blue?style=flat-square)](https://apify.com/haketa/zalando-scraper)
[![Deep Pagination](https://img.shields.io/badge/Pagination-1000%2B%20Products-purple?style=flat-square)](https://apify.com/haketa/zalando-scraper)
[![Extraction](https://img.shields.io/badge/Extraction-Fashion%20Catalog%20%26%20Sizes-success?style=flat-square)](https://apify.com/haketa/zalando-scraper)

Extract comprehensive product catalog data, live pricing, markdown percentages, and real-time size availability from [Zalando](https://www.zalando.com), Europe's leading online fashion and lifestyle marketplace. This high-efficiency **Zalando scraper** traverses brand showcases, category trees, and keyword search results across all European domains (.de, .co.uk, .fr, .it, .es, .nl, etc.) without headless browsers or expensive infrastructure. **No login required, no rate limit blocks, and 1,000+ deep pagination unlocked.**

Export structured e-commerce datasets directly to **JSON, CSV, Excel, or consume via the Apify REST API**.

***

### ⚡ At a glance

| Feature | Description |
|---|---|
| 🎯 **Target Platform** | [Zalando](https://www.zalando.com) European fashion e-commerce networks |
| 🌍 **Supported Domains** | `.de`, `.at`, `.ch`, `.co.uk`, `.ie`, `.fr`, `.be`, `.it`, `.es`, `.nl`, `.pl`, etc. |
| 🚀 **Data Yield** | SKU, product name, brand, color, category, department, live price, original price, discount %, sizes |
| 📏 **Size Inventory** | Full available sizes array (`availableSizes`) and size count (`availableSizesCount`) |
| 🔄 **Pagination Depth** | Continuous catalog traversal via `?p=N` (unlocked for 1,000+ products per listing) |
| ⚡ **Performance** | Ultra-fast HTTP hydration parsing with fast prefill execution (< 60s for standard batches) |
| 🏷️ **Deal Filtering** | Native flags for discounted-only items (`onlyDiscounted`) and minimum markdown percentage |
| 📦 **Export Formats** | Clean JSON, CSV, TSV, XML, Excel (XLSX), or automated webhook streams |
| 💼 **Primary Use Cases** | Price monitoring, competitor benchmarking, dynamic repricing, MAP tracking, fashion trend analysis |

***

### 🔎 Why scrape Zalando?

[Zalando](https://www.zalando.com) is Europe's digital fashion benchmark, featuring hundreds of thousands of active apparel, footwear, accessories, and designer collections from global titans (Nike, Adidas, Levi's, Ralph Lauren) alongside exclusive private labels.

Pricing, clearance markdowns, and size inventories on Zalando shift dynamically based on regional demand, promotional campaigns, and stock replenishment cycles:

- Fashion retailers and marketplace sellers must track competitor price fluctuations and discount depth in real time.
- Brands monitor Authorized Reseller and Minimum Advertised Price (MAP) compliance across European borders.
- Dropshippers and arbitrage resellers identify discounted inventory and in-stock size distributions.

Manually collecting product data across dozens of international Zalando domains is impossible at scale. This **Zalando data extractor** reads server-rendered catalog listings directly, parsing structured product models, stock sizes, and pricing attributes into standardized records ready for analytics or automated repricing workflows.

#### 💼 Primary business applications

- 🏷️ **Dynamic pricing & competitor monitoring**: Track rival brand listings, promotional discount depths, and clearance campaigns to adjust retail pricing dynamically.
- 📦 **Stock availability & size intelligence**: Monitor in-stock shoe and clothing sizes over time to detect stockouts or fast-moving sizes.
- 🛡️ **Brand protection & MAP compliance**: Audit whether third-party sellers or regional distributors violate suggested retail price boundaries.
- 👗 **Fashion trend & assortment research**: Aggregate color distributions, silhouette classifications, and brand representations across European markets.
- 🛍️ **Dropshipping & deal aggregation**: Power automated deal-alert channels, affiliate portals, or price comparison search engines.
- 📊 **Catalog feed enrichment**: Ingest high-resolution product imagery, structured SKUs, and standardized category tags into internal PIM systems.

***

### ✨ Key features

- 🌐 **Multi-country domain support**: Seamlessly extract listings from Germany, the UK, France, Italy, Spain, the Netherlands, Poland, and more with matching local currencies (EUR, GBP, PLN, CHF).
- 🔍 **Flexible input targeting**: Provide direct category, brand, or filtered catalog URLs, or simply enter a search keyword with country and gender options.
- 💰 **Comprehensive pricing breakdown**: Captures live selling price (`currentPrice`), list price (`originalPrice`), discount percentage (`discountPercent`), and savings amount (`discountAmount`).
- 👟 **Detailed size stock extraction**: Parses every in-stock size (e.g., `["38", "39", "40.5", "42"]` or `["S", "M", "L", "XL"]`) to verify real inventory availability.
- 🎨 **Visual & style attributes**: Extracts dominant color tags, silhouette categories (e.g., `SNEAKER`, `DRESS`, `JACKET`), and department targets (`MEN`, `WOMEN`, `KIDS`).
- 🏷️ **Built-in sale filters**: Restrict extractions to discounted products or enforce minimum markdown thresholds (e.g. 30%+ off).
- 🔄 **Deep 1,000+ pagination**: Automatically traverses multi-page catalogs to collect thousands of unique items per listing.
- ⚡ **Lightweight pure-HTTP engine**: Highly optimized HTTP extraction eliminates browser overhead, lowering computing costs and accelerating throughput.

***

### 🌍 Country portals & currency reference

Zalando maintains localized storefronts across Europe. When using keyword searches or direct URLs, the scraper automatically detects and normalizes the target country context:

| Portal Code | Country | Domain | Currency | Default Language |
|---|---|---|---|---|
| `de` | Germany | `www.zalando.de` | EUR (€) | German |
| `co.uk` | United Kingdom | `www.zalando.co.uk` | GBP (£) | English |
| `fr` | France | `www.zalando.fr` | EUR (€) | French |
| `it` | Italy | `www.zalando.it` | EUR (€) | Italian |
| `es` | Spain | `www.zalando.es` | EUR (€) | Spanish |
| `nl` | Netherlands | `www.zalando.nl` | EUR (€) | Dutch |
| `pl` | Poland | `www.zalando.pl` | PLN (zł) | Polish |
| `at` | Austria | `www.zalando.at` | EUR (€) | German |
| `ch` | Switzerland | `www.zalando.ch` | CHF (Fr.) | German / French |
| `be` | Belgium | `www.zalando.be` | EUR (€) | Dutch / French |
| `ie` | Ireland | `www.zalando.ie` | EUR (€) | English |

***

### 🎯 In-depth use cases & industry workflows

#### 1. Fashion brand price monitoring & MAP compliance

Global apparel and footwear brands distribute across multiple European Zalando portals. Market managers utilize this actor to monitor price integrity:

- Enforce MAP policies: Verify whether European wholesale distributors discount seasonal collections prematurely.
- Currency arbitrage detection: Compare UK sterling (GBP) price conversions against continental Euro (EUR) retail prices.
- Seasonal clearance tracking: Track when end-of-season clearance markdowns commence across European markets.

#### 2. E-commerce competitor intelligence & assortment benchmarking

Retailers competing with Zalando analyze catalog breadth and product density within specific niches (e.g. sustainable denim, outdoor trail footwear):

- Benchmark brand representation: Quantify how many SKUs each brand maintains in a given category.
- Measure markdown velocity: Track how quickly newly launched styles transition to discounted status.
- Monitor size curves: Analyze whether standard sizes (M, L / 41, 42) sell out faster in specific territories.

#### 3. Automated fashion deal curation & affiliate engines

Publishers and deal curation platforms scan Zalando for significant discounts on premium apparel:

- Filter high-discount items: Configure `onlyDiscounted: true` and `minDiscountPercent: 50` to uncover flash clearance bargains.
- Stream data to webhooks: Feed discounted listings directly into Telegram, Discord, or newsletter automation pipelines.
- Verify inventory before posting: Check `availableSizesCount` to guarantee featured items have actual stock available for readers.

***

#### 4. Assortment gap analysis & seasonal benchmarking

Fashion retail merchandising teams identify catalog voids and white-space opportunities:

- Category mix comparison: Measure the proportion of sneakers versus casual shoes across competing fashion platforms.
- Color palette trends: Monitor the shift in seasonal color trends (e.g. pastels in spring vs earth tones in autumn).
- Sustainable product share: Analyze what percentage of items carry the "Sustainable" or "Eco" flag over time.

***

### 📥 Input parameters

The scraper accepts flexible inputs including URLs and keyword searches. All fields are optional with intelligent defaults.

| Field | Type | Description | Default / Prefill |
|---|---|---|---|
| `startUrls` | array | Zalando catalog URLs (category, brand, search, or filtered). Any country domain (.de, .co.uk, .fr, .it, etc.). | Prefilled with sneaker category |
| `search` | string | Optional search keyword (e.g. `nike air max`) combined with `country` and `gender`. | `""` |
| `country` | string | Target country portal for keyword searches (`de`, `co.uk`, `fr`, `it`, `es`, `nl`, `pl`, `at`, `ch`). | `"de"` |
| `gender` | string | Target department for keyword searches (`women`, `men`, `kids`). | `"women"` |
| `onlyDiscounted` | boolean | Set `true` to collect only products currently on sale. | `false` |
| `minDiscountPercent` | integer | Keep only products discounted by at least this percentage (e.g. `30` for 30%+ off). Set `0` to disable. | `0` |
| `maxItems` | integer | Maximum products to collect per URL / search. Set to `0` for unlimited catalog extraction (supports 1,000+ products). | `0` (prefill: `50`) |
| `proxyConfiguration` | object | Proxy settings. Defaults to Apify Proxy for high-reliability IP rotation. | `{"useApifyProxy": true}` |

#### Example input configuration

```json
{
  "startUrls": [
    { "url": "https://www.zalando.de/herrenschuhe-sneaker/" }
  ],
  "search": "",
  "country": "de",
  "gender": "men",
  "onlyDiscounted": false,
  "minDiscountPercent": 0,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

***

### 🚀 Step-by-step extraction guide

1. **Find your target catalog**: Open Zalando in your browser and navigate to any category, brand, or search results page.
2. **Apply your desired filters**: Narrow your search by size, color, brand, or price range directly on Zalando.
3. **Copy the filtered URL**: Copy the full URL from your browser address bar.
4. **Configure the actor**:
   - Paste the URL into `startUrls`.
   - Set `maxItems` to your target volume (or `0` for complete catalog ingestion).
   - Optionally toggle `onlyDiscounted` if tracking sale events.
5. **Start the extraction**: Click **Start** in the Apify Console.
6. **Export your dataset**: Download structured data in CSV, Excel, or JSON format.

***

### 📤 Output dataset & field coverage

Each extracted product produces a structured item record containing product identity, pricing, markdown analytics, stock sizes, and imagery.

#### 🛍️ Product identity & classification

| Field | Type | Coverage | Description |
|---|---|---|---|
| `sku` | String | 🟢 High | Unique Zalando product SKU identifier |
| `name` | String | 🟢 High | Full commercial product name |
| `brand` | String | 🟢 High | Brand or manufacturer label |
| `color` | String | 🟢 High | Product colorway extracted from product title |
| `category` | String | 🟢 High | Silhouette or product type classification (e.g., `SNEAKER`, `BOOT`) |
| `targetGroup` | String | 🟢 High | Target demographic department (`MEN`, `WOMEN`, `KIDS`) |
| `url` | String | 🟢 High | Canonical product page URL on Zalando |
| `flags` | Array | 🟡 Conditional | Badges and tags (e.g., `["Sustainable", "Exclusive", "Sale"]`) |
| `image` | String | 🟢 High | Clean high-resolution product image URL |
| `scrapedAt` | String | 🟢 High | ISO 8601 extraction timestamp |

#### 💰 Pricing, discounts & size inventory

| Field | Type | Coverage | Description |
|---|---|---|---|
| `currency` | String | 🟢 High | Currency code (`EUR`, `GBP`, `PLN`, `CHF`) |
| `currentPrice` | Float | 🟢 High | Active live selling price |
| `originalPrice` | Float | 🟢 High | Original manufacturer retail list price |
| `onSale` | Boolean | 🟢 High | `true` if currentPrice is discounted below originalPrice |
| `discountPercent` | Integer | 🟢 High | Markdown percentage (0 to 90+) |
| `discountAmount` | Float | 🟢 High | Absolute monetary discount amount |
| `availableSizes` | Array | 🟢 High | Array of all currently in-stock size strings |
| `availableSizesCount` | Integer | 🟢 High | Total count of unique available sizes |

***

### 📋 Sample output record

```json
{
  "sku": "AD112B10B-A11",
  "name": "Adidas Originals - SAMBA OG - Trainers - cloud white/core black",
  "brand": "adidas Originals",
  "color": "cloud white/core black",
  "category": "SNEAKER",
  "targetGroup": "MEN",
  "url": "https://www.zalando.de/adidas-originals-samba-og-sneaker-cloud-whitecore-black-ad112b10b-a11.html",
  "currency": "EUR",
  "currentPrice": 89.95,
  "originalPrice": 119.95,
  "onSale": true,
  "discountPercent": 25,
  "discountAmount": 30.00,
  "availableSizes": ["39 1/3", "40", "41 1/3", "42", "43 1/3", "44", "45 1/3"],
  "availableSizesCount": 7,
  "flags": ["Sustainable", "Sale"],
  "image": "https://img01.ztat.net/article/spp-media-p1/ad112b10b-a11/ad112b10b-a11@1.1.jpg",
  "scrapedAt": "2026-11-10T14:22:15.890Z"
}
```

***

### 💻 Developer integration & API examples

Trigger runs and retrieve catalog datasets programmatically using Python, Node.js, or cURL.

#### Python integration

```python
from apify_client import ApifyClient

## Initialize client with your Apify API token
client = ApifyClient("YOUR_APIFY_TOKEN")

## Run the Zalando Scraper actor
run = client.actor("haketa/zalando-scraper").call(
    run_input={
        "startUrls": [{"url": "https://www.zalando.de/herrenschuhe-sneaker/"}],
        "onlyDiscounted": True,
        "minDiscountPercent": 20,
        "maxItems": 100,
    }
)

## Fetch dataset items
products = client.dataset(run["defaultDatasetId"]).list_items().items
for p in products:
    print(f"[{p['brand']}] {p['name']} - {p['currentPrice']} {p['currency']} (-{p['discountPercent']}%) | Sizes: {p['availableSizesCount']}")
```

#### Node.js integration

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('haketa/zalando-scraper').call({
    startUrls: [{ url: 'https://www.zalando.co.uk/mens-shoes-trainers/' }],
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((p) => {
    console.log(`${p.brand} ${p.name}: £${p.currentPrice} (Available sizes: ${p.availableSizes.join(', ')})`);
});
```

#### cURL API execution

```bash
curl "https://api.apify.com/v2/acts/haketa~zalando-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [{"url": "https://www.zalando.de/herrenschuhe-sneaker/"}],
    "maxItems": 50
  }'
```

***

### 💡 Best practices for optimal results

- **Filter directly on Zalando**: Use Zalando's native website filters for precise brands, shoe sizes, or price brackets before pasting the URL into `startUrls`. The actor preserves all URL query parameters.
- **Deep catalog ingestion**: Set `maxItems: 0` to enable the full pagination loop across multi-thousand product listings.
- **Fast prefill testing**: For quick data structure checks, leave `maxItems` set to `50` to complete runs in under 30 seconds.
- **De-duplication**: The scraper de-duplicates products by unique SKU in memory, ensuring that overlapping multi-page listings never produce duplicate rows.
- **Deal hunting automation**: Combine `onlyDiscounted: true` with `minDiscountPercent: 30` to extract only heavily discounted merchandise.
- **Multi-URL batching**: You can supply multiple category and brand URLs simultaneously in `startUrls`. The actor processes each one in sequence while tracking global SKU de-duplication.
- **Currency matching**: When targeting specific regional currencies, ensure your `startUrls` or `country` codes match the target jurisdiction.
- **Handling rate limits gracefully**: The built-in exponential backoff automatically retries requests if high-velocity queries trigger temporary throttling.

***

### ❓ Frequently Asked Questions

##### Do I need a Zalando account, login, or API key?

No. The scraper operates without user accounts, developer credentials, or API keys, extracting publicly accessible catalog listings directly.

##### Can I scrape Zalando stores from other countries?

Yes. The scraper supports all European Zalando storefronts including Germany (.de), United Kingdom (.co.uk), France (.fr), Italy (.it), Spain (.es), Netherlands (.nl), Poland (.pl), Austria (.at), and Switzerland (.ch).

##### How many products can be extracted per run?

The pagination engine supports 1,000+ products per listing without artificial barriers. Setting `maxItems: 0` instructs the engine to paginate until the end of the catalog.

##### Why are availableSizes sometimes empty for certain items?

Standard apparel and footwear expose full in-stock size arrays. However, one-size merchandise such as accessories, home textiles, and cosmetics do not have size variants on Zalando, so `availableSizes` remains empty.

##### Can I run this scraper on a recurring schedule?

Yes. Use Apify's built-in scheduler to trigger recurring daily or weekly extractions, allowing you to build comprehensive historical price tracking databases.

##### Does this actor download full-size product images?

The actor extracts clean, direct image URLs without query resizing artifacts. You can download or hotlink images directly using the URLs provided in the `image` field.

##### How does the scraper avoid duplicate items?

Each product has a globally unique Zalando SKU. The actor tracks discovered SKUs in an in-memory session set, discarding any duplicate entries before pushing data to the dataset.

##### What export formats are available for Zalando data?

You can download your datasets in JSON, CSV, TSV, XML, or Excel (XLSX) format. You can also connect the Apify API directly to PostgreSQL, Snowflake, BigQuery, or Google Sheets.

##### Can I monitor specific fashion brands exclusively?

Yes. Navigate to your brand page on Zalando (e.g. `https://www.zalando.de/nike/`), apply any desired filters, and provide that URL in `startUrls`. The scraper will restrict extraction exclusively to that brand.

##### How frequently should I schedule this scraper for price tracking?

For active repricing and dynamic deal tracking, a daily run at off-peak hours is recommended. For macro assortment and seasonal trend research, a weekly or bi-weekly schedule is typically ideal.

##### Does the scraper work with sale and outlet sections?

Yes. You can supply URLs from Zalando's dedicated Sale or Lounge outlet sections directly. The actor automatically identifies promotional tags, markdown percentages, and crossed-out prices.

***

### 🔗 Related e-commerce scrapers

Expand your retail intelligence pipeline with other high-performance scrapers in the portfolio:

- 🛍️ [Tokopedia Product Scraper](https://apify.com/haketa/tokopedia-scraper) — Indonesian e-commerce marketplace catalog & pricing.
- 👗 [Wildberries Catalog Scraper](https://apify.com/haketa/wildberries-scraper) — Eastern European e-commerce product extraction.
- 📦 [AliExpress Product Scraper](https://apify.com/haketa/aliexpress-product-scraper) — Global direct-to-consumer marketplace pricing and reviews.
- 🏷️ [Flipp Scraper](https://apify.com/haketa/flipp-scraper) — Retail circulars, promotional flyers, and grocery discounts.
- 🇲🇾 [Lelong.my Scraper](https://apify.com/haketa/lelong-my-scraper) — Malaysian consumer electronics and lifestyle products.

***

### 📋 Changelog

#### Version 1.2 — November 2026

- **Unlocked 1,000+ deep pagination**: Removed restrictive item limits to enable complete category catalog indexing for large brands.
- **Optimized prefill defaults**: Lowered prefill to 50 items for rapid platform test runs (< 60s).
- **Enhanced size extraction**: Expanded media and size extraction logic across all apparel and accessories types.
- **Enhanced schema compliance**: Validated all schema types and refreshed field coverage documentation.

#### Version 1.1 — October 2026

- Added keyword search helper (`search`, `country`, `gender`).
- Added color extraction from product titles.
- Added discount filtering flags (`onlyDiscounted`, `minDiscountPercent`).

#### Version 1.0 — August 2026

- Initial release with support for Zalando category and brand catalog extraction, live pricing, and available sizes.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/zalando-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

Zalando category / brand / search page URLs. Filter on Zalando (brand, category, price, colour…) and paste the resulting URL — any domain (.de, .co.uk, .fr, .it…). The scraper paginates automatically.

## `search` (type: `string`):

A keyword to search instead of (or in addition to) URLs, e.g. <b>nike air max</b>. Combined with the <b>Country</b> and <b>Gender</b> below.

## `country` (type: `string`):

Zalando country domain for the search keyword: <b>de</b>, <b>at</b>, <b>ch</b>, <b>co.uk</b>, <b>ie</b>, <b>fr</b>, <b>be</b>, <b>it</b>, <b>es</b>, <b>nl</b>, <b>pl</b>.

## `gender` (type: `string`):

Which department the search keyword applies to.

## `onlyDiscounted` (type: `boolean`):

Keep only products currently on sale (reduced from the original price). Great for deal hunting and price monitoring.

## `minDiscountPercent` (type: `integer`):

Keep only products discounted by at least this percentage (e.g. 30 for 30%+ off). 0 = ignore.

## `maxItems` (type: `integer`):

Maximum products to collect per URL / search. Set to 0 for unlimited catalog extraction.

## `proxyConfiguration` (type: `object`):

Optional. Recommended for larger runs. Defaults to Apify Proxy.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.zalando.de/herrenschuhe-sneaker/"
    }
  ],
  "country": "de",
  "gender": "women",
  "onlyDiscounted": false,
  "minDiscountPercent": 0,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

Scraped Zalando products with price, discount and sizes.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.zalando.de/herrenschuhe-sneaker/"
        }
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/zalando-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.zalando.de/herrenschuhe-sneaker/" }],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/zalando-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.zalando.de/herrenschuhe-sneaker/"
    }
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/zalando-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/zalando-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NkFI5OfVKhrTDJuUn/builds/5pFImnZGbUkkszspJ/openapi.json
