Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Alza API page →
E-commerce & Marketplaces

Alza API & Scraper

The Alza API returns Central Europe's largest electronics retailer as clean JSON, in four actions - search, category, product/detail and product/reviews - across five national storefronts on one platform: Czechia (CZK), Slovakia (EUR), Hungary (HUF), Austria (EUR) and Germany (EUR).

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

A country parameter picks the storefront and the currency follows it. search and category return 24 products per page with an exact result total, the price a shopper pays now, the struck-through price and the discount, the monthly financing figure kept apart from the price, the stock wording the shop itself prints, the customer rating on a 5-star scale with the number of ratings, the EU energy class where the product has one, and how many colour or capacity variants exist. Both accept the orderings Alza itself offers - cheapest, most expensive, best rated, best selling, newest - and narrow by brand, price range, in stock, on sale, newly added or well rated; each filter is applied by the shop and the response reports the exact resulting total, so you can see it bite. product/detail adds the price both including and excluding VAT, the manufacturer part number, the complete image gallery, the full technical specification grouped exactly as the shop groups it, the description, the colour and capacity variants with their price difference and stock, the breadcrumb and a delivery block. product/reviews returns the shop's own customer reviews with the reviewer's public nickname, what they liked and disliked as separate lists, the date and whether Alza verified the purchase. Verified on 2026-09-23: 58 of 58 live checks behaved as expected, and on 16 products across 7 categories and 4 storefronts the price, the price without VAT, the currency, the part number, the rating and both rating counts matched the shop's own product page on 16 of 16 - checked three ways, including against a second endpoint. No Alza account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

Which storefront, which currency — and why you cannot reuse an id across them

One platform, one parameter. Measured on 2026-09-23: every storefront below returned a live search and at least one full product record in the same run. The catalogue, the currency and the price are all per storefront - the same product is not the same price in two countries, even two euro ones.

countrystorefrontcurrencymeasured live
czalza.czCZKsearch + category + product/detail + reviews
skalza.skEURsearch + category + product/detail + reviews
hualza.huHUFsearch + category + product/detail
atalza.atEURsearch + product/detail
dealza.deEURsearch + product/detail

Alza closed its UK shop: alza.co.uk has not sold anything since 27 May 2022 and publishes a suspension notice instead of a catalogue, so country=uk is rejected with that reason rather than returning an empty result. Product ids belong to a catalogue, not to the group: of five Czech iPhone ids checked, all five existed on Slovakia, two on Austria and Germany, and none on Hungary, which lists the same phone under its own id. Ask for an id a storefront does not carry and you get NOT_FOUND, never a different product.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/alza/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone",
    "country": "cz"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "alza",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 644.7,
    "record_count": 24,
    "bytes": 327467,
    "cache_hit": false,
    "charged_credits": 2,
    "version": "0.1.0"
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": "13078788",
        "product_code": "RI055b3",
        "title": "iPhone 17 Pro 256GB stříbrná",
        "url": "https://www.alza.cz/iphone-17-pro-256gb-stribrna-d13078788.htm",
        "image": "https://image.alza.cz/products/RI055b3/RI055b3.jpg?width=230&height=230",
        "currency": "CZK",
        "price": 29990,
        "was_price": null,
        "discount_percent": null,
        "discount_percent_site": null,
        "discount_label": null,
        "is_discounted": false,
        "monthly_instalment": 690,
        "rating": 4.9,
        "rating_count": 345,
        "rating_scale": 5,
        "availability_text": "Skladem > 5 ks",
        "availability_code": "avl0",
        "energy_class": "A",
        "variant_count": 9,
        "summary": "Mobilní telefon - 6,3\" AMOLED 2622 × 1206 (120Hz), úložiště: 256 GB, RAM: 12 GB, fotoaparát: 48Mpx (f/1,78) hlavní + 48Mpx širokoúhlý + 48Mpx teleobjektiv + 48Mpx makro + 18Mpx přední, CPU: Apple A19 Pro, NFC, USB-C, 5G, dual SIM, voděodolný dle IP68, rychlé nabíjení 36W, baterie 3988 mAh, model 2025, iOS",
        "badges": [
          "EnergyClass2021",
          "NoChargerPresence",
          "TopPosition"
        ],
        "open_box": false
      },
      {
        "position": 2,
        "product_id": "13078791",
        "product_code": "RI055b1",
        "title": "iPhone 17 Pro 256GB temně modrá",
        "url": "https://www.alza.cz/iphone-17-pro-256gb-temne-modra-d13078791.htm",
        "image": "https://image.alza.cz/products/RI055b1/RI055b1.jpg?width=230&height=230",
        "currency": "CZK",
        "price": 29990,
        "was_price": null,
        "discount_percent": null,
        "discount_percent_site": null,
        "discount_label": null,
        "is_discounted": false,
        "monthly_instalment": 690,
        "rating": 4.9,
        "rating_count": 345,
        "rating_scale": 5,
        "availability_text": "Skladem > 5 ks",
        "availability_code": "avl0",
        "energy_class": "A",
        "variant_count": 9,
        "summary": "Mobilní telefon - 6,3\" AMOLED 2622 × 1206 (120Hz), úložiště: 256 GB, RAM: 12 GB, fotoaparát: 48Mpx (f/1,78) hlavní + 48Mpx širokoúhlý + 48Mpx teleobjektiv + 48Mpx makro + 18Mpx přední, CPU: Apple A19 Pro, NFC, USB-C, 5G, dual SIM, voděodolný dle IP68, rychlé nabíjení 36W, baterie 3988 mAh, model 2025, iOS",
        "badges": [
          "EnergyClass2021",
          "NoChargerPresence",
          "TopPosition"
        ],
        "open_box": false
      },
      {
        "position": 3,
        "product_id": "13078787",
        "product_code": "RI055b2",
        "title": "iPhone 17 Pro 256GB kosmicky oranžová",
        "url": "https://www.alza.cz/iphone-17-pro-256gb-kosmicky-oranzova-d13078787.htm",
        "image": "https://image.alza.cz/products/RI055b2/RI055b2.jpg?width=230&height=230",
        "currency": "CZK",
        "price": 29990,
        "was_price": null,
        "discount_percent": null,
        "discount_percent_site": null,
        "discount_label": null,
        "is_discounted": false,
        "monthly_instalment": 690,
        "rating": 4.9,
        "rating_count": 345,
        "rating_scale": 5,
        "availability_text": "Skladem > 5 ks",
        "availability_code": "avl0",
        "energy_class": "A",
        "variant_count": 9,
        "summary": "Mobilní telefon - 6,3\" AMOLED 2622 × 1206 (120Hz), úložiště: 256 GB, RAM: 12 GB, fotoaparát: 48Mpx (f/1,78) hlavní + 48Mpx širokoúhlý + 48Mpx teleobjektiv + 48Mpx makro + 18Mpx přední, CPU: Apple A19 Pro, NFC, USB-C, 5G, dual SIM, voděodolný dle IP68, rychlé nabíjení 36W, baterie 3988 mAh, model 2025, iOS",
        "badges": [
          "EnergyClass2021",
          "NoChargerPresence",
          "TopPosition"
        ],
        "open_box": false
      }
    ],
    "count": 24,
    "total_results": 127,
    "page": 1,
    "page_count": 6,
    "per_page": 24,
    "search_mode": "resolved",
    "resolved_url": "https://www.alza.cz/iphone/18851638.htm",
    "category_id": 18851638,
    "producer_id": null,
    "brands": [
      {
        "id": 1627,
        "name": "Apple",
        "product_count": 122
      },
      {
        "id": 45144,
        "name": "[redacted-name]",
        "product_count": 6
      }
    ],
    "country": "cz",
    "currency": "CZK",
    "filters_applied": null,
    "filters_supported": true,
    "query": "iphone"
  }
}
Actions

What the Alza API does

ActionDescriptionConcrete use caseKey params
searchSearch one national Alza storefront by keyword and get 24 products per page with the price a shopper pays now (VAT included), the struck-through price and the discount, the financing offer, stock wording, customer rating on a 5-star scale, energy class and the number of colour/capacity variants. Sort by price, rating, bestseller or newest, and narrow by brand, price range, in-stock, on-sale, newly-added or well-rated. Every filter is applied by the storefront's own listing service and the response reports the exact resulting total.Pricing teams call search to search one national Alza storefront by keyword and get 24 products per page with the price a….query, country, page, sort, brand, ...
categoryList the products of one Alza category page — from the site navigation, a product breadcrumb or a `search` response — 24 per page, with the same product fields as search and the same sorting and filters. Producer-filtered category URLs keep their brand restriction.Marketplace operators call category to list the products of one Alza category page.category, country, page, sort, brand, ...
product/detailThe full Alza product record by id or URL: title, brand, manufacturer part number (and the EAN when the storefront's part number really is one), the price both including and excluding VAT, the struck-through price and discount, financing, stock wording and the schema.org availability, condition, the complete image gallery, the complete technical specification grouped exactly as the site groups it, the description, colour/capacity variants with their price difference and stock, the energy class, the breadcrumb, and the rating with both counts Alza publishes.Catalog enrichment teams call product/detail to get the full Alza product record by id or URL.product_id, country, max_rotations
product/reviewsCustomer reviews for one Alza product, newest first, straight from the storefront's own review feed: star rating, the reviewer's public nickname as the site prints it, what they liked and disliked as separate lists, the free text, the date, whether Alza verified the purchase, which variant was reviewed, any photos, and the shop's reply where there is one.Retail analysts call product/reviews to get customer reviews for one Alza product, newest first, straight from the storefront's own revie….product_id, country, limit, offset, max_rotations
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/alza/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone","country":"cz"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.alza.search with {"query":"iphone","country":"cz"}.
Use cases

Who uses this API and why

  • Track Czech, Slovak, Hungarian, Austrian and German prices for the same product line and see where a market really is cheaper - the same item was 325.90 EUR in Austria and 323.90 EUR in Germany on the same day.
  • Feed a B2B pricing or procurement sheet that needs the figure without VAT, which Alza publishes on every product.
  • Watch discounts: pull the on-sale filter on a category each morning and keep price, was_price and the shop's own discount badge.
  • Build or enrich a product catalogue with the full specification table grouped as the retailer groups it, the image gallery, the part number and the EU energy class.
  • Mine customer reviews for a product line, with the separate liked and disliked lists, the verified-purchase flag and the variant that was reviewed.
FAQ

Questions developers ask before integrating

Does Alza publish prices with and without VAT?

Yes, and the API returns both on every product. price is what a logged-out consumer pays, VAT included, and price_ex_vat is the shop's own figure without VAT. Both were checked against the shop's own product page on 16 of 16 sampled products across 7 categories and 4 storefronts.

How do I find products that are actually on discount right now?

Set discounted_only on search or category. It is Alza's own sale filter and it really narrows the set: on the Czech iPhone category it cut 123 products to 4, and on a graphics-card category 214 to 13, in the same run. Discounted rows carry was_price alongside price, plus discount_percent.

Whose discount percentage do I get, yours or Alza's?

Both, separately. discount_percent is computed from the two prices, and discount_percent_site plus discount_label carry Alza's own badge. They can disagree: one product priced 41,990 down from 43,990 is 4.55 percent, and the shop's badge prints -4 percent. Neither figure overwrites the other.

Do I get an EAN?

Only when the shop really publishes one. Alza publishes a manufacturer part number, which the API always returns as mpn. On some categories that value is itself a valid EAN-13 and is then also returned as ean; on others it is a vendor part code. Measured across 7 categories: toys 2 of 2 and drugstore 2 of 2 had an EAN, while phones 0 of 4, laptops 0 of 2, appliances 0 of 2 and storage 0 of 2 did not. The API never derives or guesses one.

Can I get a delivery date?

No, and the API says so rather than inventing one. Alza does not publish a delivery date to an anonymous visitor - it asks for a postcode first. What you do get is the stock wording the shop prints, such as "Skladem > 5 ks", where else it is held, the shop's delivery promise, and exact_date_requires_address set to true.

Do the sort and filter options actually change the results?

Yes, and every response reports the exact total so you can verify it. Measured on one category in one run: unfiltered 214 products, price from 20,000 gives 100, price up to 15,000 gives 86, both bounds together give 31, in stock only 193, on sale only 13, newly added 1, well rated 144, and brand GIGABYTE 62. Sorting by cheapest and by most expensive both returned strictly monotonic prices.

Is there anything search cannot do?

Yes. Alza answers most keywords with one of its own category or brand pages - 11 of 16 sampled keywords - and there you get the exact category total plus every sort and filter. The other keywords are answered by its free-text search page, where Alza itself offers no sorting or filtering, so asking for one there is rejected with an explanation instead of being silently ignored. The response field filters_supported tells you which mode you got, and free-text totals were observed to plateau near 300 on broad queries.

What do the different review numbers mean?

Alza publishes three and the API keeps them apart. rating_count is how many people gave a star rating, review_count is how many wrote a text review, and total_reviews on product/reviews is what the review feed will actually page through. On one phone those were 345, 58 and 80. A product nobody has rated returns rating null with rating_count 0, never a zero-star rating.

What is the Alza API?

Alza API is a ReefAPI endpoint group for central europe's largest electronics retailer in 5 countries: prices with and without vat, discounts, stock, specs and reviews. It returns live JSON through POST requests under /alza/v1.

Is the Alza API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Alza calls use the same shared credit balance as every other ReefAPI engine.

Do I need an Alza login or account?

No login to Alza is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Alza data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Alza API use?

Alza actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Alza from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call alza actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / alza

Alza

Central Europe's largest electronics retailer in 5 countries: prices with and without VAT, discounts, stock, specs and reviews.

base /alza/v14 endpoints
post/alza/v1/category2 credits

List the products of one Alza category page — from the site navigation, a product breadcrumb or a `search` response — 24 per page, with the same product fields as search and the same sorting and filters. Producer-filtered category URLs keep their brand restriction.

ParameterAllowed / rangeDescription
categoryrequiredAn Alza category page URL (…/<name>/<categoryId>.htm) or the bare numeric category id. A URL's host sets the country. Category URLs appear in the site navigation, in every product breadcrumb and in `resolved_url` from `search`. A producer-filtered URL (…/<categoryId>-v<producerId>.htm) keeps its brand restriction.
country = czoptionalcz · sk · hu · at · deWhich national Alza storefront to read. Currency, language, catalogue AND price follow the country — the same product really is priced differently on alza.at and alza.de, so pick the market you mean. alza.co.uk is not available: Alza stopped selling there on 27/5/2022 and publishes no catalogue.
page = 1optional1–200Result page, 1-based. 24 products per page. `page_count` in the response is the real last page for this result set.
sort = relevanceoptionalrelevance · bestseller · price_asc · price_desc · rating · newestResult order. Only orderings the storefront itself offers, passed to its own listing service.
brandoptionalKeep only one brand, spelled as the storefront spells it (matched case-insensitively against the brand facet the listing returns). The response always lists the available brands with their exact product counts in `brands[]`, so an unknown name is rejected with the list.
min_priceoptional0–Lowest price to include, in the storefront's currency, VAT included (CZK for cz, HUF for hu, EUR for sk/at/de).
max_priceoptional0–Highest price to include, in the storefront's currency, VAT included.
in_stock_only = falseoptionalKeep only products the storefront can deliver now.
discounted_only = falseoptionalKeep only products currently on a reduced price — Alza's own 'sale and good prices' filter (price bombs, super prices, markdowns).
new_arrivals_only = falseoptionalKeep only recently added products (the storefront's own 'news' filter).
well_rated_only = falseoptionalKeep only products above the storefront's own customer-rating threshold. Alza exposes this as a single switch, not a star number, so this engine does not pretend to take one.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5, default 3).
Try in playground →
post/alza/v1/product/detail2 credits

The full Alza product record by id or URL: title, brand, manufacturer part number (and the EAN when the storefront's part number really is one), the price both including and excluding VAT, the struck-through price and discount, financing, stock wording and the schema.org availability, condition, the complete image gallery, the complete technical specification grouped exactly as the site groups it, the description, colour/capacity variants with their price difference and stock, the energy class, the breadcrumb, and the rating with both counts Alza publishes.

ParameterAllowed / rangeDescription
product_idrequiredAlza product id — the number after the -d in a product URL (…/iphone-17-pro-256gb-stribrna-d13078788.htm → 13078788). A full product URL is also accepted and its host sets the country. Every search/category row returns `product_id`.
country = czoptionalcz · sk · hu · at · deWhich national Alza storefront to read. Currency, language, catalogue AND price follow the country — the same product really is priced differently on alza.at and alza.de, so pick the market you mean. alza.co.uk is not available: Alza stopped selling there on 27/5/2022 and publishes no catalogue.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5, default 3).
Try in playground →
post/alza/v1/product/reviews1 credit

Customer reviews for one Alza product, newest first, straight from the storefront's own review feed: star rating, the reviewer's public nickname as the site prints it, what they liked and disliked as separate lists, the free text, the date, whether Alza verified the purchase, which variant was reviewed, any photos, and the shop's reply where there is one.

ParameterAllowed / rangeDescription
product_idrequiredAlza product id — the number after the -d in a product URL (…/iphone-17-pro-256gb-stribrna-d13078788.htm → 13078788). A full product URL is also accepted and its host sets the country. Every search/category row returns `product_id`.
country = czoptionalcz · sk · hu · at · deWhich national Alza storefront to read. Currency, language, catalogue AND price follow the country — the same product really is priced differently on alza.at and alza.de, so pick the market you mean. alza.co.uk is not available: Alza stopped selling there on 27/5/2022 and publishes no catalogue.
limit = 10optional1–50How many reviews to return (1-50). The feed pages 10 at a time upstream; ask for more and the engine pages for you.
offset = 0optional0–How many reviews to skip, for paging through a long review list.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5, default 3).
Try in playground →