Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Yandex Market API page →
E-commerce & Marketplaces

Yandex Market API & Scraper

The Yandex Market API turns market.yandex.ru, one of Russia's largest marketplaces, into JSON in four actions.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

search returns the keyword result grid with the site's four sorts (popular, cheapest, most expensive, rating) and a price range; every row carries product_id, model_id and sku_id, the title, the price the buyer pays and the struck price with the discount, the row's own printed price for checking, stock count, rating, number of ratings and purchases, the selling shop, delivery dates and the site's own promoted-row flag. category/products lists one category by its id or URL, optionally with a keyword inside it, with the same sorts, price range and row fields. product/detail returns one product card in full: title, brand, the category path, every image, description, the specification table, current and struck price, stock, rating, the shop with its rating, order count and the public legal record the card prints, plus how many sellers offer the product and from which price. product/offers lists every seller offering one product with each offer's price, stock and delivery dates. Prices are in rubles for the Moscow delivery region. One ReefAPI key, the standard { ok, data, meta, error } envelope, no Yandex account.

Reference

What one Yandex Market product returns

Real results read on 2026-10-14. The price on every result row was compared with the price the row itself prints: 80 of 80 rows matched in each of three runs, and the product card's price matched the card's own structured data on 18 of 18 cards.

productwhat the page showsprice / was_priceother fields
CASIO G-Shock watch, search row7 213 ₽, struck price shown on the card7213 / 12521discount_percent 42, stock_quantity 226, rating 4.8 (49)
CASIO G-Shock GBM-2100A-4B, product card18 096 ₽ · 30 389 ₽ · –40%18096 / 30389offers_count 2, offers_min_price 18070
Same product, all sellerstwo offers, 18 070 ₽ and 23 157 ₽18070 and 23157seller name per offer

price is always what the buyer pays without an account; was_price is the struck price and is null when nothing is discounted. Prices change during the day: the same card read 18 070 and then 18 096 rubles a few minutes apart, so store the time you read them.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/yandex-market/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "casio g-shock"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "yandex-market",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3121.7,
    "record_count": 8,
    "bytes": 1836230,
    "cache_hit": false,
    "upstream_requests": 1,
    "charged_credits": 3,
    "version": "0.1.0",
    "request_id": "ffe9421d5c7844c7",
    "queue_ms": 1.4,
    "fetched_at": "2026-10-14T18:57:35.642Z"
  },
  "data": {
    "results": [
      {
        "position": 1,
        "product_id": "5043663052",
        "sku_id": "553235493",
        "model_id": "112364506",
        "offer_id": "I-mVwC-xpbyfE1cPaODccA",
        "title": "Наручные часы G-Shock",
        "url": "https://market.yandex.ru/card/casio-g-shock-ga-2100-1a1/5043663052",
        "image": "https://avatars.mds.yandex.net/get-mpic/1589815/img_id3986589323776303814.jpeg/orig",
        "price": 7213,
        "was_price": 12521,
        "discount_percent": 42,
        "discount_badge_percent": 42,
        "price_display": 7213,
        "currency": "RUB",
        "available": true,
        "stock_quantity": 31,
        "rating": 4.8,
        "rating_count": 49,
        "purchase_count": 192,
        "seller": {
          "name": "Time to Stars",
          "shop_id": "217033681",
          "business_id": "216634294",
          "supplier_id": "217033681"
        },
        "brand_id": "152967",
        "category_id": "91259",
        "is_express": false,
        "is_cross_border": false,
        "sponsored": false,
        "badges": [
          "Оригинал",
          "Скидка 42%",
          "Промокод 7 %"
        ],
        "delivery": [
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          }
        ]
      },
      {
        "position": 3,
        "product_id": "5043670581",
        "sku_id": "947340007",
        "model_id": "1779623231",
        "offer_id": "Jvwe0mj2SpmYv5vMY74WHw",
        "title": "Наручные часы G-Shock",
        "url": "https://market.yandex.ru/card/casio-g-shock-gba-900-7a/5043670581",
        "image": "https://avatars.mds.yandex.net/get-mpic/11621477/2a0000018c41438d70455899e29e0e294a4f/orig",
        "price": 10927,
        "was_price": 17915,
        "discount_percent": 39,
        "discount_badge_percent": 39,
        "price_display": 10927,
        "currency": "RUB",
        "available": true,
        "stock_quantity": 44,
        "rating": 4.7,
        "rating_count": 44,
        "purchase_count": 117,
        "seller": {
          "name": "Time to Stars",
          "shop_id": "216701236",
          "business_id": "216634294",
          "supplier_id": "216701236"
        },
        "brand_id": "152967",
        "category_id": "91259",
        "is_express": false,
        "is_cross_border": false,
        "sponsored": true,
        "badges": [
          "Ниже рынка",
          "Оригинал",
          "Скидка 39%"
        ],
        "delivery": [
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          }
        ]
      },
      {
        "position": 4,
        "product_id": "5043410507",
        "sku_id": "5205809094",
        "model_id": "1288674535",
        "offer_id": "KmAjW31gxo75eG2NMO8s1g",
        "title": "Наручные часы G-Shock",
        "url": "https://market.yandex.ru/card/casio-g-shock-gd-350-1e/5043410507",
        "image": "https://avatars.mds.yandex.net/get-mpic/11552111/2a0000018eb04eb0c582313ee55796ad3af4/orig",
        "price": 6348,
        "was_price": 11683,
        "discount_percent": 46,
        "discount_badge_percent": 46,
        "price_display": 6348,
        "currency": "RUB",
        "available": true,
        "stock_quantity": 49,
        "rating": 4.9,
        "rating_count": 14,
        "purchase_count": 27,
        "seller": {
          "name": "Time to Stars",
          "shop_id": "216657026",
          "business_id": "216634294",
          "supplier_id": "216657026"
        },
        "brand_id": "152967",
        "category_id": "91259",
        "is_express": false,
        "is_cross_border": false,
        "sponsored": false,
        "badges": [
          "Ниже рынка",
          "Оригинал",
          "Скидка 46%"
        ],
        "delivery": [
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          },
          {
            "type": "[trimmed-depth]",
            "date_from": "[trimmed-depth]",
            "date_to": "[trimmed-depth]"
          }
        ]
      }
    ],
    "count": 8,
    "page": 1,
    "total_results": 802,
    "total_pages": 30,
    "has_more": true,
    "sort_applied": "popular",
    "applied_filters": {},
    "carousel_rows_dropped": 0,
    "region": {
      "id": 213,
      "delivery_point": "Москва",
      "delivery_point_id": 213
    },
    "query": "casio g-shock"
  }
}
Actions

What the Yandex Market API does

ActionDescriptionConcrete use caseKey params
searchSearch Yandex Market by keyword: the result grid with the price the buyer pays and the struck price, stock, rating, seller, delivery dates and the promoted-row flag, sorted and price-filtered like the site.Pricing teams call search to search Yandex Market by keyword.query, page, sort, price_min, price_max
category/productsList one Yandex Market category (optionally with a keyword inside it), with the site's sorts and price filter; same row fields as search.Marketplace operators call category/products to list one Yandex Market category (optionally with a keyword inside it), with the site's sorts….category, query, page, sort, price_min, ...
product/detailOne Yandex Market product card by product number or URL: title, brand, category path, images, description, specifications, current and struck price, stock, rating, the selling shop with rating, order count and public legal record, and how many sellers offer it from which price.Catalog enrichment teams call product/detail to get one Yandex Market product card by product number or URL.product_id, url
product/offersEvery seller offering one Yandex Market product (by model_id): each offer's price and struck price, stock, seller, rating and delivery dates.Retail analysts call product/offers to get every seller offering one Yandex Market product (by model_id).model_id, sku_id
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/yandex-market/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"casio g-shock"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.yandex-market.search with {"query":"casio g-shock"}.
Use cases

Who uses this API and why

  • Track prices on Yandex Market: product/detail for your SKUs, with the paid price, struck price, stock and the cheapest competing offer.
  • Monitor competing sellers: product/offers lists every seller of a product with price, stock and delivery dates.
  • Map a category: category/products with the cheapest-first sort and a price range returns the market's price ladder.
  • Compare with Wildberries: the same keyword on both marketplaces gives paid and struck prices side by side.
  • Audit sellers: the card's shop block carries rating, order count and the public legal record.
FAQ

Questions developers ask before integrating

Which prices does it return?

The price the buyer pays (price), the struck price (was_price) with the computed discount_percent, and on result rows the price the row itself prints (price_display), so you can check the unit. On a product card any further price the card prints with its own label goes to other_prices. In our 2026-10-14 sample (22 product cards, 72 result rows on six listing pages) an anonymous Moscow visitor was shown no separate Yandex Pay, bank-card or Plus price, so none is returned; prices that appear only after signing in are not available.

Which region are the prices for?

Moscow (region 213), in rubles. Every response carries a region block with the region id the page was served for, so a different region can never pass unnoticed.

Why is the card's price sometimes higher than the cheapest offer?

The product card shows its default offer, which is not always the cheapest one. The card also returns offers_count and offers_min_price (for example a card at 18 096 rubles said 'all 2 offers from 18 070'), and product/offers lists every seller with its own price.

What does sponsored mean?

It is the site's own flag for promoted placements in the result grid. On 2026-10-14 about 66 of 80 sampled rows were promoted. Rows are kept and flagged, never dropped, so you can filter them yourself.

How many rows does one page return?

The first result page returns up to 8 or 9 grid rows and later pages up to 16 or 17, up to page 30. Each row carries its position on the page. total_results is the site's own figure; it is not comparable between a keyword search and a keyword-less category listing.

How do I get every seller of a product?

Take model_id and sku_id from a search row or product card and call product/offers. With sku_id the offers match the card's own 'all offers' block (cheapest 7 213 = card's 7 213 in our runs); without it you get every variant of the model.

What does the seller block contain?

On product/detail: the shop name, its ids, rating, number of ratings and orders, subscribers, months on Yandex Market, its status badge, and the public legal record the card prints (legal form, registered name, tax number and registration number). Result rows carry the shop name and ids.

How fast is it?

One request to the source per call in almost every case. Over two identical runs, every positive call succeeded; median times were 2.7 to 4.8 seconds for search, 1.6 to 1.7 seconds for category listings, 3.4 to 3.5 seconds for product cards and 1.4 to 1.9 seconds for seller lists, with the slowest calls around 8 seconds.

What is the Yandex Market API?

Yandex Market API is a ReefAPI endpoint group for russia's yandex market as json: keyword search, category listings, full product cards with the price the buyer pays and the struck price, stock, specifications and the selling shop, and every seller offering a product. It returns live JSON through POST requests under /yandex-market/v1.

Is the Yandex Market API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Yandex Market calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Yandex Market login or account?

No login to Yandex Market is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Yandex Market data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Yandex Market API use?

Yandex Market actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Yandex Market from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call yandex-market actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / yandex-market

Yandex Market

Russia's Yandex Market as JSON: keyword search, category listings, full product cards with the price the buyer pays and the struck price, stock, specifications and the selling shop, and every seller offering a product.

base /yandex-market/v14 endpoints
post/yandex-market/v1/category/products3 credits

List one Yandex Market category (optionally with a keyword inside it), with the site's sorts and price filter; same row fields as search.

ParameterAllowed / rangeDescription
categoryrequired—Category id (the number in a market.yandex.ru category URL, /catalog--<name>/<id>/list) or the category URL itself.
queryoptional—Optional keyword to search inside the category.
page = 1optional1–30Result page, 1-30 (the site stops at page 30).
sort = popularoptionalpopular · price_asc · price_desc · ratingResult order — the site's own four sorts.
price_minoptional1–Lowest price in rubles (applied to the price the buyer pays).
price_maxoptional1–Highest price in rubles (applied to the price the buyer pays).
Try in playground →
post/yandex-market/v1/product/detail3 credits

One Yandex Market product card by product number or URL: title, brand, category path, images, description, specifications, current and struck price, stock, rating, the selling shop with rating, order count and public legal record, and how many sellers offer it from which price.

ParameterAllowed / rangeDescription
product_idoptional—Yandex Market product number — the number at the end of a product URL (/card/<name>/<number>); search rows return it as product_id.
urloptional—Alternative to product_id: a market.yandex.ru product URL.
Try in playground →
post/yandex-market/v1/product/offers3 credits

Every seller offering one Yandex Market product (by model_id): each offer's price and struck price, stock, seller, rating and delivery dates.

ParameterAllowed / rangeDescription
model_idrequired—Model id shared by every seller of one product — search rows and product/detail return it as model_id.
sku_idoptional—Optional: narrow the offers to one variant (sku_id from a row or the card).
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.