Ozon Product Scraper
Ozon.ru search results as data: title, price, old price, discount, rating, reviews, stock and images for any keyword, in Russian or English.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
searchQueries,productUrls,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.003 per product = $3 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Product | One Ozon product returned, with its title, price, rating, review count, seller and product URL. Sample rows, diagnostic rows and runs that are blocked or return nothing are never charged. | $0.003 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-28, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
searchQueries | Keywords to search on ozon.ru, exactly as you would type them into the site's search box. Russian and English both work. Leave empty if you only want specific product URLs. | array |
productUrls | Not available yet: product links are not opened for now, and each one comes back as an uncharged row saying so. Search for the product by name instead. | array |
maxItems | Hard cap on billable product rows for the whole run, across every keyword. You are charged per product returned, so this is also your budget cap. | integer |
fullDetails | Not available yet: product pages are not opened for now, so search rows come without the seller name and description. Search rows still carry SKU, title, price, old price, discount, rating, review count, stock and images. | boolean |
What you get
A structured dataset — each result includes fields like:
skutitlepriceoldPricediscountPercentcurrencyratingreviewCountsellerinStockimageUrlurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
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
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
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.