Ozon Product Scraper - Prices & Discounts | Парсер Озон
Pricing
from $3.00 / 1,000 products
Ozon Product Scraper - Prices & Discounts | Парсер Озон
Search Ozon.ru by keyword and get one row per product: price, old price, discount, rating, review count, stock and pictures, in Ozon's own ranking order. No Ozon account, no login. Search rows do not carry the seller's name, and product links are not opened for now.
Pricing
from $3.00 / 1,000 products
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Ozon Product Scraper: prices, discounts and ratings from Ozon.ru search
Type a keyword the way you would on ozon.ru and get one row per product back: price, old price, discount, rating, review count, stock and pictures, in the order Ozon ranks them. No Ozon account and no login. Search rows do not carry the seller's name, and product links are not opened for now, so this is a search tool rather than a product-page tool.
| Input | Keywords, in Russian or English |
| Output | One row per product |
| Ceiling | 5,000 products per run |
| Account needed | None from you |
| Price | $3.00 per 1,000 products, flat on every plan |
🔍 What Ozon Product Scraper does
It runs each keyword through Ozon's own search and reads the results the way a shopper scrolls them, page after page. Every product becomes one row. A product that shows up twice, on two pages or under two keywords, comes back once and is charged once.
The run stops at whichever comes first: the number of products you asked for, the end of Ozon's list, or the maximum charge you set for the run.
📥 What you give it
| Field | Default | What it does |
|---|---|---|
searchQueries | none | Keywords, exactly as you would type them into Ozon's search box. Russian and English both work. |
maxItems | 50 | The most products the run returns, across all keywords together, from 1 to 5,000. Keywords are worked through in the order you give them. |
productUrls | none | Not available yet. Each link comes back as an uncharged row that says so. |
fullDetails | off | Not available yet. Search rows come without the seller name and the description. |
{"searchQueries": ["робот-пылесос", "iphone"],"maxItems": 200}
With 200 as the limit, the second keyword only gets what the first one leaves. If you want the same number from each, run them separately.
📤 What you get back
| Field | What it holds |
|---|---|
sku, productId | Ozon's product number, the same value in both |
title | The product name as Ozon shows it |
brand | The brand, when Ozon prints it on the result. In a 50-row test, 20 rows had one |
price | The current price in roubles |
oldPrice, discountPercent | The struck-through price and Ozon's discount, when the product is marked down |
currency | Always RUB |
rating, reviewCount | Average star rating and number of reviews |
inStock | Whether Ozon lets you add it to the cart |
stockNote | Ozon's low-stock line, such as "1 ед осталось". null on most rows |
images, imageUrl | The pictures on the result, and the first one |
url | The product page, with Ozon's tracking parameters removed |
seller | Always null on search rows |
query, source, scrapedAt | The keyword that found it, search, and when it was read |
A real row, with the picture list trimmed:
{"sku": "3941676522","productId": "3941676522","url": "https://www.ozon.ru/product/robot-pylesos-xiaomi-robot-vacuum-h50-3941676522/","title": "Робот-пылесос Xiaomi Robot Vacuum H50","brand": "Xiaomi","price": 26829,"oldPrice": 167990,"discountPercent": 84,"currency": "RUB","rating": 4.9,"reviewCount": 168,"seller": null,"inStock": true,"stockNote": "1 ед осталось","images": ["https://ir-20.ozone.ru/s3/multimedia-1-t/11089085141.jpg"],"imageUrl": "https://ir-20.ozone.ru/s3/multimedia-1-t/11089085141.jpg","source": "search","query": "робот-пылесос","scrapedAt": "2026-09-28T04:13:54.060Z"}
Prices are whole roubles, as Ozon prints them.
🧾 Reading the output
Three kinds of row can land in the dataset:
- A product row has an
skuand no_sampleor_diagnosticfield. These are the only rows you are charged for. - A sample row has
_sample: true. You get one when the run starts with no keywords at all, so you can see the shape. It is not charged. - A diagnostic row has
_diagnostic: true,ok: falseand anerrorCode. It is never charged.NO_RESULTS: Ozon had nothing for that keyword.BAD_INPUT: something inproductUrlsis not an Ozon product link or SKU.NOT_AVAILABLE: a product link that was not opened, because product links are off for now.BLOCKEDorFETCH_FAILED: Ozon did not answer this time. Running it again later usually works.
To keep only products, drop every row that has _sample or _diagnostic set.
▶️ How to run it
- Open Ozon Product Scraper and click Try for free.
- Type your keywords into Search keywords, one per line.
- Set Maximum products. Start around 20 to see the shape of it.
- Click Start. Fifty products took about a minute and a half in testing.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$3.00 per 1,000 products, which is $0.003 per product row, the same on every plan. There are no volume tiers.
You are not charged for sample rows, diagnostic rows, product links that were skipped, or a product that turned up a second time. maxItems caps what one run can return, and if you set a maximum charge for the run, it stops there instead.
💡 What people use it for
- Watching a category's prices. Run the same keywords every morning and compare
priceanddiscountPercentwith yesterday's file. - Seeing how deep a brand's markdowns go. Search the brand name and sort by
discountPercent. - Sizing up a product before you sell it on Ozon. One keyword gives you the price range, the ratings and the review counts of everything already listed.
- Spotting low stock. Filter on
stockNoteto see which products Ozon says are nearly gone.
🚧 What it does not do
- No seller name on search rows. Ozon does not put it on search results, so
selleris alwaysnull. - Product links are not opened for now.
productUrlsandfullDetailsreturn an uncharged row saying so. - No filters. There are no price, rating or delivery filters here. Filter the output yourself.
- Moscow prices. Ozon prices vary by region, and these are the ones shown for Moscow.
- Sponsored products are included. Ozon mixes paid placements into its results with nothing to mark them, so they come back in their place like any other product.
- No reviews, questions, variants or price history. Products only.
🧭 Which Russian marketplace scraper do you need?
| If you want | Use |
|---|---|
| Ozon products by keyword, with price and discount | This one |
| Products and prices on Yandex Market | Yandex Market Scraper |
| Listings on Avito, private and business | Avito Listings Scraper |
| Everything one Avito seller has listed | Avito Seller Scraper |
| Shops and businesses on the map, with phones and hours | Yandex Maps Scraper |
❓ Questions people ask
Do I need an Ozon account? No. It reads Ozon's public search results.
Can I search in Russian? Yes. Russian keywords work exactly as they do on the site, and so do English ones.
How many products can one keyword give? As many as Ozon lists and maxItems allows, up to 5,000 per run. Broad keywords run to thousands of products.
Why did I get fewer products than I asked for? Ozon's list ran out, or products repeated and were returned once. You pay only for the rows you got.
Is scraping Ozon legal? These are public product listings on a public site. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the keywords you used. The status message at the top of the run usually names the problem.