Nimbryxo Studio

Yandex Market Price & Seller Offer Comparison Scraper

Scrape product listings, prices, seller offers, and reviews from Yandex Market. Search by keyword, browse a category, pull a product's full seller-offer comparison, or collect product and seller reviews.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to scrape. searchProducts: find products by keyword. browseCategory: scrape a product category. getProductDetails: full details + all seller offers for specific product URLs. getReviews: scrape product or seller reviews.
searchQueriesarrayoptionalOne or more search queries (mode=searchProducts). Examples: 'iPhone 15', 'ноутбук Samsung'.
categoryUrlsarrayoptionalYandex Market category page URLs (mode=browseCategory). Must be market.yandex.ru/catalog URLs.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to scrape. searchProducts: find products by keyword. browseCategory: scrape a product category. getProductDetails: full details + all seller offers for specific product URLs. getReviews: scrape product or seller reviews.
searchQueriesarrayoptionalOne or more search queries (mode=searchProducts). Examples: 'iPhone 15', 'ноутбук Samsung'.
categoryUrlsarrayoptionalYandex Market category page URLs (mode=browseCategory). Must be market.yandex.ru/catalog URLs.
productUrlsarrayoptionalYandex Market product page URLs (mode=getProductDetails or getReviews). Format: https://market.yandex.ru/product--{slug}/{id}
sellerUrlsarrayoptionalYandex Market seller page URLs (mode=getReviews only). Format: https://market.yandex.ru/shop--{slug}/{id}
maxItemsintegeroptionalMaximum number of records to return per query/URL.
sortOrderstringoptionalHow to sort search results. Only applies in searchProducts and browseCategory modes.
minPriceintegeroptionalMinimum price filter in Russian rubles. Only applies in searchProducts and browseCategory modes.
maxPriceintegeroptionalMaximum price filter in Russian rubles. Only applies in searchProducts and browseCategory modes.
minRatingstringoptionalFilter out products below this rating. Only applies in searchProducts and browseCategory modes.
reviewsSortOrderstringoptionalHow to sort reviews. Only applies in getReviews mode.
proxyConfigurationobjectoptionalRequired. Yandex Market only serves Russian IPs. Use Apify Residential proxy with country=RU for reliable access.

Download the published input schema

View complete JSON
{
  "description": "Search products, browse categories, get product details with all seller offers, or scrape reviews from Yandex Market.",
  "properties": {
    "categoryUrls": {
      "description": "Yandex Market category page URLs (mode=browseCategory). Must be market.yandex.ru/catalog URLs.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "https://market.yandex.ru/catalog--smartfony/54726"
      ],
      "title": "Category URLs",
      "type": "array"
    },
    "maxItems": {
      "default": 50,
      "description": "Maximum number of records to return per query/URL.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 5,
      "title": "Max Items",
      "type": "integer"
    },
    "maxPrice": {
      "description": "Maximum price filter in Russian rubles. Only applies in searchProducts and browseCategory modes.",
      "minimum": 0,
      "title": "Max Price (RUB)",
      "type": "integer"
    },
    "minPrice": {
      "description": "Minimum price filter in Russian rubles. Only applies in searchProducts and browseCategory modes.",
      "minimum": 0,
      "title": "Min Price (RUB)",
      "type": "integer"
    },
    "minRating": {
      "default": "any",
      "description": "Filter out products below this rating. Only applies in searchProducts and browseCategory modes.",
      "editor": "select",
      "enum": [
        "any",
        "3",
        "3.5",
        "4",
        "4.5"
      ],
      "enumTitles": [
        "Any rating",
        "3+ stars",
        "3.5+ stars",
        "4+ stars",
        "4.5+ stars"
      ],
      "title": "Min Rating (search & category only)",
      "type": "string"
    },
    "mode": {
      "default": "searchProducts",
      "description": "What to scrape. searchProducts: find products by keyword. browseCategory: scrape a product category. getProductDetails: full details + all seller offers for specific product URLs. getReviews: scrape product or seller reviews.",
      "editor": "select",
      "enum": [
        "searchProducts",
        "browseCategory",
        "getProductDetails",
        "getReviews"
      ],
      "enumTitles": [
        "Search products by keyword",
        "Browse a product category",
        "Get product details + all seller offers",
        "Get product or seller reviews"
      ],
      "prefill": "searchProducts",
      "title": "Mode",
      "type": "string"
    },
    "productUrls": {
      "description": "Yandex Market product page URLs (mode=getProductDetails or getReviews). Format: https://market.yandex.ru/product--{slug}/{id}",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "https://market.yandex.ru/product--smartfon-apple-iphone-7/14206636"
      ],
      "title": "Product URLs",
      "type": "array"
    },
    "proxyConfiguration": {
      "description": "Required. Yandex Market only serves Russian IPs. Use Apify Residential proxy with country=RU for reliable access.",
      "editor": "proxy",
      "prefill": {
        "apifyProxyCountry": "RU",
        "apifyProxyGroups": [
          "RESIDENTIAL"
        ],
        "useApifyProxy": true
      },
      "title": "Proxy Configuration",
      "type": "object"
    },
    "reviewsSortOrder": {
      "default": "newest",
      "description": "How to sort reviews. Only applies in getReviews mode.",
      "editor": "select",
      "enum": [
        "newest",
        "highestRating",
        "lowestRating",
        "mostHelpful"
      ],
      "enumTitles": [
        "Newest first",
        "Highest rated first",
        "Lowest rated first",
        "Most helpful first"
      ],
      "title": "Reviews Sort Order (getReviews only)",
      "type": "string"
    },
    "searchQueries": {
      "description": "One or more search queries (mode=searchProducts). Examples: 'iPhone 15', 'ноутбук Samsung'.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "iPhone 15"
      ],
      "title": "Search Queries",
      "type": "array"
    },
    "sellerUrls": {
      "description": "Yandex Market seller page URLs (mode=getReviews only). Format: https://market.yandex.ru/shop--{slug}/{id}",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Seller URLs (getReviews only)",
      "type": "array"
    },
    "sortOrder": {
      "default": "relevance",
      "description": "How to sort search results. Only applies in searchProducts and browseCategory modes.",
      "editor": "select",
      "enum": [
        "relevance",
        "priceAsc",
        "priceDesc",
        "rating",
        "popularity"
      ],
      "enumTitles": [
        "Relevance (default)",
        "Price: low to high",
        "Price: high to low",
        "Highest rated",
        "Most popular"
      ],
      "title": "Sort Order (search & category only)",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Yandex Market Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
resultsstringoptionalDataset with scraped Yandex Market products, seller offers, and reviews.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Yandex Market products with pricing and seller-offer data, plus product and seller reviews. Products have recordType=product, reviews have recordType=review.",
  "properties": {
    "results": {
      "description": "Dataset with scraped Yandex Market products, seller offers, and reviews.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Yandex Market records",
      "type": "string"
    }
  },
  "title": "Yandex Market Price & Seller Offer Comparison Scraper Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "title": "Yandex Market Results",
  "views": {
    "offers": {
      "display": {
        "component": "table",
        "properties": {
          "condition": {
            "format": "text",
            "label": "Condition"
          },
          "deliveryInfo": {
            "format": "text",
            "label": "Delivery"
          },
          "discount": {
            "format": "number",
            "label": "Discount %"
          },
          "name": {
            "format": "text",
            "label": "Product Name"
          },
          "offerUrl": {
            "format": "link",
            "label": "Offer URL"
          },
          "originalPrice": {
            "format": "number",
            "label": "Original Price"
          },
          "price": {
            "format": "number",
            "label": "Price (RUB)"
          },
          "productId": {
            "format": "text",
            "label": "Product ID"
          },
          "sellerName": {
            "format": "text",
            "label": "Seller"
          },
          "sellerRating": {
            "format": "number",
            "label": "Seller Rating"
          }
        }
      },
      "title": "Seller Offers",
      "transformation": {
        "fields": [
          "productId",
          "name",
          "sellerName",
          "sellerRating",
          "price",
          "originalPrice",
          "discount",
          "condition",
          "deliveryInfo",
          "offerUrl"
        ]
      }
    },
    "products": {
      "display": {
        "component": "table",
        "properties": {
          "availability": {
            "format": "text",
            "label": "Availability"
          },
          "brand": {
            "format": "text",
            "label": "Brand"
          },
          "discount": {
            "format": "number",
            "label": "Discount %"
          },
          "name": {
            "format": "text",
            "label": "Name"
          },
          "originalPrice": {
            "format": "number",
            "label": "Original Price"
          },
          "price": {
            "format": "number",
            "label": "Price (RUB)"
          },
          "productId": {
            "format": "text",
            "label": "Product ID"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "reviewCount": {
            "format": "number",
            "label": "Reviews"
          },
          "scrapedAt": {
            "format": "text",
            "label": "Scraped At"
          },
          "sellerName": {
            "format": "text",
            "label": "Seller"
          },
          "url": {
            "format": "link",
            "label": "Product URL"
          }
        }
      },
      "title": "Products Overview",
      "transformation": {
        "fields": [
          "productId",
          "name",
          "brand",
          "price",
          "originalPrice",
          "discount",
          "rating",
          "reviewCount",
          "sellerName",
          "availability",
          "url",
          "scrapedAt"
        ]
      }
    },
    "reviews": {
      "display": {
        "component": "table",
        "properties": {
          "author": {
            "format": "text",
            "label": "Author"
          },
          "date": {
            "format": "text",
            "label": "Date"
          },
          "helpfulVotes": {
            "format": "number",
            "label": "Helpful Votes"
          },
          "productName": {
            "format": "text",
            "label": "Product"
          },
          "rating": {
            "format": "number",
            "label": "Rating"
          },
          "reviewType": {
            "format": "text",
            "label": "Type"
          },
          "scrapedAt": {
            "format": "text",
            "label": "Scraped At"
          },
          "sellerName": {
            "format": "text",
            "label": "Seller"
          },
          "text": {
            "format": "text",
            "label": "Review Text"
          },
          "title": {
            "format": "text",
            "label": "Title"
          }
        }
      },
      "title": "Reviews",
      "transformation": {
        "fields": [
          "reviewType",
          "author",
          "rating",
          "title",
          "text",
          "date",
          "helpfulVotes",
          "productName",
          "sellerName",
          "scrapedAt"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Yandex Market Price & Seller Offer Comparison Scraper

Pull product listings, pricing, and reviews from Yandex Market, the marketplace where most listings are fulfilled by multiple independent sellers competing on the same product page. Search by keyword, browse a category, compare every seller's price for one product, or collect reviews.

What this actor does

  • Searches Yandex Market by one or more keywords and returns matching product cards
  • Browses every product listed under a category URL
  • Fetches a single product's full detail page together with every seller's competing offer for that product
  • Collects reviews for a product or for a seller's storefront
  • Empty fields are omitted from records

Output per product

  • recordType — always product
  • productId — Yandex Market's internal product ID
  • name
  • url — canonical product page URL
  • categoryPath — array of category names from top-level down to the product's category (product-detail fetches only)
  • rating, reviewCount
  • price, originalPrice, discount — current price, pre-discount price, and discount percentage, in currency (RUB)
  • sellerName — the primary/lead seller shown on a search or category card
  • deliveryInfo — delivery estimate text as shown on a search or category card
  • availability — in_stock or out_of_stock
  • specs — key/value map of technical specifications (product-detail fetches only, when the page lists any)
  • images — array of product image URLs
  • offers — populated only in product-detail fetches; array of every competing seller's offer for this product (see below)
  • scrapedAt

Output per seller offer (nested in offers, product-detail fetches only)

  • sellerName, sellerUrl — when shown on the offer
  • price, originalPrice — when the offer shows a pre-discount price

Output per review

  • recordType — always review
  • reviewType — product or seller
  • productId, productName, productUrl — present on product reviews
  • sellerId, sellerName, sellerUrl — present on seller reviews
  • author, rating, title, text — when the review shows them
  • date
  • scrapedAt

Input

Field Type Default Description
mode string searchProducts searchProducts / browseCategory / getProductDetails / getReviews
searchQueries array – Keywords to search, e.g. ["iPhone 15", "Samsung Galaxy"] (mode=searchProducts)
categoryUrls array – market.yandex.ru/catalog URLs to browse (mode=browseCategory)
productUrls array – Product URLs for detail fetch or product reviews (mode=getProductDetails, getReviews)
sellerUrls array – Seller storefront URLs for seller reviews (mode=getReviews)
maxItems integer 50 Records per query/URL (1–1000)
sortOrder string relevance relevance / priceAsc / priceDesc / rating / popularity
minPrice integer – Minimum price in RUB
maxPrice integer – Maximum price in RUB
minRating string any any / 3 / 3.5 / 4 / 4.5
reviewsSortOrder string newest newest / highestRating / lowestRating / mostHelpful
proxyConfiguration object RESIDENTIAL Yandex Market blocks plain datacenter traffic, so a residential proxy is set by default

Example: keyword search with price range

{
  "mode": "searchProducts",
  "searchQueries": ["iPhone 15", "Samsung Galaxy S24"],
  "minPrice": 50000,
  "maxPrice": 100000,
  "sortOrder": "priceAsc"
}

Example: browse a category

{
  "mode": "browseCategory",
  "categoryUrls": ["https://market.yandex.ru/catalog--smartfony/54726/list"],
  "maxItems": 100
}

Example: compare every seller's offer for one product

{
  "mode": "getProductDetails",
  "productUrls": ["https://market.yandex.ru/product--apple-iphone-15/1926025774"]
}

Example: newest reviews for a product

{
  "mode": "getReviews",
  "productUrls": ["https://market.yandex.ru/product--apple-iphone-15/1926025774"],
  "reviewsSortOrder": "newest",
  "maxItems": 100
}

Use cases

  • Price monitoring — track how a product's price moves across every seller offering it
  • Seller benchmarking — compare seller ratings, delivery times, and pricing side by side
  • Catalog research — pull a whole category's listings with specs and current prices
  • Sentiment tracking — gather product reviews with pros/cons to spot recurring complaints
  • Market-entry analysis — scope typical price ranges and seller competition before listing a product

FAQ

Does searchQueries accept Russian text? Yes — keywords can be in Russian or English; Yandex Market returns whatever matches on its own site.

How do I see every seller's price for one product, not just the lead offer? Use mode: "getProductDetails" with the product URL — the offers array on that record lists every competing seller's offer.

Why does a searchProducts record have an empty offers field? Search and category listing cards only show the lead seller; the full offer comparison is only fetched in getProductDetails mode, to avoid an extra request per card during a listing scan.

Can I get reviews for a seller instead of a product? Yes — pass a storefront URL in sellerUrls with mode: "getReviews"; those records carry reviewType: "seller" and seller identifying fields instead of product ones.

Do I need to configure the proxy myself? No — proxyConfiguration defaults to a residential proxy because Yandex Market blocks plain datacenter traffic; leave the default unless you have your own proxy group to use instead.

What happens if a run finds nothing? If no product, listing, or review records could be extracted for the whole run, the dataset gets a single informational record (type: "yandex_market_scraper_error") naming the mode and suggesting a residential proxy, instead of leaving the dataset silently empty.

Is this affiliated with Yandex? No. This actor reads Yandex Market's publicly accessible pages and is not affiliated with or endorsed by Yandex.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build cegVbRb8GCk1Tm8JZ. Documentation is regenerated from the default published build; private drafts are not included.