Ozon Product Scraper - Prices & Discounts | Парсер Озон avatar

Ozon Product Scraper - Prices & Discounts | Парсер Озон

Pricing

from $3.00 / 1,000 products

Go to Apify Store
Ozon Product Scraper - Prices & Discounts | Парсер Озон

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

Dami's Studio

Maintained by Community

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

InputKeywords, in Russian or English
OutputOne row per product
Ceiling5,000 products per run
Account neededNone 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

FieldDefaultWhat it does
searchQueriesnoneKeywords, exactly as you would type them into Ozon's search box. Russian and English both work.
maxItems50The most products the run returns, across all keywords together, from 1 to 5,000. Keywords are worked through in the order you give them.
productUrlsnoneNot available yet. Each link comes back as an uncharged row that says so.
fullDetailsoffNot 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

FieldWhat it holds
sku, productIdOzon's product number, the same value in both
titleThe product name as Ozon shows it
brandThe brand, when Ozon prints it on the result. In a 50-row test, 20 rows had one
priceThe current price in roubles
oldPrice, discountPercentThe struck-through price and Ozon's discount, when the product is marked down
currencyAlways RUB
rating, reviewCountAverage star rating and number of reviews
inStockWhether Ozon lets you add it to the cart
stockNoteOzon's low-stock line, such as "1 ед осталось". null on most rows
images, imageUrlThe pictures on the result, and the first one
urlThe product page, with Ozon's tracking parameters removed
sellerAlways null on search rows
query, source, scrapedAtThe 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 sku and no _sample or _diagnostic field. 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: false and an errorCode. It is never charged.
    • NO_RESULTS: Ozon had nothing for that keyword.
    • BAD_INPUT: something in productUrls is not an Ozon product link or SKU.
    • NOT_AVAILABLE: a product link that was not opened, because product links are off for now.
    • BLOCKED or FETCH_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

  1. Open Ozon Product Scraper and click Try for free.
  2. Type your keywords into Search keywords, one per line.
  3. Set Maximum products. Start around 20 to see the shape of it.
  4. Click Start. Fifty products took about a minute and a half in testing.
  5. 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 price and discountPercent with 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 stockNote to 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 seller is always null.
  • Product links are not opened for now. productUrls and fullDetails return 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 wantUse
Ozon products by keyword, with price and discountThis one
Products and prices on Yandex MarketYandex Market Scraper
Listings on Avito, private and businessAvito Listings Scraper
Everything one Avito seller has listedAvito Seller Scraper
Shops and businesses on the map, with phones and hoursYandex 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.