Alza Scraper & API: Prices, Stock, Price History · Apify
Alza Scraper ($2.89/1K): Prices & Tracker (CZ SK HU AT DE) avatar

Alza Scraper ($2.89/1K): Prices & Tracker (CZ SK HU AT DE)

Pricing

from $1.99 / 1,000 products

Go to Apify Store
Alza Scraper ($2.89/1K): Prices & Tracker (CZ SK HU AT DE)

Alza Scraper ($2.89/1K): Prices & Tracker (CZ SK HU AT DE)

Scrape Alza.cz, .sk, .hu, .at and .de by category, brand, search, code, MPN or URL. Prices, discount codes, cashback, stock, MPN, all parameters, reviews without names. Price history with a fake-discount check, shelf report (share of shelf by brand), price monitoring. Unofficial.

Pricing

from $1.99 / 1,000 products

Rating

0.0

(0)

Developer

Tsutsei Software

Tsutsei Software

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

13

Monthly active users

10 hours ago

Last modified

Features

Limited permissions

Share

Alza Scraper & Price Tracker (alza.cz, .sk, .hu, .at, .de)

Scrape products and prices from Alza, the largest e-shop in Central Europe, on all five of its websites: alza.cz, alza.sk, alza.hu, alza.at and alza.de. Start from a category, a brand page, a filtered or sorted page, a promotion, search terms, product URLs, or your own list of Alza codes, product IDs or manufacturer part numbers (MPN). Built for e-shops and brands watching Alza's prices, deal websites, price comparison and market research.

  • 🏷️ Prices exactly as Alza shows them: price, crossed-out price and discount, discount code and the price with it ("Koupit s kódem ALZADNY5"), trade-in, AlzaPlus+ and cashback prices, instalment, availability with pieces in stock and the condition (new, unpacked, like new, used).
  • 🧾 Product details included in the price (on by default): MPN for matching with other shops, price without VAT, all parameters and photos, warranty, how many stores have it now, and the rating summary with the bought count, recommendation rate and complaint rate ("reklamovanost").
  • 📉 Monitoring: a daily run returns, and charges, only products whose price, crossed-out price, code price or availability changed, plus products that disappeared or came back, so a daily run of an unchanged category costs almost nothing.
  • 📈 Price history and fake-discount check: the lowest price of the last 30 and 90 days, whether today's price is the lowest in 90 days, and a flag when the crossed-out price is higher than a price your runs saw before the discount. How it works
  • 🧮 Shelf report: which brands hold the first 24 (or N) positions of every category and search, their share of shelf, sponsored positions and positions gained or lost since the previous run, ready for Excel. How it works
  • 💲 $2.89 per 1 000 products on the FREE plan ($1.99 on GOLD), residential proxy and platform included: 100 products with details cost $0.29.

Optionally you also get customer reviews without names, the full description and the delivery date and pickup places (Alza stores, AlzaBoxes, partner points) near a town. New: price history and the shelf report are free until 28 November 2026. Coming from another Alza scraper? The input of appealing_jingle/alza-scraper works here as it is, see Switching from another Alza scraper.

⭐ If this actor saves you time, please rate it or bookmark it. It helps other users find it, and every review is read.

Česky: Scraper a hlídač cen pro Alza.cz, Alza.sk, Alza.hu, Alza.at a Alza.de. Stáhne ceny, přeškrtnuté ceny a slevy přesně jak je ukazuje e-shop, slevové kódy, dostupnost a počet kusů, stav (nové, rozbalené, použité), hodnocení, MPN, parametry, fotky, recenze bez jmen a výdejní místa. Začít můžete z kategorie, značky, vyhledávání, URL produktu nebo seznamu kódů Alzy a MPN. Monitoring vrací (a účtuje) jen změněné produkty, historie cen ukazuje nejnižší cenu za 30 a 90 dní a odhalí slevy z uměle zvýšené ceny, report pozic ukazuje podíl značek na první stránce kategorie nebo vyhledávání. Výstup do Excelu, CSV nebo JSON, $2,89 za 1 000 produktů (na plánu GOLD $1,99) včetně proxy a detailů. Podporu poskytujeme i česky.

Why this Alza scraper?

This actor
🌍 Websitesalza.cz, alza.sk, alza.hu, alza.at, alza.de in one actor
🧾 Product detailsIncluded in the price per product: MPN, price without VAT, all parameters and photos, warranty, stores with stock
⭐ Rating dataRating, number of ratings, distribution per star, bought count, recommendation rate, complaint rate (included)
💬 ReviewsOptional, text, pros and cons, variant, verified purchase, shop response, without reviewers' names
🏷️ PricesPrice, crossed-out price (30-day lowest), discount as shown, savings, discount code + price with code, trade-in price, AlzaPlus+ price, instalment, price without VAT
📦 Availability11 clear values (in stock, at the supplier, on the way, on order, expected, pre-order, only for AlzaPlus+, unavailable…), pieces, condition, stores with stock, pickup places and delivery date near a town
🔎 InputsURLs of categories, brands, parameters, promotions, searches and products (also English /EN/ URLs and lists from a file or Google Sheet); search terms; Alza codes, product IDs and MPNs
🎛️ FiltersWebsite sorting and brand pages; price, discount, code, availability, condition, rating, number of ratings, brands, name words, sponsored, MPN
📉 MonitoringOnly new or changed, only price changes, minimum price drop, removed and reappeared products
📈 Price historyLowest price of 30 and 90 days, highest and average price, "lowest price in 90 days", check of the crossed-out price against the prices seen before the discount (fake discounts), only deals at a 90-day low; saved in your own storage
🧮 Shelf reportShare of shelf by brand for every category and search: top N positions, first page, average and best position, sponsored slots, prices, discounts, ratings, change since the previous run; CSV for Excel
⚡ SpeedNo browser, 256 MB; optional fast mode about 4× faster for a tiny extra charge
💲 Price$2.89 per 1 000 products on the FREE plan, $1.99 on GOLD; residential proxy, platform and product details included

What data can you get?

Share of products with a value, measured on 264 products of listing pages saved on 2026-10-14 (laptops, TVs, Apple laptops, cheapest laptops, searches, alza.sk/.hu/.de) and on the product data for the details. Fields marked optional need the input in brackets.

FieldExampleFilled
Name, Alza code, product ID, URL, image, short descriptionMacBook Air 13" M5 CZ 2026 Blankytně modrý, NL253a1a, 13268819100 %
BrandApple, Lenovo100 % with details (without details ~98 % of 302 listing products)
Price, currency31 990 CZK, 839.87 EUR, 221 290 HUF100 %
Crossed-out price, discount, price badge34 990 → 31 990 CZK, 8 %, "Zlevněno -8 %"discounted products (~14 %)
Savings ("Ušetříte …")800 CZK~9 %
Discount code, price with code, code discountALZADNY5, 30 391 CZK, 5 %only during Alza's code promotions (none on 2026-11-05); code expiry with details
Trade-in price, AlzaPlus+ price27 891 CZKwhen shown (trade-in ~7 % of listings; it is never returned as a price with a code)
Price after manufacturer's cashback, cashback end (details)24 990 CZK, 2026-12-31during cashback promotions (e.g. 5 of 20 TVs on 2026-11-09)
Monthly instalment from699 CZK~70 %
Availability, text, piecesin_stock, "Skladem > 5 ks", 5 (at least)100 %, pieces ~96 %
Condition, price of the new productunpacked, 10 990 CZK100 % (second-hand ~3 % of listings)
Rating, number of ratings4.6, 1 059rated products (~80 %)
Variants7products with variants (~45 %)
Labels, delivery note, free delivery, sponsored"Adaptér není v balení", "Do půlnoci objednáš, ráno v AlzaBoxu máš."~92 %
MPN, price without VAT, warranty (details, on by default)MDHH4CZ/A, 26 438 CZK, 24 months100 % of products with details (MPN when the shop has it)
Parameters (as a list and as one specs object, name → value), photos, promotions, category path (details)60 parameters, 9 photos, "Cenové bomby"100 % of products with details
Stores with stock, fastest delivery (details)6, "Můžete mít ihned na 6 prodejnách"products in stores
Rating distribution, bought, recommended, complaint rate (rating summary, on by default){"5": 2, …}, "100+", 100 %, 1.67 % "nízká reklamovanost"100 % with the rating summary
Reviews (Add reviews)rating, date, text, pros, cons, variant, verified purchaseproducts with reviews
Description (Add description)the full text100 % of products
Price history (Price history): lowest price of 30 and 90 days, highest and average price of 90 days, current price since, lowest price in 90 days, crossed-out price check, the price changes29 990 CZK, 34 990 CZK, higher_than_observed_lowevery product with a price; the 30- and 90-day values grow with your runs (lowest price in 90 days after 30 days of history)
Shelf report (Shelf report): per listing and brand products in the top N and on the first page, share of shelf, average and best position, sponsored positions, average price, discounted products, average rating, change since the previous runSamsung 16 of 48, 33.3 %, best position 7every category, brand page and search of the run (in SHELF_REPORT, not in the product rows)
Pickup places, delivery date (Pickup places near)"Alza Praha 5 Anděl – Doručíme 16.10. do 17:30", "Zítra"100 % (tested on alza.cz, .sk, .hu and .de; on alza.de mostly DHL partner points)

How to scrape Alza

  1. Open a category, brand or search on alza.cz (or .sk, .hu, .at, .de) and copy the URL, or type search terms, Alza codes or MPNs.
  2. Paste it into Category, brand, search or product URLs (or the other fields) and set Max products. A long list of URLs can be uploaded as a text file or linked as a remote text file, CSV or Google Sheet.
  3. Optionally choose Sort by, filters, the extras (reviews, description, pickup places) and monitoring.
  4. Click Start. Download the results as JSON, CSV, Excel or XML, or connect them to your tools.

Use cases

Price monitoring of a category (only changes, with price drops of 5 % or more):

{
"startUrls": [{ "url": "https://www.alza.cz/televize/18849604.htm" }],
"maxItems": 0,
"maxPagesPerCategory": 40,
"onlyNewOrChanged": true,
"minPriceDropPercent": 5,
"monitoringKey": "tv-drops"
}

Competitor price check by MPN (match your catalogue with Alza):

{
"mpns": ["MDHH4CZ/A", "WH1000XM5B.CE7"],
"country": "CZ"
}

Slovak prices of a category, cheapest first, only in stock:

{
"startUrls": [{ "url": "https://www.alza.sk/notebooky/18842920.htm" }],
"sortBy": "cheapest",
"onlyInStock": true,
"maxItems": 100
}

Discount hunting: products with a discount code or at least 20 % off:

{
"startUrls": [{ "url": "https://www.alza.cz/notebooky/18842920.htm" }],
"onlyDiscounted": true,
"minDiscountPercent": 20,
"maxItems": 200
}

Unpacked and second-hand goods (bazaar) of a brand (each piece is its own row, also when it shares the Alza code of the new product):

{
"startUrls": [{ "url": "https://www.alza.cz/levne-notebooky/18842920.htm" }],
"brands": ["Lenovo"],
"conditions": ["unpacked", "like_new", "used"],
"includeDetails": false,
"maxItems": 50
}

Reviews and ratings for product research (no names):

{
"startUrls": [{ "url": "https://www.alza.cz/iphone-17-pro-256gb-temne-modra-d13078791.htm" }],
"includeReviews": true,
"maxReviewsPerProduct": 100
}

Store and AlzaBox availability near Brno for a product list:

{
"productCodes": ["NL253a1a", "13078791"],
"pickupCity": "Brno"
}

Daily price check of your own product list from a Google Sheet (one Alza URL per row; products that are no longer sold come as removed):

{
"startUrls": [{ "requestsFromUrl": "https://docs.google.com/spreadsheets/d/<sheet ID>/edit#gid=0" }],
"maxItems": 0,
"onlyNewOrChanged": true,
"includeRemovedProducts": true,
"monitoringKey": "my-products"
}

Daily deal finder: only products at their lowest price in 90 days (schedule it daily):

{
"startUrls": [{ "url": "https://www.alza.cz/notebooky/18842920.htm" }],
"maxItems": 0,
"includeDetails": false,
"priceHistory": true,
"onlyLowestPrice90d": true,
"monitoringKey": "notebooks-deals"
}

Fake-discount watch: discounted products whose crossed-out price is higher than the price seen before the discount:

{
"startUrls": [{ "url": "https://www.alza.cz/televize/18849604.htm" }],
"maxItems": 0,
"includeDetails": false,
"onlyDiscounted": true,
"priceHistory": true,
"onlySuspiciousDiscounts": true,
"monitoringKey": "tv-discounts"
}

Share of shelf of TV brands, top 48 positions (schedule it daily to see positions gained or lost):

{
"startUrls": [{ "url": "https://www.alza.cz/televize/18849604.htm" }],
"maxItems": 48,
"maxItemsPerStartUrl": 48,
"includeDetails": false,
"shelfReport": true,
"shelfTopN": 48
}

Which brands rank first in Alza search (first results page of each term):

{
"searchQueries": ["robotický vysavač", "bezdrátová sluchátka"],
"maxItems": 48,
"maxItemsPerStartUrl": 24,
"includeDetails": false,
"shelfReport": true
}

Fast listing-only sweep of a whole category:

{
"startUrls": [{ "url": "https://www.alza.cz/mobily/18843445.htm" }],
"includeDetails": false,
"maxItems": 0,
"maxPagesPerCategory": 100,
"fastMode": true
}

Website order and brands

Sort by: best-selling, cheapest, most expensive, best rated (for categories). Brands in a category don't charge for other brands' products. You can also paste any page Alza offers in its menus: a brand (…/notebooky/apple/18842920-v1627.htm), a parameter (…/notebooky/amd-ryzen-7/18842920-par65-106755006.htm), a sorted page or a promotion. Filters chosen in the browser after # are not part of the page address, so use the filters of this actor instead.

Filters (you don't pay for filtered-out products)

Price range, only discounted, minimum discount, only with a discount code, only in stock, availability values, condition (new, unpacked, like new, used), minimum rating and number of ratings, brands and excluded brands, words the name must or must not contain, exclude sponsored positions, only with MPN. When a filter needs product data (MPN, brand on search pages), places freed by skipped products are filled with the next products, so Max products is still reached.

Search terms, codes and MPNs

Search terms give the results of Alza's own search (Alza opens the matching category for many terms, e.g. "iphone 17"). Look products up by Alza code, product ID (the number after -d in the URL) or MPN; only exact matches are returned. Country chooses the website for these inputs; URLs are read on their own website.

Fast mode (optional, small extra charge)

Fast mode reads up to about 4× faster and drops back to the normal speed for the rest of the run at the first sign of load. It never changes IP address to get around a limit. It costs $0.01 per 1 000 products saved in fast mode.

All inputs

InputWhat it does
Category, brand, search or product URLsAlza URLs from alza.cz, alza.sk, alza.hu, alza.at or alza.de: a category (e.g. https://www.alza.cz/notebooky/18842920.htm), a category filtered by a brand or parameter (…/notebooky/apple/18842920-v1627.htm, …/notebooky/amd-ryzen-7/18842920-par65-106755006.htm), a sorted or promotion page (…/levne-notebooky/18842920.htm, …/18842920-e40.htm), a later page (…-p3.htm), a search (https://www.alza.cz/search.htm?exps=iphone) or a product (…-d13268819.htm). English versions (…/EN/…) are read in the website's own language. You can also upload a text file, or link a remote text file, CSV or Google Sheet with the URLs.
Search termsThe same results as the search of the website of "Country" (e.g. "iphone 17", "sluchátka sony").
Alza codes or product IDsAlza order codes ("Objednací kód", e.g. NL253a1a) or product IDs (the number after -d in the URL, e.g. 13268819).
MPNs (manufacturer part numbers)Manufacturer part numbers ("Kód výrobce", e.g. MDHH4CZ/A).
Country (for search terms and codes)Website for search terms, codes and MPNs.
Max productsMaximum number of products saved (and charged) in total. 0 = no limit.
Max products per URLMaximum number of products from each start URL or search term (and from all codes and MPNs together). 0 = no limit.
Add product detailsAdds to each product (included in the price): MPN, brand, price without VAT, all parameters, all photos, warranty, stores with stock, fastest delivery, code validity, promotions and the full category path.
Add rating summaryRating distribution (5 to 1 stars), text review count, how many bought it ("1 000+"), recommendation rate and the complaint rate ("reklamovanost").
Add reviewsCustomer reviews (rating, date, text, pros and cons, variant, verified purchase, likes, shop response) without the reviewer's name or photo.
Max reviews per productNewest reviews per product (with "Add reviews").
Add description (small extra charge)The full product description as plain text. $0.50 per 1 000 products with a description from 28 November 2026, free until then.
Pickup places nearAdds the delivery date to this town and the nearest Alza stores, AlzaBoxes and partner pickup points with when the product can be picked up there. Works on every website for its own towns.
Sort byThe website's sorting of a category ("Nejprodávanější", "Nejlevnější", "Nejdražší" and "Dle hodnocení").
BrandsOnly these brands (e.g. Apple, Lenovo).
Exclude brandsNever these brands (checked by the actor on each product; case and diacritics ignored).
Min priceLowest price incl. VAT, in the website's currency.
Max priceHighest price incl. VAT, in the website's currency.
Only in stockOnly products in stock now ("Skladem", in Alza's warehouse or a store; not "u dodavatele").
AvailabilityOnly these availabilities.
ConditionOnly these conditions.
Only discountedOnly products with a crossed-out price, a discount or savings.
Min discount (%)Only products with at least this discount.
Only with a discount codeOnly products offered with a discount code ("Koupit s kódem").
Min ratingOnly products rated at least this (0–5).
Min number of ratingsOnly products with at least this many ratings.
Name must containAny of these words (case and diacritics ignored).
Name must not containNone of these words (case and diacritics ignored).
Exclude sponsoredDrops sponsored positions ("Sponzorováno") at the top of listings.
Only with MPNOnly products with a manufacturer part number (needs product details).
Monitoring: only new or changed productsSaves (and charges) only products that are new or whose price, crossed-out price, price with code or availability changed since the previous run with the same monitoring key.
Monitoring keyName of the saved state of monitoring, of the price history and of the shelf report history.
Monitoring: only price changesOf the changed products, only those whose price changed (new products are still saved).
Monitoring: min price drop (%)Only products whose price fell by at least this many percent since the previous run.
Monitoring: include removed productsAdds rows with changeType "removed" for products that disappeared since the previous run (only after a run that read everything) and "reappeared" when they are back. A product URL, product ID or code of your list that Alza no longer sells is returned as "removed" right away.
Price history & fake-discount check (small extra charge)Adds the price history from your runs with the same monitoring key to each product (see Price history). With or without monitoring. $0.30 per 1 000 saved products from 28 November 2026, free until then.
Price history: only at the lowest price in 90 daysOnly products whose price is the lowest of the last 90 days (needs 30 days of history). Skipped products are free and their product data are not read.
Price history: only suspicious discountsOnly products whose crossed-out price is higher than a price your runs saw in the 30 days before the discount. Skipped products are free.
Shelf report: share of shelf by brand (small extra charge)A shelf report of every category, brand page and search of the run (see Shelf report). $0.02 per listing report from 28 November 2026, free until then.
Shelf report: top N positionsShelf size, default 24 (the first page), up to 240. Set Max products per URL at least to it, so that the whole shelf is read.
Fast mode (small extra charge)Reads Alza up to about 4× faster and drops back to the normal speed at the first sign of load. $0.01 per 1 000 products saved in fast mode.
Max requests per minute (normal speed)All requests together (pages, product data, extras).
Max pages per categoryListing pages (24 products each) read per category or brand URL.
Max pages per searchResult pages (24 products each) read per search term or search URL.
Proxy configurationAlza needs a residential proxy; it is set by default and included in the price.

Monitoring mode explained

With Monitoring: only new or changed products the actor remembers what it saw (per Monitoring key) and saves only products that are new or whose price, crossed-out price, price with code or availability changed. Product details and extras are read only for those, so a daily run of an unchanged category costs almost nothing. Rows carry changeType (new, updated, removed, reappeared), previousPrice, priceChange, priceChangePercent and previousAvailability. Only price changes and Min price drop (%) narrow it further. Include removed products adds a row for each product that disappeared (only after a run that read the whole listing) and marks it reappeared when it is back. A product of your own list (URL, product ID or code) that Alza no longer sells is reported as removed too; the run still succeeds. Unpacked, like-new and used pieces have their own IDs (alza:<code>~<product ID>), so they never mix with the new product in the price history.

Don't run several runs over the same category at the same time: one run reads it faster and politely, and parallel runs with the same monitoring key overwrite each other's state.

Price history and fake-discount check

Shops like to show "-30 %" from a price that held for a day. Alza must show as the crossed-out price its lowest price of the 30 days before the discount (EU Omnibus directive; in Czechia § 12a of the consumer protection act), but you can't see what the price was last month on the page. With Price history on, the actor keeps that memory for you.

How it works

  1. Every run notes the price and the crossed-out price of every product it reads (also unchanged and filtered-out products, and also in monitoring mode, where unchanged products are not saved).
  2. Every run adds what it sees to your own history in your account.
  3. Each saved product gets the fields below, computed from all your previous runs with the same Monitoring key.
FieldWhat it tells
lowestPrice30d, lowestPrice90dLowest price of the last 30 and 90 days (incl. today)
highestPrice90d, averagePrice90dHighest price and the average price weighted by how long each price held
priceVsAverage90dPercentToday's price against the 90-day average (-12.5 = 12.5 % below)
isLowestPrice90dtrue when today's price is the lowest of 90 days (null until 30 days of history)
currentPriceSince, priceHistorySince, priceHistoryDays, priceHistoryChangesSince when the price holds, since when the product is tracked, how many price changes were seen
discountStartedAt, observedLowBeforeDiscountWhen the current crossed-out price appeared, and the lowest price seen in the 30 days before it
crossedOutPriceCheckhigher_than_observed_low (the crossed-out price is higher than a price your runs saw before the discount: suspicious), consistent, lower_than_observed_low, not_enough_history; null without a crossed-out price
priceHistoryThe price changes of the last 365 days: [{"date", "price", "priceBeforeDiscount"}], ready for a chart

Example: a TV cost 19 990 CZK for weeks, went up to 24 990 CZK on 20 October and is "discounted" from 24 990 to 19 990 CZK ("-20 %") since 27 October (a run on 3 November):

{
"name": "Example TV 55\"",
"price": 19990,
"priceBeforeDiscount": 24990,
"discountPercent": 20,
"lowestPrice30d": 19990,
"lowestPrice90d": 19990,
"highestPrice90d": 24990,
"averagePrice90d": 20378.89,
"priceVsAverage90dPercent": -1.9,
"isLowestPrice90d": true,
"currentPriceSince": "2026-10-27T06:00:00Z",
"discountStartedAt": "2026-10-27T06:00:00Z",
"observedLowBeforeDiscount": 19990,
"crossedOutPriceCheck": "higher_than_observed_low",
"priceHistory": [
{ "date": "2026-08-01T06:00:00Z", "price": 19990, "priceBeforeDiscount": null },
{ "date": "2026-10-20T06:00:00Z", "price": 24990, "priceBeforeDiscount": null },
{ "date": "2026-10-27T06:00:00Z", "price": 19990, "priceBeforeDiscount": 24990 }
]
}

Who uses it: deal websites and newsletters (post only real deals: onlyLowestPrice90d), consumer journalists and associations (onlySuspiciousDiscounts), shops and brands watching Alza's pricing (price trends and how long a promotion lasts), buyers waiting for the right moment.

Where the history is stored: in your Apify account (see the FAQ). Nobody else, including us, can read it. It is kept between runs until you delete it; delete it to start over. Different monitoring keys keep separate histories; runs with the same key share one, also when they read different categories.

Tips

  • Schedule it daily (Schedules in Apify Console). The history knows only the prices your runs saw: a price that held for one day between two weekly runs is missed, and the price is assumed unchanged between runs.
  • Listing data are enough ("includeDetails": false): the history needs only the price and the crossed-out price, so tracking a whole category every day is fast and cheap.
  • The 90-day values and the check of the crossed-out price get meaningful after a few weeks of runs; until then isLowestPrice90d is null and the check says not_enough_history (or higher_than_observed_low as soon as a higher crossed-out price is proven by a price your runs saw).
  • higher_than_observed_low means "higher than a price your runs saw", not a legal finding: the price can come from a short promotion, a price for members only, or another variant. Check the priceHistory before you publish it.

Shelf report (share of shelf by brand)

Brand managers, distributors and agencies want to know how visible their brand is on Alza: how many of the first positions of a category or a search it holds, how high, how much of it is paid (sponsored), and whether that got better or worse since yesterday. Turn on Shelf report and every listing of the run (category, brand page, sorted page, search URL or search term) gets one report.

Example: the first 48 positions of alza.cz TVs, listing data only (a run on 9 November 2026):

RankBrandIn top 48On page 1Share of shelfAvg. positionBestSponsoredAvg. price (CZK)DiscountedRating
1Samsung16733.3 %27.87019 523154.79
2TCL11722.9 %20.72214 499114.66
3LG11622.9 %25.36032 399114.84
4HISENSE418.3 %24.28013 86544.88
5Philips326.2 %23.311021 65734.57
6SONY112.1 %1.01124 99015.0
7–8CHiQ, THOMSON1 each02.1 % each25, 330
Total4824100 %3 (6.2 %)20 457474.76

What you get

  • SHELF_REPORT_CSV in the key-value store of the run (Output tab → "Shelf report for Excel"): one row per listing and brand plus a total row per listing (rowType total / brand), the listing's URL, search term, country, sort and category repeated in every row, so it works as it is in Excel, Google Sheets or a pivot table.
  • SHELF_REPORT: the same as JSON, one object per listing with totals and brands.
  • The dataset alza-shelf-<monitoring key> in your account (Storage → Datasets) gets the rows of every run, a history of your shelf for charts and pivot tables (reportedAt tells the run).
FieldWhat it tells
productsInTopN, productsOnFirstPagePositions of the brand among the first N and among the first 24 (sponsored ones included)
shareOfShelfPercentProducts of the brand / positions read × 100
averagePosition, bestPositionAverage and best (lowest) position, 1 = top
sponsoredCount, sponsoredSharePercentSponsored positions ("Sponzorováno") and the share of the brand's positions that are paid
averagePrice, discountedCount, averageRatingAverage price, products with a discount and average rating of the brand's products on the shelf
brandRecognizedfalse for the row of products whose brand is not known (see below)
positionsRead, positionsExpected, complete, noteHow much of the shelf this run read; an incomplete shelf says why
productsInTopNChange, shareOfShelfChange, averagePositionChange, shelfChangeChange since the previous complete report of the same listing (same monitoring key and shelf size): positions gained (+) or lost (−), percentage points, positions moved (negative = up), and entered, gained, lost, unchanged or left (a brand that left the shelf gets a row with 0 products)

Example of the change (a brand row on the next day, shortened; illustrative values):

{ "listing": "Category \"Televize\"", "rowType": "brand", "rank": 2, "brand": "TCL", "productsInTopN": 13, "shareOfShelfPercent": 27.1,
"previousProductsInTopN": 11, "productsInTopNChange": 2, "shareOfShelfChange": 4.2, "averagePositionChange": -3.1, "shelfChange": "gained" }

How it counts

  • Only positions the run actually read count. The run reads as many listing pages as Max products and Max products per URL need, and every position of each page read counts (also those after "Max products", also products that your filters skip). Set Max products per URL at least to the shelf size; a shelf that was not read to the end is marked complete: false with a note, its shares are of the positions read, and it is not used for the next comparison.
  • Filters, monitoring and price history don't change the shelf: it is what a shopper sees on the page. Sort by does (a sorted page is another shelf), and so does Brands (it shows only those brands), so leave it empty for the shelf of a category.
  • Brands without product details are recognised for 96–100 % of the positions in our runs (TVs and two searches on 9 November 2026), ~98 % of 302 saved listing products. With product details on, Alza's own brand is used for the products read. The rest is one row with brand: null and brandRecognized: false.
  • Product URLs, codes and MPNs have no shelf and get no report.

Cheapest way to run it: listing data only ("includeDetails": false) and Max products per URL = shelf size. A daily shelf of 5 categories, top 24, costs 5 × 24 products and 5 listing reports a day.

How much does it cost to scrape Alza?

You pay per saved product. Platform usage and the residential proxy are included, and so are product details and the rating summary. Filtered-out and unchanged products (in monitoring mode) are free.

PlanPrice per 1 000 products+ Fast mode (only products saved in fast mode)
FREE$2.89+$0.01
BRONZE$2.79+$0.01
SILVER$2.49+$0.01
GOLD and higher$1.99+$0.01

Price history (optional): +$0.30 per 1 000 products saved with it, on every plan (the price-history event), from 28 November 2026; until then it is free. Products skipped by its filters are free.

Shelf report (optional): +$0.02 per listing report (one category, brand page or search with its brand breakdown, not per row), on every plan (the shelf-report event), from 28 November 2026; until then it is free. A run keeps that much of your maximum cost per run for the reports of the listings it has read; a report that does not fit is not made (the status message says so). Example: the TV shelf above (48 products, listing data only, 1 report) is $0.14 + $0.02 = $0.16 on the FREE plan.

Description (optional, Add description): +$0.50 per 1 000 products saved with their full description, on every plan (the description event), from 28 November 2026; until then it is free. The full description is long, so it is charged separately; products without a description on Alza are free.

Reviews, pickup places and removed-product rows don't change the price per product. There is also a tiny start fee of $0.00005 per run.

Typical runs:

ScenarioPrice (FREE plan)Typical time (normal / fast mode)
20 products with details (the prefilled input)$0.06~1.5 min / ~25 s
100 products with details$0.29~7 min / ~2 min
1 000 products, listing data only$2.89~1.5 min / ~30 s
1 000 products with details (default)$2.89~70 min / ~18 min
100 products with details, 10 reviews, pickup places and description$0.29 ($0.34 from 28 November 2026)~20 min / ~5 min
100 Alza codes or MPNs$0.29~10 min / ~3 min

The default run Timeout is 2 hours, enough for about 1 700 products with details at the normal speed. For longer runs (thousands of products with details, long code lists), raise the Timeout in the run options or use fast mode. A run that gets close to its timeout stops about 90 seconds before it, saves the products read so far (and the monitoring state) and says so in the status message.

Input example

{
"startUrls": [{ "url": "https://www.alza.cz/notebooky/18842920.htm" }],
"maxItems": 100,
"sortBy": "bestselling",
"onlyInStock": true
}

Output example

{
"id": "alza:NL253a1a",
"source": "alza.cz",
"country": "CZ",
"url": "https://www.alza.cz/macbook-air-13-m5-cz-2026-blankytne-modry-d13268819.htm",
"name": "MacBook Air 13\" M5 CZ 2026 Blankytně modrý",
"brand": "Apple",
"productId": "13268819",
"productCode": "NL253a1a",
"mpn": "MDHH4CZ/A",
"category": "MacBook",
"categoryPath": ["Počítače a notebooky", "Notebooky", "MacBook"],
"price": 31990,
"priceWithoutVat": 26438,
"currency": "CZK",
"priceBeforeDiscount": 34990,
"discountPercent": 8,
"savings": null,
"isDiscounted": true,
"priceBadge": "Zlevněno -8 %",
"couponCode": "ALZADNY5",
"couponPrice": 30391,
"couponDiscountPercent": 5,
"couponValidUntil": "2026-10-26T23:59:59.0000000+01:00",
"tradeInPrice": 27891,
"alzaPlusPrice": null,
"installmentFrom": 699,
"newProductPrice": null,
"availability": "in_stock",
"availabilityText": "Skladem > 5 ks",
"stockQuantity": 5,
"stockQuantityIsMinimum": true,
"condition": "new",
"storesWithStock": 6,
"storeAvailabilityText": "Můžete mít ihned na 6 prodejnách",
"fastestDelivery": "Můžete mít ihned na 6 prodejnách",
"deliveryPromo": null,
"freeDelivery": true,
"isSponsored": false,
"rating": 5.0,
"ratingCount": 3,
"reviewCount": 0,
"ratingDistribution": { "5": 3, "4": 0, "3": 0, "2": 0, "1": 0 },
"purchaseCount": "100+",
"recommendationRate": 100.0,
"complaintRate": 1.67,
"complaintLabel": "nízká reklamovanost",
"imageUrl": "https://image.alza.cz/products/NL253a1a/NL253a1a.jpg",
"imageUrls": ["https://image.alza.cz/Foto/f4/NL/NL253a1a.jpg", "https://image.alza.cz/Foto/FotoAddOrig/NL/NL253a1a-01.jpg"],
"shortDescription": "MacBook - Apple M5 (10jádrový), 13,6\" IPS lesklý 2560 × 1664 px, RAM 16GB, SSD 512GB, …",
"description": null,
"specifications": [{ "group": "Displej", "name": "Úhlopříčka displeje", "value": "13,6 \"" }],
"specs": { "Úhlopříčka displeje": "13,6 \"", "Obnovovací frekvence displeje": "60 Hz" },
"labels": ["Sleva", "Adaptér není v balení", "Výkon adaptéru: 30 - 72 W", "-9%"],
"promotions": ["Cenové bomby", "Slevy, kódy, cashbacky"],
"warranty": "24 měsíců",
"warrantyMonths": 24,
"variantCount": 10,
"reviews": null,
"pickupCity": null,
"deliveryToAddress": null,
"pickupPlaces": null,
"position": 5,
"sourceUrl": "https://www.alza.cz/notebooky/18842920.htm",
"searchQuery": null,
"matchedBy": null,
"detailScraped": true,
"scrapedAt": "2026-10-14T10:00:00Z"
}

Limitations

  • EAN: Alza doesn't publish EAN codes and its search doesn't find products by EAN. Match products with other shops by MPN (with product details, on by default).
  • Price before discount is the crossed-out price Alza shows; by law it is its lowest price of the 30 days before the discount. discountPercent is the percent the price box shows (Alza rounds down: 34 990 → 31 990 is "-8 %").
  • Variants: the tile shows only the number of variants (variantCount); each variant is its own product with its own code and URL (variants that share a page get …?dq=<product ID>, which opens exactly that variant), so list them with the category or brand page.
  • Memory: the default 256 MB is enough for thousands of products; if a run gets close to its memory limit, it stops, saves what it has read and says so in the status message.
  • Sorting works for categories. Searches and categories filtered by a brand keep the website's order; "newest first" is not available.
  • Website filters in the browser (#… after the URL, e.g. a price range or a store) are not part of the page address; use this actor's filters, brand pages, parameter pages or Sort by instead.
  • Brand without details is recognised for 96–100 % of positions; the rest are grouped as brand: null. With details (default) it is Alza's own brand.
  • Pickup places need a town from the list; they work on every website for its own towns (tested on alza.cz, .sk, .hu and .de; on alza.de the points are mostly DHL partner points). Stores with stock (storesWithStock) come with the product details on every website.
  • English URLs (alza.cz/EN/…) are read in the website's own language, so prices, availability and names are as on the Czech (Slovak, …) page.
  • Reviews never include the reviewer's name or photo; review texts may still contain what reviewers wrote about themselves, so use them for analysis, not republishing.
  • Price history starts with your first run with it (there is no history from before) and knows only the prices your runs saw; see Price history. Removed-product rows (monitoring) have no price history fields.
  • Shelf report counts the positions of the listing pages the run read (up to 240 per listing) as Alza showed them to the run (sponsored positions can differ between visitors); see Shelf report. Product URLs and codes have no shelf.
  • Large listings: Max pages per category defaults to 50 pages (1 200 products), up to 500; searches up to 100 pages.
  • A page the website rejects is retried once a little later, never from another IP address; if rejections continue, the run stops with what it has saved and says so. When only optional data (rating summary, reviews, pickup places, description) are rejected, that data is turned off for the rest of the run and the run goes on; the status message says which. Products whose data couldn't be read are returned with the listing data (detailScraped: false).

For AI agents and API users

  • Minimal input: {"startUrls": [{"url": "https://www.alza.cz/notebooky/18842920.htm"}], "maxItems": 20}, or {"searchQueries": ["iphone 17"], "maxItems": 10}, or {"productCodes": ["NL253a1a"]}, or {"mpns": ["MDHH4CZ/A"]}.
  • One row = one product = one charge (+ the fast-mode event when fast mode is on, + price history or description when you turn them on). Details, rating summary, reviews and pickup places don't change the price per product.
  • maxItems counts saved products, maxItemsPerStartUrl limits each URL, search term or the code list.
  • Shelf report ("shelfReport": true): GET https://api.apify.com/v2/key-value-stores/<defaultKeyValueStoreId>/records/SHELF_REPORT (JSON) or …/records/SHELF_REPORT_CSV; the product rows don't change.
  • Prices are incl. VAT in the website's currency (currency: CZK, EUR, HUF). availability is one of in_stock, in_store_only, at_supplier, in_transit, on_order, expected, preorder, unavailable, out_of_stock, members_only (only for AlzaPlus+ members), unknown. condition is new, unpacked, like_new or used. IDs are alza:<code> on alza.cz and alza-sk:<code> etc. on the other websites; unpacked, like-new and used pieces share the code of the new product and get alza:<code>~<product ID>.
  • specs is the parameter list as one object ({"Úhlopříčka displeje": "13,6 \"", …}), handy for CSV and Excel; specifications keeps the groups.
  • A bad value in a list (an invalid code, an unsupported URL, an unknown option) is skipped with a warning in the status message (input: …) and the run goes on; the run fails only when nothing of the input can be read.
  • Monitoring state is kept per monitoringKey between runs of the same user. A removed row has the last known name, URL, IDs, brand, category, price, availability, condition and image; the other fields are empty (isDiscounted is null, and condition too for products remembered before 2026-11-05 whose URL does not tell).

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("tsutseisoftware/alza-scraper").call(run_input={
"startUrls": [{"url": "https://www.alza.cz/notebooky/18842920.htm"}],
"sortBy": "cheapest",
"maxItems": 100,
})
for product in client.dataset(run.default_dataset_id).iterate_items():
print(product["name"], product["price"], product["couponPrice"], product["availability"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('tsutseisoftware/alza-scraper').call({
searchQueries: ['iphone 17'], maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((p) => `${p.name}: ${p.price} ${p.currency}`));

cURL

curl -X POST "https://api.apify.com/v2/acts/tsutseisoftware~alza-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"productCodes": ["NL253a1a"], "mpns": ["MDHH4CZ/A"], "includeReviews": true}'

You can also connect the actor to Make, Zapier, n8n, Google Sheets, Slack or webhooks and schedule it in Apify Console.

Troubleshooting

Status messageWhat to do
Skipping unsupported URLUse an Alza category, brand, parameter, promotion, search or product URL (cart, account and article pages have no product list).
Ignored URL parts … (log)Filters after # are applied by your browser; use this actor's filters instead.
brands not found: …The category has no products of that brand; check the spelling as Alza shows it.
the chosen order is not available …Searches and brand pages have no sorted pages; the website's order was used.
no products: …The listing or search is empty.
not found: …No product with exactly this code, product ID or MPN on the chosen website.
… could not be loadedThe page or product doesn't exist (anymore); open the URL in your browser. The other inputs are read; the run fails only when nothing could be read.
not on Alza (any more): …Monitoring: Alza no longer has this product of your list; with include removed products it comes as a removed row.
input: not valid, skipped: … (or other input: notes)That part of the input was skipped or adjusted (invalid code, unsupported URL, unknown option, details turned on for reviews/description/pickup places); the rest was read.
the URL list … could not be downloadedThe linked file or Google Sheet isn't public; share it with "Anyone with the link" or upload the file.
stopped before the run timeout, raise Timeout or use fast modeThe run saved what it read before its timeout; raise Timeout in the run options or turn on fast mode.
stopped at the page limit …Raise Max pages per category or Max pages per search.
rating summary turned off (…) (or reviews, pickup places, descriptions)Alza rejected that optional data; the products are saved without it. Run again later.
fast mode: N products, then the normal speed because …Alza asked to slow down; the rest of the run used the normal speed (no fast-mode charge).
removed products were not checked because …The run didn't read everything (e.g. Max products reached); removed products are checked in a complete run.
Alza is rejecting requestsUse the default proxy setting (Apify Proxy, residential) and try again later.
… listing pages could not be read, so the results may be incompleteAlza didn't answer some pages; run it again later for complete results.
Saved 0 products (new or changed since last run)Nothing changed since the previous monitoring run; that's expected.

Switching from another Alza scraper

Coming from a browser-based (Playwright) Alza scraper? This actor reads Alza without a browser, at 256 MB, so runs are faster and cheaper, and you get monitoring, price history, lookups by code or MPN and the shelf report on top.

If you used appealing_jingle/alza-scraper, your input works here as it is (startUrls, commodityStatus and proxyConfiguration are understood), and you also get monitoring, codes, MPNs and filters. Mapping:

Their inputHere
startUrls (category or product URLs of alza.cz/.sk/.hu/.at/.de)startUrls, the same format (also brand, search and /EN/ URLs, uploaded lists and Google Sheets)
commodityStatus: new, opened, usedconditions: new, unpacked, like_new, used (opened = unpacked, used = used + like_new)
maxRequestsPerCrawlmaxItems (products saved and charged) and maxPagesPerCategory (listing pages per category)
proxyConfiguration (residential SK)proxyConfiguration; the default residential proxy is included in the price
Their output fieldHere
id, codeproductId, productCode (id is alza:<code>)
priceValue, priceCurrencyprice, currency (CZK, EUR, HUF)
discount, promodiscountPercent, priceBeforeDiscount, savings, priceBadge, promotions
coupon.couponCode, coupon.couponPriceValuecouponCode, couponPrice
rating, numberOfRatings, numberOfReviewsrating, ratingCount, reviewCount
ratings (stars and counts)ratingDistribution ({"5": 101, "4": 27, …})
sold, recommendationPercentile, claimRatepurchaseCount, recommendationRate, complaintRate (numbers)
parametersspecifications (with groups) and specs (name → value)
availability (text)availability (one of 11 values) and availabilityText, stockQuantity
description, imageUrlshortDescription (and the full description with Add description), imageUrl, imageUrls

More Czech & Slovak e-shop scrapers

Compare prices across Czech and Slovak shops with the same output format (EAN for matching, monitoring mode):

Custom scrapers and changes

Need a custom version of this actor, another field or filter, or a scraper for a different website? Write to info@tsutsei-software.com with the website, the data you need and how often, and we will reply with a fixed quote. We work mainly with clients from the Czech Republic and from outside the EU.

More about us and all our actors: tsutsei-software.com.

FAQ

The actor collects publicly available product data (prices, availability, parameters, ratings) that anyone sees on Alza's websites. It reads only publicly available data, without logging in, at most 30 requests per minute by default (120 in fast mode), slows down when the website asks, never changes IP address to get around a limit and never solves captchas or other challenges. It returns no personal data: reviews come without names or photos. Alza's terms of business (checked 2026-10-14) don't prohibit automated access. How you use the data is your responsibility: use it for price monitoring and analysis, and don't republish the catalogue, descriptions, photos or reviews. If unsure, consult a lawyer. Objections and data protection requests: the Issues tab of this actor.

Do I need a proxy?

Alza needs a residential proxy. It is set by default and its cost is included in the price; you don't pay for it separately. Keep the default setting.

Which websites are supported?

alza.cz (CZK), alza.sk (EUR), alza.hu (HUF), alza.at (EUR) and alza.de (EUR). Paste URLs from any of them; Country chooses the website for search terms, codes and MPNs.

Why are product details on by default?

Because they are included in the price and add what most users need: MPN, brand, price without VAT, parameters, photos, stores with stock and the rating summary. Turn Add product details off for the fastest listing-only sweeps.

What does fast mode cost and when should I use it?

$0.01 per 1 000 products on top of the normal price, only for products saved at the fast speed. Use it for large categories, product details and long code lists, when the time matters.

Can I get the price history of a product from before my first run?

No. The history is built by your own runs (we don't keep a shared database of prices). Start a daily schedule now; after 30 days you get the 30-day values and the fake-discount check, after 90 days the full 90-day values.

Where is my price history stored and who can see it?

In your own Apify account, in the key-value store alza-history-<monitoring key>. Only you (and whoever you share your account or the store with) can see it. Delete the store to start over.

Does "higher_than_observed_low" mean Alza broke the law?

Not by itself. It means the crossed-out price is higher than a price your runs saw in the 30 days before the discount. That is what the EU rule is about, but a price for members, a short flash sale or a different variant can explain it. Use priceHistory to check it.

How do I get a share-of-shelf report of my brand on Alza?

Turn on Shelf report, add your categories or search terms, set Max products per URL to the shelf size (24 = the first page) and schedule the run daily. Open SHELF_REPORT_CSV in Excel (one row per brand, filter your brand), or use the dataset alza-shelf-<monitoring key> for the history of all runs. See Shelf report.

Why does a brand have "brandRecognized": false?

Without product details the brand is recognised for 96–100 % of positions; the rest (e.g. "Xbox: Controller - dárkový set") are grouped in one row with brand: null. Turn product details on for those listings, or check brandRecognizedSharePercent of the listing.

Why is there no EAN?

Alza doesn't publish EANs. Use the MPN (manufacturer part number) to match products with other shops; our other Czech shop scrapers return MPNs and EANs in the same format.

Can I use it through the API?

Yes. See the Python, JavaScript and cURL examples above, or the API tab.

Something doesn't work

Open an issue in the Issues tab and include the input you used.

Unofficial, not affiliated with or endorsed by Alza.cz a.s., the operator of Alza. This tool is also known as an Alza API, Alza.cz scraper, Alza price tracker, Alza price history, Alza fake discount checker, Alza.sk scraper or "hlídač cen Alza".