Search Alza products
search_productsFind products in the Alza.cz catalog by keyword to compare options, check prices, stock, and ratings, and filter by category, brand, or price.
Instructions
Search the Alza.cz catalog by keyword. Use this for product discovery — finding what's available, comparing options, or starting research. Returns a list with product code, name, price, stock (from the card's purchase CTA), and rating. To get full details for one product, follow up with get_product. Sorting: Alza's search page ignores server-side sort, so price-asc / price-desc / rating scan up to ~72 top-ranked candidates (3 pages) and sort them client-side — candidatesScanned reports how many were scanned; for an absolute price floor also pass max_price. in_stock: true keeps only products with a live purchase CTA. Brand/attribute filtering: call list_category_filters({category_id}) for real ids, then pass producer_ids and/or filters with category_id. This switches to Alza's own filtered category page, so query is ignored and results match what the website shows; a filter Alza doesn't honour returns an error rather than unfiltered results. Slider facets (screen size, refresh rate, brightness, weight, …) filter by {param_id, min?, max?} range; the applied ranges come back in appliedRanges. min_screen_inches/max_screen_inches use the category's real diagonal slider when category_id is given, and a product-name size heuristic otherwise. For attributes Alza has no facet for, compare shortlisted candidates with get_product's params. Read-only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-indexed result page (follows Alza's rendered pagination). Only pages Alza actually renders are reachable — a page beyond the rendered set returns no results rather than repeating page 1. Paginating this way does not change which page the sweep scans (sorting still scans from page 1). | |
| sort | No | Sort order, default 'relevance'. Alza's search page ignores server-side sort parameters, so price (asc/desc) and rating sorts gather candidates from up to 3 result pages (~72 items — the top of Alza's relevance ranking) and sort them client-side; the response's `candidatesScanned` says how many candidates were scanned. 'newest' is best-effort (Alza's newest-sort is client-side JS, so it returns relevance order). For an absolute price floor, also pass `max_price` and/or narrow `category_id`. | |
| limit | No | Maximum number of results to return. Default 20, max 50. | |
| query | Yes | Search keywords. Required. Example: 'iPhone 15 Pro', 'PlayStation 5', 'gaming mouse Logitech'. | |
| filters | No | Attribute filter selections from `list_category_filters` (`filterable: true` groups only; never guess ids). Requires `category_id`. Combines with `producer_ids`. Two forms: `{param_id, value_id}` for Checkbox groups (`filterMode: "value"`), and `{param_id, min?, max?}` for Slider groups (`filterMode: "range"` — screen size, refresh rate, brightness, weight, port counts, …; at least one bound; units are the group's `values[].value`; live-verified 2026-10-06). The ranges Alza actually applied come back in `appliedRanges`. If Alza doesn't honour a filter, the call errors instead of returning unfiltered results. | |
| in_stock | No | If true, keep only products purchasable right now (card shows a 'Do košíku'/'Vybrat variantu' purchase CTA; cards with a 'Hlídat' watch button are excluded). Derived from the search card's CTA — for real delivery dates use `get_product`. | |
| max_price | No | Maximum price in the locale's currency. | |
| min_price | No | Minimum price in the locale's currency. | |
| category_id | No | Restrict the search to a specific category id. Use list_categories to discover ids. | |
| producer_ids | No | Filter by brand id(s) — get real ids from `list_category_filters`'s `brands`. Requires `category_id`. Works in every category. | |
| max_screen_inches | No | Maximum screen diagonal in inches. See `min_screen_inches` for when this is a server-side filter vs a name-based fallback. | |
| min_screen_inches | No | Minimum screen diagonal in inches, for display products (monitors, TVs, laptops). With `category_id` (and a category that has a diagonal slider) this is Alza's own server-side diagonal filter (live-verified 2026-10-06), snapped to the slider's real sizes and reported in `appliedRanges`; like `filters`, that switches to the category-browse page, so `query` is not applied. Without `category_id` it falls back to parsing the product name's leading size (e.g. '40" MSI MAG401QR' → 40), excluding products whose name doesn't start with a size. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| query | Yes | ||
| total | Yes | ||
| pageSize | Yes | ||
| products | Yes | ||
| appliedRanges | No | ||
| candidatesScanned | No |