# Zalando Scraper API — $0.001 per product

> Zalando Scraper API: Fashion products from Zalando.it — brand, name, price, EU. $0.001 per delivered product, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*Zalando Scraper API*

# Zalando Scraper API

A Zalando scraper API that searches the Zalando.it catalogue by keyword and returns one row per product: brand, name, current price, the EU-Omnibus reference prices — the 30-day median and the 30-day low, each with its own discount percentage — the article SKU, the packshot image and the product URL. Missing reference prices are null, never guessed.

By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData · Published Aug 21, 2026 · Updated Sep 3, 2026

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/zalando-scraper-api/#integration)

$0.001 per delivered product · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/zalando_search/run

```
$ curl $QD/zalando_search/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "scarpe", "max_results": 24}'
{ "status": "done", "count": 24,
  "results": [
    {
      "sku": "…",
      "brand": "…",
      "name": "…",
      "price": … } ],
  "cost": 0.024 }
# 24 products × $0.001 · nothing delivered, nothing charged
```

You send query and max_results; the run goes out through a residential exit and comes back as products with rank, sku and brand — 14 fields on every row — and you are billed $0.001 for each product actually delivered, nothing for a run that delivers none.

**$0.001 / product**2,000 products on the free $2 every month

**Semantic input**query, max_results — no URL lists

**Up to 240**products per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [Try it](/collectors/zalando-scraper-api/#try) [What it is](/collectors/zalando-scraper-api/#what) [Limits](/collectors/zalando-scraper-api/#caps) [Output fields](/collectors/zalando-scraper-api/#output) [Inputs](/collectors/zalando-scraper-api/#input) [Pricing](/collectors/zalando-scraper-api/#pricing) [Integration](/collectors/zalando-scraper-api/#integration) [Use cases](/collectors/zalando-scraper-api/#use-cases) [Versus the alternatives](/collectors/zalando-scraper-api/#compare) [FAQ](/collectors/zalando-scraper-api/#faq)

Try it

## Zalando product search, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

[Get my free API key](https://app.quanticdata.io/register)

## What a Zalando scraper API does

Zalando publishes no structured data on a catalogue page — no schema.org block, no hydration payload, and its old public catalogue endpoint answers 410 Gone — so this is one of the few collectors that reads server-rendered markup, and it does so without touching a single class name. Every class on the page is a hashed build artefact that changes when Zalando ships CSS. The parser reads the semantic skeleton instead, and its most durable anchor is an article element that contains a heading: the grid also renders influencer “outfit” tiles as articles, and they carry no heading, no price and no SKU, which is exactly what keeps them out of the rows.

Prices on Zalando are not a fixed shape. A card carries one, two or three price paragraphs and the count varies row to row — on a sampled page, 6 cards had one, 14 two and 4 three. Each row is therefore parsed by walking its own paragraphs and classifying each by content, never by index and never by zipping page-wide arrays, which would shift every row after the first single-price card. The two reference prices mean different things under the EU Omnibus rules and are delivered as two fields; a “da” (from) price is flagged `price_from` because its discount is an upper bound across variants.

Input is meaning, not a URL *query* *max_results*

## Limits, in plain numbers

Everything that bounds one run of this collector. No hidden throttles.

Max per run

240 products

Price

$0.001 / product

Per 1,000

$1.00

Failed runs

Free zero rows, zero charge

Free every month

$2 no card

Rate limit

60 req/min on the free tier

## What one product looks like

Every delivered product carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `rank` | integer | 1-based position in this response. |
| `sku` | string · nullable | Zalando article SKU, e.g. "AD116D1S8-A13" (config id + colour), read from the product URL. |
| `brand` | string · nullable | Brand, e.g. "adidas Originals". |
| `name` | string | Product name including type and colourway. |
| `price` | number · nullable | Current price in EUR. When price_from is true this is the cheapest variant. |
| `price_text` | string · nullable | Price exactly as the card shows it, e.g. "da 71,99 €". |
| `price_from` | boolean | True for a "da" (from) price — the card spans variants priced differently. |
| `median_price` | number · nullable | Zalando's stated 30-day median price ("Prezzo mediano"). An EU-Omnibus reference, NOT a list price. Null when the card states none. |
| `median_discount_percent` | integer · nullable | Discount against median_price, as a positive percentage. |
| `lowest_price_30d` | number · nullable | Zalando's stated lowest price of the last 30 days. Null when the card states none. |
| `lowest_price_30d_discount_percent` | integer · nullable | Discount against lowest_price_30d, as a positive percentage. |
| `discount_is_max` | boolean | True when the card says "Fino a" (up to) — the discount applies to the cheapest variant, not to every size. |
| `image` | string · nullable | Packshot image URL. |
| `url` | string · nullable | Product page URL. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `query` | string | yes | What to search on Zalando.it, e.g. "scarpe" or "nike air max". |
| `max_results` | integer | no | How many products to deliver at most (1–240). You pay only for delivered products. |

Pricing

## Zalando Scraper API pricing

$0.001 per delivered product. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 products before you spend anything.

**$0.001**per delivered product*$1 per 1,000 delivered products*

**2,000 products**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/zalando_search/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/zalando_search/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"scarpe","max_results":24}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/zalando_search/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "query": "scarpe",
        "max_results": 24
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/zalando_search/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"query":"scarpe","max_results":24}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quanticdata \
  -e QUANTICDATA_API_KEY=qd_live_your_key_here \
  -- npx -y quanticdata-mcp

# then, in the chat:
> run the zalando_search collector with query="scarpe" and max_results=24
```

## What people build with the Zalando scraper API

Three shapes of work this endpoint was designed around.

### Omnibus-compliant price monitoring

Current price against the 30-day median and the 30-day low, each with its own discount, so a “−40%” claim can be checked against what the rules require.

### Brand and assortment tracking

Brand, name and SKU per product for a keyword, re-run weekly to see what entered, left or was repriced.

### Cross-retailer comparison

Join by brand and product name with the ASOS and Nike rows to compare the same item across shops.

## Zalando Scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Selectors | Hashed class names that die on the next CSS deploy | Semantic structure only: an article with a heading |
| Outfit tiles | Parsed as products | Excluded by structure — no heading, no price, no SKU |
| Prices | Paragraph N of the card | Each paragraph classified by what it says |
| Reference prices | One “was” price, meaning unclear | Median and 30-day low as separate fields, null when absent |

## What people search for

Live autocomplete demand around Zalando product search, pulled with our own Keyword ideas collector.

Searches: [zalando scraper github](/collectors/zalando-scraper-api/#try) [zalando lounge scraper](/collectors/zalando-scraper-api/#try) [scraper zalando](/collectors/zalando-scraper-api/#try) [scraping zalando](/collectors/zalando-scraper-api/#try) [zalando parser](/collectors/zalando-scraper-api/#try) [zalando scraping](/collectors/zalando-scraper-api/#try)

The same call you would paste into a terminal: a Bearer key, query in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many products arrived and usage.cost_usd is $0.024, which is 24 × $0.001. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

## Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

- [Schema.org: the Product type](https://schema.org/Product)

- [Google Search Central: product structured data](https://developers.google.com/search/docs/appearance/structured-data/product)

- [IETF: RFC 9309, Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html)

## FAQ

Questions we get about the Zalando scraper API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Which Zalando country?

Zalando.it, priced in euro. The reference-price rules are the EU Omnibus ones, which is why the row carries both the 30-day median and the 30-day low.

### What does price_from mean?

The card covers several variants and shows the cheapest as a “da” (from) price. Its discount is therefore an upper bound, and the row flags that with `discount_is_max`.

### Why can a reference price be null?

Because Zalando does not state one for every product. A card may carry either reference price, both, or neither; the row reports what the card states and nothing more.

### Will a Zalando redesign break it?

A restyle will not: no class names are read. A change to the page’s structure could, and the collector reports a zero-row page as a failure rather than a success, so it shows up in health rather than in your data.

### Is there a free Zalando scraper API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered products on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 240 products — the maximum for this collector — costs $0.24 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the Zalando scraper API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 100 collectors](https://quanticdata.io/collectors/) [ASOS Scraper API](https://quanticdata.io/collectors/asos-scraper-api/) [Nike Scraper API](https://quanticdata.io/collectors/nike-scraper-api/) [Amazon scraper API](https://quanticdata.io/collectors/amazon-scraper-api/) [Competitor price monitoring](https://quanticdata.io/competitor-price-monitoring/) [Documentation](https://quanticdata.io/docs/)

## Also on this site

Quantic**Data**

Residential proxies & web data APIs for AI.

#### Proxies

- [Residential Basic](https://quanticdata.io/residential-proxies/#basic)

- [Residential Premium](https://quanticdata.io/residential-proxies/#plans)

- [Cheap Residential](https://quanticdata.io/cheap-residential-proxies/)

- [Mobile Proxies](https://quanticdata.io/mobile-proxies/)

- [Datacenter Proxies](https://quanticdata.io/datacenter-proxies/)

- [ISP Proxies](https://quanticdata.io/isp-proxies/)

- [Rotating Proxies](https://quanticdata.io/rotating-proxies/)

- [Sneaker Proxies](https://quanticdata.io/sneaker-proxies/)

- [SOCKS5 Proxies](https://quanticdata.io/socks5-proxies/)

- [IPv6 Proxies](https://quanticdata.io/ipv6-proxies/)

- [Proxy locations](https://quanticdata.io/proxies/)

#### Data APIs

- [MCP Server](https://quanticdata.io/mcp-server/)

- [Web Scraper API](https://quanticdata.io/web-scraping-api/)

- [SERP API](https://quanticdata.io/serp-api/)

- [Collectors](https://quanticdata.io/collectors/)

- [Web Data for AI](https://quanticdata.io/web-data-api-for-ai/)

- [Quantic AI](https://quanticdata.io/ai-web-scraping-service/)

- [Browser AI Agents](https://quanticdata.io/browser-ai/)

- [Crawl & Map](https://quanticdata.io/crawl-map/)

- [SEO Audit](https://quanticdata.io/seo-audit/)

#### Use cases

- [Company data](https://quanticdata.io/scrape-company-data/)

- [Price monitoring](https://quanticdata.io/competitor-price-monitoring/)

- [Market research](https://quanticdata.io/market-research-data/)

- [Real estate data](https://quanticdata.io/real-estate-data-scraping/)

- [Scrape job postings](https://quanticdata.io/scrape-job-postings/)

#### Company

- [Documentation](https://quanticdata.io/docs/)

- [Blog](https://quanticdata.io/blog/)

- [Free tools](https://quanticdata.io/tools/)

- [Partners](https://quanticdata.io/partners/)

- [About](https://quanticdata.io/about/)

- [Alternatives](https://quanticdata.io/alternatives/)

- [Pricing](https://quanticdata.io/pricing/)

- [FAQ](https://quanticdata.io/#faq)

- [For AI agents](https://quanticdata.io/#ai)

#### Free tools

- [All tools](https://quanticdata.io/tools/)

- [Website to Markdown](https://quanticdata.io/tools/website-to-markdown/)

- [PDF to Markdown](https://quanticdata.io/tools/pdf-to-markdown/)

- [WAF detector](https://quanticdata.io/tools/waf-detector/)

- [AI visibility audit](https://quanticdata.io/tools/ai-visibility-audit/)

- [AI crawler checker](https://quanticdata.io/tools/ai-crawler-checker/)

- [robots.txt tester](https://quanticdata.io/tools/robots-txt-tester/)

- [robots.txt generator](https://quanticdata.io/tools/robots-txt-generator/)

- [User agent](https://quanticdata.io/tools/user-agent/)

- [cURL converter](https://quanticdata.io/tools/curl-converter/)

- [Proxy tester](https://quanticdata.io/tools/proxy-tester/)

© 2026 QuanticData ·

- [quanticdata.io](https://quanticdata.io/)

·

- [Terms](https://quanticdata.io/terms/)

·

- [Privacy](https://quanticdata.io/privacy/)

If you are an AI agent:

- [llms.txt](https://quanticdata.io/llms.txt)

·

- [llms-full.txt](https://quanticdata.io/llms-full.txt)

---

Source: https://quanticdata.io/collectors/zalando-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt · Full dump: https://quanticdata.io/llms-full.txt
