Rozetka Scraper — Ukraine E-commerce Prices & Stock
Pricing
from $2.50 / 1,000 results
Rozetka Scraper — Ukraine E-commerce Prices & Stock
Export products from Rozetka, Ukraine's largest online retailer: name, brand, current and crossed-out price, discount amount and percentage, loyalty bonus points, stock and pre-order status, promo labels, star rating, review count and product images.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Rozetka Scraper — Ukraine E-commerce Prices, Discounts & Stock
Rozetka is Ukraine's dominant online retailer — the country's Amazon — and its catalogue is where Ukrainian consumer-electronics pricing is effectively set. This Actor turns any Rozetka category, with or without filters applied, into a clean product table: name, brand, current price, crossed-out old price and promo price, discount amount and percentage, loyalty bonus points, stock and pre-order status, promo labels, star rating, review count and images.
It reads both descriptions the page publishes about itself — the structured catalogue data and the rendered product tiles — and joins them per product. The structured data alone gives you the name, brand and rating; only the tiles carry the old price, the bonus points and the delivery promise. Together they are what a pricing analyst actually needs.
What you get
One row per product, 27 columns:
| Group | Fields |
|---|---|
| Identity | productId, url, name, brand, description, category |
| Pricing | price, oldPrice, promoPrice, currency, discountAmount, discountPercent, priceValidUntil |
| Loyalty & delivery | bonusPoints, freeDelivery, promoLabel |
| Availability | availability, inStock, isPreorder |
| Reputation | rating, reviewCount |
| Merchandising | colourOptions, positionOnPage |
| Media & meta | imageUrl, country, source, scrapedAt |
Measured on a 170-product run over a filtered laptop category: price 100%, name 100%, brand 100%, productId 100%, bonusPoints 100%, inStock 100%, discountPercent where a product is discounted, rating/reviewCount 40% (new products carry no reviews yet).
Sample row
{"productId": "605404747","url": "https://rozetka.com.ua/ua/asus-90nr0qe7-m003c0/p512345678/","name": "Ноутбук ASUS TUF Gaming A15 FA506NCQ-HN062 Graphite Black / 15.6\" IPS 144 Гц / AMD Ryzen 7 / RAM 16 ГБ / SSD 512 ГБ / RTX 3050","brand": "ASUS","price": 49999,"oldPrice": 64999,"currency": "UAH","discountAmount": 15000,"discountPercent": 23,"bonusPoints": 499,"availability": "InStock","inStock": true,"isPreorder": false,"freeDelivery": true,"rating": 5,"reviewCount": 10,"colourOptions": 3,"category": "Ноутбуки Asus","imageUrl": "https://content2.rozetka.com.ua/goods/images/big_tile/674257644.jpg"}
Input
| Field | What it does |
|---|---|
| Category or filter URL | Any Rozetka listing URL. Apply the brand, price or spec filters you want on the site and paste the address — the filters survive pagination. |
| Maximum products | Stop after this many rows; 60 products arrive per page. |
| Proxy | Residential, pinned to Ukraine by default. |
{"categoryUrl": "https://rozetka.com.ua/ua/notebooks/c80004/producer=asus/","maxResults": 1000,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "UA" }}
Useful starting points:
| Goal | URL |
|---|---|
| Mobile phones | https://rozetka.com.ua/ua/mobile-phones/c80003/ |
| Laptops | https://rozetka.com.ua/ua/notebooks/c80004/ |
| One brand | https://rozetka.com.ua/ua/mobile-phones/c80003/producer=apple/ |
| Brand + spec | https://rozetka.com.ua/ua/notebooks/c80004/producer=asus;ram=16/ |
What it is good for
Price monitoring and repricing. price, oldPrice and discountPercent per SKU, pulled daily, give you a per-product price history for the Ukrainian market — the base layer for a repricing engine or a competitor dashboard. priceValidUntil tells you when the current offer is due to expire.
Promotion analysis. Rozetka discounts heavily and in cycles. discountAmount, promoLabel and promoPrice show how deep a category is cut and which products carry a code-gated price rather than an open one — the distinction that separates a real discount from a headline.
Loyalty-economics research. bonusPoints is the cashback Rozetka funds on each product. Expressed as a share of price it shows where the retailer is buying volume, category by category — a signal that is invisible in price data alone.
Assortment and availability tracking. inStock, isPreorder and colourOptions across a full category show what is actually purchasable versus merely listed. Repeated runs turn that into a stock-out timeline per SKU, which is how you spot supply problems before they show up in reviews.
Brand share of shelf. positionOnPage combined with brand measures who occupies the top of a category listing — the merchandising equivalent of share of voice.
Market research on Ukrainian e-commerce. Prices in UAH with ratings and review counts, at category scale, are hard to obtain any other way; there is no public API.
How it works
Rozetka server-renders its category pages, so no headless browser is needed. For each page the Actor reads the embedded structured catalogue and the rendered tiles, then joins them on the product URL — the only identifier present in both.
Two things here needed verifying rather than assuming, and both are handled:
- Filtered URLs page differently from plain ones. A plain category takes
/page=2/as its own path segment, but a filtered listing needs the page joined into the filter segment (/producer=asus;page=2/). The wrong form is accepted by the server and silently re-serves page one — the Actor uses the right form for each and was verified to keep the filter intact across 170 products (100% of them the filtered brand). - Angular injects style blocks inside product tiles. They are removed before any text is read, otherwise CSS declarations leak into product titles.
Rozetka rate-limits foreign traffic, so requests go through Ukrainian residential IPs, retries take a fresh IP each time (which is what clears the occasional 403), a failed page is skipped rather than fatal, rows are de-duplicated by product ID, and a time budget stops the crawl while everything collected is safely stored.
Cost and limits
Billing is per result, so cost tracks rows saved rather than pages fetched or retries burned. Store discounts apply on paid Apify plans.
- Category and filter URLs only. Rozetka's search results are rendered in the browser rather than on the server, so a keyword search box would return nothing; browse to the category and filter there instead. Every filter the site offers is supported this way.
promoPriceappears only where a product carries a red code-gated price — common in phones, rare in laptops.ratingandreviewCountare empty for products with no reviews rather than reported as zero.- Seller identity is not exposed on listing tiles; Rozetka sells both its own stock and marketplace stock without distinguishing them there.
Legal
This Actor reads publicly visible catalogue pages. It does not log in, does not bypass access control, and collects no personal data. Product and price data may be protected as a database right in some jurisdictions; use it accordingly.
Not affiliated with, endorsed by, or connected to Rozetka.ua LLC. The name is used only to identify the public source of the data.
*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).
Use cases
- Export records in bulk and analyse them in a spreadsheet or database.
- Track how the data changes over time by scheduling repeat runs.
- Feed records into a dashboard, CRM or internal tool through the Apify API.
- Build a research dataset without writing or maintaining a scraper.
- Monitor Rozetka for new entries and alert your team when they appear.
Related scrapers
Other Actors from the same collection:
Scheduling and integrations
Run this Actor on a schedule — hourly, daily or weekly — and have every run append to the same dataset, which is how you turn a one-off export into a time series. Results can be pushed straight into Google Sheets, Slack, Zapier, Make, Airtable or any Webhook.
How much Rozetka data can you extract in one run?
A single run returned 1,000 products in 105 seconds on the example input, and it was still going when the measurement stopped — raise the result limit and it keeps paginating. That is roughly 571 products a minute.
There is no hard ceiling built into this Actor. What bounds a run is the result limit you set, the breadth of the input you give it, and how much Rozetka itself publishes. Because billing is per result, a wider run costs proportionally more and a narrow one costs almost nothing — so it is worth starting small and scaling once the output looks right.
Rozetka scraping — frequently asked questions
Do I need a Rozetka API key, account or login?
No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.
How do I export Rozetka data to CSV, Excel, JSON or Google Sheets?
Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.
Can I schedule this Rozetka scraper to run daily or hourly?
Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the products you care about really do change that fast.
How many products can I get, and what does it cost?
See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.
Is scraping Rozetka legal?
This Actor collects only information that Rozetka publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.
What happens if Rozetka blocks the run or changes its layout?
A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".
Can I use this with an AI agent, LangChain or an MCP client?
Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.
How to scrape Rozetka without an API
Rozetka has no public bulk export for this data, which normally leaves copy-and-paste or a custom crawler. This Actor is the second one, already built and maintained: it reads the public pages, follows the pagination, and hands back clean rows.
- Fill in the input below — the example is prefilled, so Start works straight away.
- Watch the log name each page it walks and how many products each one returned.
- Export from Storage, or pull the dataset over the API into your own pipeline.
No API key, no account, no browser extension, no manual copying.