Alza API

Central Europe's biggest electronics shop, as one JSON API

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).

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Alza endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
A
/alza/v1

4 active endpoints, on 1 and 2 credit tiers.

  • POST/alza/v1/search
  • POST/alza/v1/category
  • POST/alza/v1/product/detail
  • POST/alza/v1/product/reviews

What Alza endpoints does ReefAPI ship?

4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

4 endpoints

search

2 cr

Search one national Alza storefront by keyword and get 24 products per page with the price a…

required
query
optional
country, page, sort, brand, min_price, max_price, in_stock_only, discounted_only, new_arrivals_only, well_rated_only, max_rotations

category

2 cr

List the products of one Alza category page.

required
category
optional
country, page, sort, brand, min_price, max_price, in_stock_only, discounted_only, new_arrivals_only, well_rated_only, max_rotations

product/detail

2 cr

The full Alza product record by id or URL.

required
product_id
optional
country, max_rotations

product/reviews

1 cr

Customer reviews for one Alza product, newest first, straight from the storefront's own revie…

required
product_id
optional
country, limit, offset, max_rotations

Every parameter, every allowed value →

Alza API

4 of 4 endpoints, ready to run

View docs ↗

24 products per page from one national storefront with an exact result total: the price now, the struck price and discount, stock wording, the 5-star rating with its count, energy class and how many variants exist.

2 credits1 required · 8 optional
POST/alza/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Alza API works

Alza is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 280 engines.

02
Call
POST /alza/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Find a product, read everything Alza publishes about it, then compare the next market

The search row already carries the price, the discount and the rating. product/detail is where the figure without VAT, the specification and the variants are - and the country parameter is what makes the second market a different answer, not a copy.

01search
POST/alza/v1/search
{"query": "iphone", "country": "cz", "sort": "price_asc", "discounted_only": true}

Cheapest first, reduced products only. On the day this was measured that narrowed 123 products to 4, and the response says so in total_results. Take results[].product_id.

02detail
POST/alza/v1/product/detail
{"product_id": "13078788", "country": "cz"}

The full record: 29,990 CZK including VAT and 24,785 without it, 68 specification rows, 11 images, both colour and capacity variants, and the stock wording the shop prints.

03reviews
POST/alza/v1/product/reviews
{"product_id": "13078788", "country": "cz", "limit": 10}

The shop's own reviews with the liked and disliked lists and the verified-purchase flag. total_reviews said 80 for this product, while its page reports 345 ratings and 58 written reviews.

04search
POST/alza/v1/search
{"query": "iphone", "country": "sk"}

The same question on the Slovak storefront. One parameter changes the country, and the currency, the catalogue and the price follow it.

One keyword, one complete product record, its reviews and a cross-border comparison, in four calls against the same schema.

request
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"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "alza",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

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.

Which country, which id, which price — and what Alza does not publish

Five national storefronts on one platform. Measured on 2026-09-23: 58 live checks all behaved as expected, 16 products across 7 categories and 4 storefronts were counted field by field, and every price was compared three ways against the shop's own page and a second endpoint. Five of these lines go against us.

Five countries, one parameter — and they really differ

country picks the storefront: cz, sk, hu, at, de. The currency follows it - CZK, EUR, HUF - and so does the catalogue and the price. Measured on the same day: one Bosch appliance was 325.90 EUR on the Austrian shop and 323.90 EUR on the German one, an iPhone 1,159 EUR against 1,149 EUR, and a headset 37.90 EUR in Slovakia against 35.90 EUR in Germany. Catalogue sizes differ too - the keyword "lenovo notebook" returned 589 products in Czechia, 586 in Slovakia, 318 in Hungary and 16 in Austria. Two euro markets are not interchangeable.

There is no UK storefront, and that is Alza's decision

alza.co.uk has sold nothing since 27 May 2022 and serves a suspension notice instead of a catalogue. country=uk and any co.uk URL are rejected with that reason, so you never get an empty result you have to interpret.

An id belongs to one catalogue, not to the group

The id is the number after the -d in a product URL. Of five Czech iPhone ids checked against the other storefronts, all five resolved on Slovakia, two on Austria and Germany, and none on Hungary - which lists the same phone under its own id. Ask a storefront for an id it does not carry and you get NOT_FOUND, never a different product: the engine checks that the record it read is the one you asked for. Pass a full URL and its host sets the country; a country that contradicts the URL is rejected.

Both prices, and a discount you can audit

price is what a logged-out consumer pays with VAT, price_ex_vat is Alza's own figure without it, and both matched the shop's own product page on 16 of 16 sampled products. discount_percent is computed from price and was_price; Alza's own badge ships separately as discount_percent_site and discount_label because the two can disagree - one product down from 43,990 to 41,990 is 4.55 percent and the badge prints -4 percent. The monthly financing figure is returned as monthly_instalment and never as a price.

Filters are applied by the shop, and the totals prove it

Measured on one category in a single run, unfiltered 214 products: minimum price 20,000 gives 100, maximum 15,000 gives 86, both bounds 31, in stock only 193, on sale only 13, newly added 1, well rated 144, brand GIGABYTE 62 - which matches the count the brand list itself reports. Sorting cheapest-first and dearest-first both returned strictly monotonic prices. Rating is a single well-rated switch rather than a star number, because that is what Alza offers; the API does not invent a star scale.

EAN only where Alza really publishes one

Alza publishes a manufacturer part number, always returned as mpn. Where that value is itself a valid EAN-13 it is also returned as ean, after the check digit is verified. Measured across 7 categories: toys 2 of 2 and drugstore 2 of 2 carried an EAN, phones 0 of 4, laptops 0 of 2, appliances 0 of 2 and storage 0 of 2 did not. Nothing is derived or guessed.

No delivery date, no stock count, no seller

Alza does not publish a delivery date to an anonymous visitor - it asks for a postcode first - so no delivery date is returned and exact_date_requires_address says why. You get the stock wording the shop prints, such as "Skladem > 5 ks", where else the item is held and the shop's delivery promise. There is no numeric stock count anywhere on this surface, and no seller: Alza sells these products itself and runs no third-party marketplace on them. There is no price history either.

Free-text searches cannot be sorted or filtered

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 rest are answered by its free-text search page, where Alza itself offers no sorting or filtering; asking for one there is rejected with an explanation rather than silently dropped, and filters_supported tells you which mode you are in. Free-text totals were observed to plateau near 300 on broad queries, while category-resolved searches report true totals such as 123, 589, 970 and 4,643.

Checked against the shop's own page, three ways

For 16 products across phones, laptops, appliances, toys, storage, drugstore and gaming on four storefronts, each fact was read three times: by the API, by a separate reader of the product page using no API code, and from a second endpoint that lists the same product. Title, price, price without VAT, currency, part number, rating, both rating counts, image count and the presence of the specification table agreed on 16 of 16. An id taken from search resolved to the same id, as the same type, on 16 of 16.

24 per page, and the paging ceiling is the set's own size

Every listing returns 24 products per page and an exact total, so page_count is simply that total divided by 24 - there is no hidden cap on a category. On search in free-text mode the total is Alza's own free-text result set, which stops near 300.

What people build with Alza

The jobs this data is most often used for.

4

endpoints

1/2

credits per call

01

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.

02

Feed a B2B pricing or procurement sheet that needs the figure without VAT, which Alza publishes on every product.

03

Watch discounts: pull the on-sale filter on a category each morning and keep price, was_price and the shop's own discount badge.

04

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.

What Alza data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 280 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
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"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/alza/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "iphone",
  "country": "cz"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Alza.

Get a free key →
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.

116 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Alza, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 279 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-23.