Ozon.ru Scraper icon

Ozon.ru Scraper

Extract structured product data from Ozon.ru, Russia’s largest marketplace. Search by keyword or use product, category, and seller URLs. Get clean JSON…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Ozon.ru Scraper at a glance

Ozon.ru Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes sku, change type (incremental mode), title, brand and price (rub), which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.50 per 1,000 results on the Apify Free plan and from $1.30 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Automation, Developer Tools
Region
Europe
Pricing
$2.50 per 1,000 results (Free plan), from $1.30 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
29 options

Extract structured product data from Ozon.ru, Russia’s largest marketplace. Search by keyword or use product, category, and seller URLs. Get clean JSON with 40+ fields, including prices, discounts, ratings, specs, variants, images, current seller, buybox sellers, and reviews.

What Ozon.ru Scraper can do

  • 40+ fields per product, with more depth than most Ozon scrapers.
  • Buybox tracking. For every product, get the current seller AND every competing seller offering the same item, each with their own price, delivery date, legal entity and authorized-brand flag.
  • Seller transparency. Name, rating, order count and registered legal entity with its state registry number.
  • Full specifications, variants and gallery. Every characteristic (40+ rows on a typical product), every size, colour or memory option with its own SKU and price, and the complete image gallery.
  • Customer reviews on demand. Turn on review attachment to add text, pros, cons, star score, photos, videos and helpfulness votes to each product, paged up to your chosen limit.
  • Two ways in. Keyword search, or walk product, category, search and seller URLs directly.

Choose what to collect

These inputs let you configure Ozon.ru Scraper - Products, URLs, Keywords, Sellers & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredPick how to start. 'search' uses the query + filters below. 'url' walks one or more product, category, search or seller URLs (short ozon.ru/t/ share links are not supported). To export customer reviews, paste product URLs here and turn on 'Attach reviews' below.

Choices: search, url

queriesarrayOne or more search terms in Russian or English (e.g. 'iphone 15', 'наушники'). Only used when mode = search.
sortBystringSort the search results.

Choices: score, price, price_desc, new, rating, discount

urlsarrayOne or more https://www.ozon.ru/ product, /category/, /search/ or /seller/ URLs. Short ozon.ru/t/ share links are not supported; paste the full product, category, search or seller URL. Multi-URL supported. The price/rating filters below apply to category, search and seller URLs pasted here, but NOT to a single product URL (which always returns just that one product); sortBy and queries stay search-mode only. Pagination continues from the page number in the URL.
minPriceintegerOptional: only return items priced at or above this value. Leave empty for no lower bound.
maxPriceintegerOptional: only return items priced at or below this value. Leave empty for no upper bound.
minRatingintegerOptional: only keep items whose average rating is at or above this value (1 to 5). Applied to the result tiles in search mode and when walking a category, search or seller URL, but not to a single pasted product URL.
Show 22 more inputs
More input fields
InputWhat it controls
scrapeProductDetailsbooleanOn (default): every product is enriched with full specs, description, image gallery, variants, current seller and category path. Off: faster, cheaper, returns only the result-tile fields (sku, title, brand, price, discount, rating, review count, image, url).
fetchBuyboxbooleanOn (default): for every product, also fetch the full list of competing sellers offering the same item, each with their price, delivery date, legal entity and authorized-brand flag. This is the buybox tracker. Requires full product details.
fetchSellerDetailsbooleanOn (default): enrich the current seller with profile data from the seller page (rating, order count, legal entity). Requires full product details.
fetchReviewsbooleanOff (default): products carry rating and review counts only. On: attach customer reviews to each product record (text, pros/cons, star score, photos, videos, helpfulness), paged up to 'Max reviews per product'. To export reviews for specific products, use URL mode with product URLs and turn this on.
maxReviewsPerProductintegerWhen 'Attach reviews' is on, how many reviews to page through per product. Default 30, capped at 1000.
maxPagesintegerHow many pages of results to walk per query or URL. Each page returns up to ~36 items. 0 or empty means 1 page; hard cap 1000 pages.
maxListingsintegerStop after this many products in total across all queries / URLs. Default 100, maximum 100000. 0 is still accepted from saved tasks and is read as the 100000 cap.
startUrlsarrayAlias of 'URLs' for users coming from other Ozon scrapers: product, category, search or seller URLs. Used when 'URLs' is empty; if no run mode is set, providing these switches to URL mode.
searchKeywordsarrayAlias of 'Search queries'. Used when 'Search queries' is empty; if no run mode is set, providing these switches to search mode.
sortSearchBystringAlias of 'Sort order' using the other vocabulary: popular, new, cheaper, moreExpensive, rating, discount. Used when 'Sort order' is left at its default (score); ignored when 'Sort order' is set to any other value.

Choices: , popular, new, cheaper, moreExpensive, rating, discount

maxItemsintegerCap on products collected per start URL or search keyword (default 100, maximum 100000). Applies on top of 'Max products (total)'.
scrapeDescriptionbooleanLeave unset to keep the current behaviour (description included). Set to false to return description as null.
scrapeSpecificationsbooleanLeave unset to keep the current behaviour (specs included). Set to false to return specs/specifications as an empty list.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large product pull without returning or charging for products already collected there. Use this after an interrupted run, or when continuing a catalogue pull in another run. For recurring daily monitoring of the same search/URLs, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). State is kept separately for each mode/query/URL/filter/enrichment setup; use State key when you want to name or deliberately share a monitoring campaign. UPDATED is decided by comparing price, original price, discount, rating, review count, title, brand, description, images, specs, variants, categories, and seller/buybox data (including other-seller count and minimum price); it ignores scrapedAt, deliveryText, seller order counters, review vote counters and image CDN host changes (these stay in the output), plus anything you list in Ignore fields. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the mode/query/URL/filter/enrichment settings, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search/URLs, not when Max products capped it or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayOptional. Field names that must NOT count as a change when deciding UPDATED vs UNCHANGED, e.g. price or stockText. Matches a top-level field, or a nested one by bare name (deliveryText) or path (currentSeller.rating). The fields stay in your output; they are just ignored for the comparison. Already ignored automatically: scrapedAt, deliveryText, seller order counters, review vote counters, and the image CDN host.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

skuSKU (text)
changeTypeChange type (incremental mode) (text)
titleTitle (text)
brandBrand (text)
pricePrice (RUB) (number)
originalPriceOriginal (RUB) (number)
discountPercentDiscount % (number)
currencyCurrency (text)
ratingRating (number)
reviewCountReviews (number)
questionCountQuestions (number)
sellerNameSeller (text)
Show 20 more fields
sellerIdSeller ID (text)
otherSellersCountOther sellers (number)
otherSellersMinPriceOther min (RUB) (number)
availabilityAvailability (text)
categoryPathCategory (text)
coverImageImage (image)
urlProduct URL (link)
changedFieldsChanged fields (incremental mode) (text)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
scrapedAtScraped at (date)
descriptionDescription (text)
specsSpecifications (array)
variantsVariants (array)
imagesImages (array)
sellerSeller (object)
ratingBreakdownRating breakdown (object)
hashtagsHashtags (array)
reviewsreviews
buyboxSellersbuyboxSellers

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "sku": "100000001",
  "url": "https://www.ozon.ru/product/100000001/",
  "title": "Смартфон Sample 6/128 ГБ, Nano-SIM",
  "brand": "Sample Brand",
  "price": 59990,
  "originalPrice": 89990,
  "discountPercent": 33,
  "currency": "RUB",
  "rating": 4.8,
  "reviewCount": 1200,
  "questionCount": 35,
  "availability": "Осталось 3 шт",
  "coverImage": "https://ir.ozone.ru/s3/multimedia-1-x/0000000000.jpg",
  "images": [
    "https://ir.ozone.ru/s3/multimedia-1-x/0000000001.jpg"
  ],
  "specs": [
    {
      "name": "Диагональ экрана, дюймы",
      "value": "6.1"
    }
  ],
  "variants": [
    {
      "sku": "100000002",
      "value": "Синий",
      "price": 57990,
      "aspectName": "Цвет"
    }
  ],
  "categoryPath": "Электроника > Телефоны и смарт-часы > Смартфоны",
  "sellerName": "Sample Seller",
  "sellerId": "1000000",
  "seller": {
    "sellerId": "1000000",
    "name": "Sample Seller",
    "rating": 4.9,
    "ordersCount": "1,6 тыс.",
    "legalName": "ООО «Пример»",
    "registryNumber": "000000000000000",
    "isPremium": true
  },
  "otherSellersCount": 13,
  "otherSellersMinPrice": 54990,
  "buyboxSellers": [
    {
      "sellerId": "1000001",
      "name": "Sample Seller 2",
      "price": 54990,
      "legalName": "ИП Пример",
      "registryNumber": "000000000000000",
      "deliveryText": "Доставка через 2 дня",
      "authorizedSeller": "Официальный продавец бренда"
    }
  ],
  "reviews": [],
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}

Ways to use this data

  • Competitive pricing and buybox monitoring: track who wins the buybox and at what price, across your own catalog or a competitor's.
  • Marketplace catalog and content sync: pull specs, images and variants to power a comparison site or product feed.
  • Seller due diligence: check a seller's rating, order count and registered legal entity before buying or partnering.
  • Voice of customer analysis: aggregate reviews, star scores, pros and cons to spot recurring complaints or praise.
  • Category and pricing research: filter by price and rating across a whole category or search to benchmark a market.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Ozon.ru Scraper return?

The documented output for Ozon.ru Scraper includes sku, change type (incremental mode), title, brand, price (rub), original (rub), discount % and currency. Availability of each field depends on the source page and the selected mode.

How much does Ozon.ru Scraper cost?

It costs $2.50 per 1,000 results on the Apify Free plan and from $1.30 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, and unchanged ones are not billed unless you turn on emitUnchanged.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with Ozon.ru Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.