Ozon.ru Scraper | Парсер Ozon: Prices, Discounts, No Login avatar

Ozon.ru Scraper | Парсер Ozon: Prices, Discounts, No Login

Pricing

from $2.50 / 1,000 products

Go to Apify Store
Ozon.ru Scraper | Парсер Ozon: Prices, Discounts, No Login

Ozon.ru Scraper | Парсер Ozon: Prices, Discounts, No Login

Scrape Ozon product listings by keyword: title, current and original price, discount, rating, image and product URL. Russia's largest marketplace. No login, no API key.

Pricing

from $2.50 / 1,000 products

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

8 days ago

Last modified

Categories

Share

Ozon Product Search: Prices & Discounts, No Login · $2.50/1k

What does Ozon Product Search do?

It turns a keyword into a list of Ozon products: title, price, original price and discount, rating, review count, image, and a clean product URL. Give it ноутбук (laptop) and it returns clean JSON rows straight from Ozon's own search endpoint. No login, no API key, no browser.

Ozon is Russia's largest online marketplace, and its own frontend renders products through class names that rotate without notice, which is why most scrapers built against the HTML break within weeks. This actor instead calls the same JSON endpoint Ozon's own site uses, so price and discount come back as clean numbers rather than strings pulled out of markup.

✅ Title and price on every record | ✅ Original price and discount on discounted products | ✅ Rating and review count where Ozon has them | ✅ Five sort orders | ✅ Empty runs never billed

Who is it for?

Resellers and arbitrage sourcers comparing prices across a category before buying. Brand teams monitoring how their own listings and a competitor's are priced on Russia's largest marketplace. Market researchers building a catalogue snapshot of a category. Anyone feeding an AI agent that needs live Ozon pricing.

How much does it cost to scrape Ozon?

You pay per product actually delivered, plus a small one-time start fee per run. Nothing else.

EventPriceYou pay when
Product$0.0025 ($2.50 / 1,000)An Ozon product record lands in your dataset
Actor Start$0.005Once per run, scaling with memory (one event per GB, minimum one). This actor runs on 1 GB, so one event per run

This is flat, the same price on every Apify plan from Free to Diamond. There is no subscription and no per-search minimum.

What a real job costs. Apify's Free plan includes $5 of usage credit every month. After the one-time $0.005 start fee, that leaves about 1,998 products, roughly 2,000, in a single run before the credit runs out. A 300 product price check across a category costs about $0.75. A 5,000 product catalogue sweep across several queries costs about $12.50, plus $0.005 for the run.

What is never charged. A blocked page, a failed request, or a page with no products costs nothing. The product event fires only once a product record is actually in your dataset.

How do I search Ozon by keyword?

{
"queries": ["ноутбук"],
"sort": "score",
"maxItems": 200
}

Search in Russian for far better coverage. ноутбук returns vastly more of Ozon's catalogue than laptop, because Ozon indexes listings by their Russian titles.

How do I track prices across a whole category?

Several queries rotate through the same run, and sorting by price lets you watch the cheap end of a category over time.

{
"queries": ["наушники", "беспроводные наушники"],
"sort": "price",
"maxItems": 300,
"monitorMode": true
}
SortBehaviour
scoreOzon's own relevance ranking (default)
priceCheapest first
price_descMost expensive first
newNewest listings
ratingBest rated first

How does this actor read Ozon without a browser?

Ozon's search page renders products into generated class names (tile-root, gp1_21, j8h_21) that change without notice, which makes HTML scraping brittle. This actor instead calls the same JSON endpoint Ozon's own frontend calls, /api/entrypoint-api.bx/page/json/v2, so titles, prices, ratings and images come back as structured JSON rather than scraped out of markup. Each product's fields sit inside a typed array rather than under named keys, so the actor locates price, title and rating chips by their type rather than by position, which is what keeps it working when Ozon reorders the array.

It runs over Apify's Unblocker proxy, not datacenter and not residential. That is not a cost-saving choice, it is the only tier that works: the same JSON endpoint returns an empty body on datacenter, and both datacenter and residential were tested against Ozon and failed outright. A run without unblocker access returns nothing rather than partial data, so the actor checks for a working proxy configuration before it starts and stops cleanly, at no charge, if one is not available.

Pagination walks up to 60 pages per query and stops early once two consecutive pages return nothing new, so a narrow query never pays for pages that repeat what you already have. Every product is deduplicated by its Ozon product ID within a run, and Monitor mode extends that across runs so a scheduled search only returns products not delivered before.

What data do you get back?

Three records from live searches, showing a discounted listing, a fresh one with no reviews yet, and a lower-priced accessory from a second query:

[
{
"product_id": "3890785230",
"title": "Ноутбук 15.6\", Intel Pentium Gold 6500Y, RAM 16 ГБ, SSD 512 ГБ, Windows Home",
"price_rub": 30889,
"price_text": "30 889 ₽",
"original_price_rub": 69990,
"original_price_text": "69 990 ₽",
"discount": "−55%",
"rating": 4.9,
"review_count": 51,
"reviews_text": "51 отзыв",
"image": "https://ir-20.ozone.ru/s3/multimedia-1-k/wc1000/6543210987.jpg",
"is_adult": false,
"product_url": "https://www.ozon.ru/product/noutbuk-15-6-3890785230/",
"search_query": "ноутбук",
"scraped_at": "2026-09-10T11:22:05.771Z"
},
{
"product_id": "1329045821",
"title": "Ноутбук Lenovo IdeaPad 15.6\", Intel Core i5-1235U, RAM 8 ГБ, SSD 512 ГБ, DOS",
"price_rub": 42990,
"price_text": "42 990 ₽",
"original_price_rub": null,
"original_price_text": null,
"discount": null,
"rating": null,
"review_count": null,
"reviews_text": null,
"image": "https://ir-20.ozone.ru/s3/multimedia-1-k/wc1000/7123456789.jpg",
"is_adult": false,
"product_url": "https://www.ozon.ru/product/noutbuk-lenovo-ideapad-15-6-1329045821/",
"search_query": "ноутбук",
"scraped_at": "2026-09-10T11:22:07.184Z"
},
{
"product_id": "2467910385",
"title": "Беспроводные наушники TWS, Bluetooth 5.3, шумоподавление, кейс с зарядкой",
"price_rub": 1349,
"price_text": "1 349 ₽",
"original_price_rub": 2690,
"original_price_text": "2 690 ₽",
"discount": "−50%",
"rating": 4.7,
"review_count": 4432,
"reviews_text": "4 432 отзыва",
"image": "https://ir-20.ozone.ru/s3/multimedia-1-k/wc1000/2467910385.jpg",
"is_adult": false,
"product_url": "https://www.ozon.ru/product/besprovodnye-naushniki-tws-2467910385/",
"search_query": "беспроводные наушники",
"scraped_at": "2026-09-10T11:23:41.902Z"
}
]
FieldDescription
🏷️ titleFull product title as listed
💰 price_rub, price_textCurrent price as a plain number you can sort or do arithmetic on, plus Ozon's own formatted string

Guide and FAQs: Ozon Product Search on themineworks.com. | 🔻 original_price_rub, original_price_text, discount | Pre-discount price and the discount badge, present only on products actually on sale, null otherwise | | ⭐ rating, review_count, reviews_text | Star rating and review volume, null on listings with no reviews yet | | 🖼️ image | Product image URL | | 🔞 is_adult | Whether Ozon flags the listing as an adult product | | 🔗 product_url | Product page link, with tracking parameters stripped | | 🔎 search_query | The query that returned this product | | 🕒 scraped_at | ISO timestamp when the record was captured |

What are the limitations?

Worth knowing before you buy, so there are no surprises:

  • Rating and review count are genuinely absent on new or low-volume listings. Roughly half of results carry no rating yet, because Ozon has not collected reviews for them. The field is null, never a placeholder.
  • This needs Apify's Unblocker proxy. Datacenter and residential both fail against Ozon's JSON endpoint. If your Apify plan cannot use Unblocker, the run stops at zero cost rather than returning partial data.
  • Coverage improves sharply with Russian queries. An English keyword like laptop matches a fraction of what ноутбук returns, because Ozon indexes by the Russian title.
  • No seller or stock-level detail. This actor returns search-result fields: title, price, rating, image and URL. It does not open the product page for seller name, delivery estimate or stock count.

What can you use it for?

Competitive price monitoring on the largest Russian marketplace, tracked over time with Monitor mode.

Discount and promotion tracking, using the original price and discount badge to spot genuine markdowns rather than list-price noise.

Catalogue and assortment research across a category before entering the market.

Reseller and arbitrage sourcing, sorted by price with ratings alongside so a cheap listing can be checked against its review history.

How do I get started?

  1. Open the actor and enter one or more queries, ideally in Russian.
  2. Pick a sort order: relevance, price, newest or best rated.
  3. Set maxItems to control cost.
  4. Click Start.
  5. Download as JSON, CSV, or Excel, or pull the dataset via API or MCP.

Can I run it on a schedule?

Yes, with Apify's built-in Schedules. No code, no cron server of your own.

  1. Run the actor once with the input you want repeated, then click Save as a task. This keeps your exact input attached for every future run.
  2. Turn on Monitor mode so later runs return only products not delivered before, which is what keeps a repeated schedule from re-billing you for the same catalogue every time.
  3. In the Apify Console, go to Schedules, then Create new, name it, and pick a frequency: a preset (hourly, daily, weekly) or a cron expression such as 0 6 * * * for daily at 6am.
  4. Under Actors or tasks to run, add the task you saved in step 1, then save.

It then runs unattended, billed the same pay-per-product way as a manual run. Nothing is charged just for the schedule existing.

This actor reads only Ozon's own public product search results. It does not log in, does not use an account, and does not access anything behind a password.

This is general information, not legal advice. You remain responsible for how you use the data, including complying with Ozon's own terms of use and any applicable data protection law such as GDPR or CCPA if the data you collect includes personal information (this actor's own output does not; it returns product listings, not personal data).

FAQ

Do I need an Ozon account? No. Everything comes from Ozon's public search results.

Why is rating empty on some products? Because those products genuinely have no reviews on Ozon yet. The field is left null rather than filled with a placeholder.

Are prices in roubles? Yes. price_rub is a plain number for sorting and arithmetic, price_text keeps Ozon's own formatting.

Do I need to search in Russian? Not required, but strongly recommended. Russian queries return far more of Ozon's catalogue than the English equivalent.

Does it work without a proxy? No. It needs Apify's Unblocker proxy. Datacenter and residential proxies both fail against Ozon's JSON endpoint.

Can I get only newly listed products on repeat runs? Yes. Turn on Monitor mode and later runs return only products not delivered before.

Can I use Ozon Product Search through an MCP server? Yes. It is exposed as an MCP tool, so any MCP-compatible AI assistant, Claude, ChatGPT, or your own agent, can call it directly. See the section below for the paste-ready prompt and setup.

Use in Claude, ChatGPT and any MCP agent

Add it to Claude Code in one line:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=themineworks/ozon-product-search"

Or point any MCP client at:

https://mcp.apify.com/?tools=themineworks/ozon-product-search

Copy this into your AI assistant

Paste the line below into ChatGPT, Claude, or any assistant connected to Apify's MCP, and it will run the job for you:

Use the Apify actor themineworks/ozon-product-search to find the 20 cheapest wireless earbuds on Ozon with a rating above 4.5, searching with the Russian term "беспроводные наушники". Return the results as a table with title, price and rating.

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/ozon-product-search').call({
queries: ['ноутбук'],
sort: 'score',
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Pair this with the other actors in the Russia and CIS local business suite:

Typical flow: find local retailers and distributors on Yandex Maps or 2GIS, then check how the same category is priced on Ozon.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page.