# Zalando Price Tracker (`epicscrapers/zalando-price-tracker`) Actor

Track Zalando product prices, discounts, sizes, and price changes across scheduled runs. Export structured data through datasets, the API, or integrations.

- **URL**: https://apify.com/epicscrapers/zalando-price-tracker.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 product checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Price Tracker

Track Zalando product prices, discounts, size variants, and price changes. Add product URLs from supported Zalando country stores, run the Actor on a schedule, and export structured results to JSON, CSV, Excel, or your preferred Apify integration.

### What can you use this Actor for?

- Monitor products for price drops
- Track competitor pricing and discounts
- Watch product and size availability
- Build price history datasets
- Automate alerts with schedules, webhooks, Zapier, Make, or other integrations
- Collect Zalando product data through the Apify API

### What data does it return?

Each result can include:

- Product SKU, name, brand, color, and category
- Current and original price
- Discount amount and percentage
- Previous price and price difference
- Product and source URLs
- Main image URL
- Size variants and availability
- Optional detailed product attributes
- Check time and result status

### How to track Zalando prices

1. Add one or more Zalando product detail URLs to **Product URLs**.
2. Select whether to include sizes and detailed attributes.
3. Run the Actor.
4. Run it again later, or create an Apify schedule, to detect price changes.

The Actor stores the latest snapshot for each product and country store. On later runs, it compares the current price with the stored price.

#### Example input

```json
{
    "productUrls": ["https://www.zalando.it/nike-sportswear-air-max-90-sneakers-basse-whitecrimson-ni112o0p5-a27.html"],
    "changeOnly": false,
    "includeSizes": true,
    "includeAttributes": false,
    "maxConcurrency": 3,
    "proxy": {
        "useApifyProxy": false
    }
}
```

#### Input options

| Field               | Type    | Description                                                                                  |
| ------------------- | ------- | -------------------------------------------------------------------------------------------- |
| `productUrls`       | array   | Zalando product detail URLs. URLs can use supported Zalando country domains.                 |
| `changeOnly`        | boolean | If enabled, save only new products, changed prices, and errors.                              |
| `includeSizes`      | boolean | Include product size variants. Enabled by default.                                           |
| `includeAttributes` | boolean | Include detailed product attributes. Disabled by default.                                    |
| `maxConcurrency`    | integer | Number of products processed at the same time, from 1 to 5.                                  |
| `proxy`             | object  | Optional proxy configuration. A residential proxy can help if Zalando blocks direct traffic. |

### Example output

```json
{
    "sku": "NI112O0P5-A27",
    "name": "AIR MAX 90",
    "brand": "Nike Sportswear",
    "color": "white/crimson",
    "category": "Shoes",
    "url": "https://www.zalando.it/...-ni112o0p5-a27.html",
    "sourceUrl": "https://www.zalando.it/...-ni112o0p5-a27.html",
    "imageUrl": "https://img01.ztat.net/...",
    "currency": "EUR",
    "currentPrice": 119.99,
    "originalPrice": 149.99,
    "discount": 30,
    "discountPercent": 20,
    "sizes": [
        {
            "size": "42",
            "sku": "NI112O0P5-A270420000",
            "availability": "AVAILABLE"
        }
    ],
    "priceChanged": true,
    "previousPrice": 129.99,
    "priceDifference": -10,
    "priceDifferencePercent": -7.69,
    "checkedAt": "2026-01-01T12:00:00.000Z",
    "status": "OK"
}
```

### Price change tracking

The first successful check creates the product baseline. Later checks return:

- `priceChanged`: whether the price changed
- `previousPrice`: the price from the prior check
- `priceDifference`: current price minus previous price
- `priceDifferencePercent`: percentage change from the previous price

A negative difference means that the price decreased.

Use an Apify schedule to run the Actor hourly, daily, or at another interval. Enable `changeOnly` when you want a compact dataset of changes instead of a full snapshot on each run.

### Supported Zalando stores

The Actor supports product URLs from Zalando stores in Austria, Belgium, Switzerland, the United Kingdom, Czechia, Germany, Denmark, Spain, Finland, France, Croatia, Hungary, Ireland, Italy, Lithuania, the Netherlands, Norway, Poland, Portugal, Romania, Sweden, Slovenia, and Slovakia.

### Export and integrations

Download results from the default dataset as JSON, CSV, XML, RSS, or Excel. You can also access results with the Apify API and connect runs to webhooks, Google Sheets, Slack, Make, Zapier, and other services.

### Pricing

The Actor costs **$0.005 per run plus $1.50 per 1,000 results** ($0.0015 each). One input URL normally creates one result, including clear error or not-found records when a product cannot be retrieved. Platform usage is included, so there are no separate compute charges.

### Notes and limitations

- Use direct Zalando product detail URLs. Search, category, and listing URLs are not supported.
- The first run cannot report a change because no earlier price exists.
- Product fields depend on the data available from Zalando.
- Zalando can change its private interfaces. If a run returns errors, retry with an Apify residential proxy and contact support if the issue continues.

### Legal notice

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zalando. Use it in accordance with applicable laws and Zalando’s terms and policies. Do not collect personal data or use the Actor in a way that harms the target service.

# Actor input Schema

## `productUrls` (type: `array`):

Zalando product detail URLs from any supported country store.

## `changeOnly` (type: `boolean`):

Only add new products and products with changed prices to the dataset. New products and errors are always added.

## `includeSizes` (type: `boolean`):

Include product sizes. This makes the product response larger.

## `includeAttributes` (type: `boolean`):

Include detailed Zalando product attributes.

## `maxConcurrency` (type: `integer`):

Maximum number of products processed at the same time.

## `proxy` (type: `object`):

Optional proxy configuration. Residential proxies can help if Zalando blocks datacenter traffic.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.zalando.it/nike-sportswear-air-max-90-sneakers-basse-whitecrimson-ni112o0p5-a27.html"
  ],
  "changeOnly": false,
  "includeSizes": true,
  "includeAttributes": false,
  "maxConcurrency": 3,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Link to the dataset of scraped records

# 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 = {
    "productUrls": [
        "https://www.zalando.it/nike-sportswear-air-max-90-sneakers-basse-whitecrimson-ni112o0p5-a27.html"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/zalando-price-tracker").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 = { "productUrls": ["https://www.zalando.it/nike-sportswear-air-max-90-sneakers-basse-whitecrimson-ni112o0p5-a27.html"] }

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/zalando-price-tracker").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 '{
  "productUrls": [
    "https://www.zalando.it/nike-sportswear-air-max-90-sneakers-basse-whitecrimson-ni112o0p5-a27.html"
  ]
}' |
apify call epicscrapers/zalando-price-tracker --silent --output-dataset

```

## MCP server setup

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

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/omUlghRxgGqGUzHi7/builds/yDGzeIXxUIG0IxwWP/openapi.json
