# Alza.cz Product Scraper (`tomgab/alza-product-scraper`) Actor

Fast and lightweight scraper for Alza.cz products, prices, stock availability, ratings, and detailed specifications.

- **URL**: https://apify.com/tomgab/alza-product-scraper.md
- **Developed by:** [Tomáš G](https://apify.com/tomgab) (community)
- **Stats:** 2 total users, 1 monthly users, 81.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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

### What can Alza.cz Product Scraper do?

Alza.cz Product Scraper searches **Alza.cz products by keyword** and saves product information to an Apify dataset. Enter a product name or search phrase, choose a result limit, and run the Actor to collect prices, availability, ratings, product links, and other catalog data.

| What you can collect                                                                         | Features and ways to use the data                                                 |
| -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Product names, IDs, codes, and Alza.cz URLs                                                  | Search by keyword or product name                                                 |
| Current listed prices in CZK, including numeric prices and prices without VAT when available | Limit the number of saved products with `maxItems`                                |
| Availability text and an `inStock` flag                                                      | Optionally request product descriptions, gallery images, and technical parameters |
| Ratings, rating counts, images, short specifications, brands, and categories when available  | View and export the dataset through Apify Console or the Apify API                |

Use the results to compare listed products, build a catalog, monitor product information with scheduled runs, or feed product data into another workflow. Each run captures a snapshot of the information returned by Alza.cz at that time.

### What product data can I extract from Alza.cz?

Every saved item represents one product returned by an Alza.cz search. The core fields are `id`, `name`, `url`, `currency`, and `inStock`. Other fields appear when Alza.cz supplies them:

- **Product identity:** `code`, `brand`, and `category`.
- **Prices:** `price` as displayed by Alza.cz, numeric `priceNoCurrency`, and formatted `priceWithoutVat`.
- **Availability:** `avail` with the source's availability text, plus the Actor's derived `inStock` value.
- **Customer feedback:** `rating` and `ratingCount`.
- **Product content:** main image URL `img` and short specification text `spec`.
- **Optional details:** `description`, gallery `images`, and grouped `parameters` when `includeDetails` is enabled and the product detail response contains them.

Prices and stock can change after a run. Some products have no rating or optional details, and a failed detail request does not prevent the basic product from being saved.

### How do I use Alza.cz Product Scraper?

1. Open the Actor in Apify Console.
2. Enter a product name or keyword in **Search Term**, such as `kávovar`.
3. Set **Max Items** to the maximum number of products you want in the dataset.
4. **Proxy configuration** defaults to Apify Proxy's **Unblocker** group. Direct requests and the tested datacenter and residential proxies received HTTP 403 from Alza.cz; Unblocker returned products. You can change or disable the proxy, but those alternatives may fail. Proxy usage is included in the Actor's pay-per-event price.
5. Turn on **Include Full Product Details** if you need descriptions, gallery images, or technical parameters. This makes an additional request for each product and can increase run time.
6. Click **Save & Start**. When the run finishes, open **Storage → Dataset** to inspect or download the results.

You can also run the Actor through the Apify API or schedule repeated runs in Apify Console. The dataset can be exported in formats supported by Apify, including JSON and CSV.

### Input

This Actor has one input mode: **search by keyword**. It does not accept a list of product URLs or category URLs.

| Field                | Description                                                                                                                                                              |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `searchTerm`         | Required, nonempty keyword or product name. The input form suggests `iphone` as an example.                                                                              |
| `maxItems`           | Maximum number of products to save. Defaults to `50`.                                                                                                                    |
| `includeDetails`     | Fetch additional product details when available. Defaults to `false`.                                                                                                    |
| `proxyConfiguration` | Defaults to Apify Proxy's `UNBLOCKER` group. You can override it with another supported proxy configuration. Proxy usage is included in the Actor's pay-per-event price. |

Example input:

```json
{
    "searchTerm": "kávovar",
    "maxItems": 20,
    "includeDetails": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["UNBLOCKER"]
    }
}
```

### Output

Results are saved as one product per row in the default dataset. This record came from a successful Apify platform run on October 10, 2026. Prices, availability, and other values can change:

```json
{
    "id": 12457397,
    "code": "SIEAK86",
    "name": "SIEMENS TP511R01 EQ500 classic",
    "url": "https://www.alza.cz/siemens-tp511r01-eq500-classic-d12457397.htm",
    "price": "19 998,-",
    "priceNoCurrency": 19998,
    "priceWithoutVat": "16 527,-",
    "currency": "CZK",
    "avail": "Skladem > 5 ks",
    "inStock": true,
    "rating": 4.9,
    "ratingCount": 252,
    "img": "https://image.alza.cz/products/SIEAK86/SIEAK86.jpg?width=190&height=190",
    "spec": "Automatický kávovar - příkon 1500 W,  tlak 15 bar,  objem nádržky na vodu 1,9 l,  automatické vypnutí,  možnost přípravy dvou šálků zároveň,  s mlýnkem,  mléčný systém,  výškově nastavitelná výpusť,  s dotykovým ovládacím panelem s ikonami,  nastavení teploty nápoje,  intenzity/množství kávy,  velikosti nápoje,  rozměry 37,3 × 26,5 × 44,8 cm (V×Š×H),  hmotnost 8,3 kg",
    "brand": "SIEMENS",
    "category": "Domácí elektro a potřeby > Kávovary a presovače > Automatické kávovary"
}
```

With `includeDetails: true`, a row may also contain `description`, an `images` array, and a `parameters` array. Each parameter has a `group`, `name`, and `value`. These fields are omitted when Alza.cz does not return the corresponding details.

### How much does it cost to scrape Alza.cz?

The Actor charges per dataset result. Current rates are $3.50 per 1,000 results on Free and Starter, $3.00 on Scale, and $2.50 on Business. When `includeDetails` is enabled, each successfully retrieved product detail adds $2.50 per 1,000 details on every tier. A $0.00005 run start fee also applies. Apify platform usage, including Unblocker requests, is included in those event prices. Larger batches spread the run start and search request costs over more results. You can set a maximum run charge in Apify Console.

### Frequently asked questions

#### Can I search several keywords in one run?

The Actor accepts one `searchTerm` per run. Run it again for another keyword or create separate scheduled tasks.

#### Can I scrape a specific product URL?

No. This Actor starts from Alza.cz search results. It does not take product URLs as input.

#### Why are some fields missing from a result?

The Actor saves optional fields only when Alza.cz returns them. Full descriptions, gallery images, and parameters also require `includeDetails: true` and a successful product detail response.

#### Does `maxItems` guarantee that many results?

No. It is an upper limit. A search can return fewer products, requests can fail or return no usable products, and a run stops when its maximum charge is reached.

#### Why might prices or availability differ from the website later?

The dataset is a snapshot from the run. Product listings, prices, and stock can change. Open the product's `url` for the current listing before making a purchase decision.

#### How do I get help if a run fails?

Open the run log in Apify Console and share the run ID through the Actor's **Issues** tab. Include the search term and whether full details were enabled so the problem can be reproduced.

# Actor input Schema

## `searchTerm` (type: `string`):

Keyword or product name to search on Alza.cz (e.g. 'iphone', 'macbook', 'kavovar').

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

Maximum number of products to scrape.

## `includeDetails` (type: `boolean`):

Fetch full product specifications, descriptions, and gallery images from Alza's product detail API. Each successfully retrieved product detail adds $2.50 per 1,000 details to the result price.

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

Uses Apify Unblocker by default because direct, datacenter, and residential requests returned HTTP 403 in platform tests. Its platform usage is included in the Actor's pay-per-event price. You can choose another proxy or disable it.

## Actor input object example

```json
{
  "searchTerm": "iphone",
  "maxItems": 20,
  "includeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "searchTerm": "iphone",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("tomgab/alza-product-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 = {
    "searchTerm": "iphone",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("tomgab/alza-product-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 '{
  "searchTerm": "iphone",
  "maxItems": 20
}' |
apify call tomgab/alza-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tomgab/alza-product-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/BCUTlDVkubatiHNzN/builds/vB3zP6R0d2FdvszPQ/openapi.json
