# Rozetka API — search Ukraine's largest online store and marketplace and read products with UAH price, old price, card price, stock, seller, specs and reviews

> Search Rozetka products by keyword with the site's own filters: category id, seller (Rozetka itself or marketplace sellers), price range in UAH, brand, delivery (ready to ship / pickup in Rozetka stores), Smart subscription, and price sort. Each row: product id, title, URL, brand, price and crossed-out price in UAH, discount, stock state, who sells it (Rozetka or the marketplace seller's name and star rating), condition, category, short specs, image, rating, review and question counts. Plus Rozetka's own total, the brands and categories of the result set.
> ReefAPI engine `rozetka` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/rozetka/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/rozetka/v1/search — 3 credits
Search Rozetka products by keyword with the site's own filters: category id, seller (Rozetka itself or marketplace sellers), price range in UAH, brand, delivery (ready to ship / pickup in Rozetka stores), Smart subscription, and price sort. Each row: product id, title, URL, brand, price and crossed-out price in UAH, discount, stock state, who sells it (Rozetka or the marketplace seller's name and star rating), condition, category, short specs, image, rating, review and question counts. Plus Rozetka's own total, the brands and categories of the result set.

**Parameters:**
- `query` (string, required) — Search words as typed into Rozetka's search box: Ukrainian, Russian or English, model numbers. Full-width characters are normalised. Rozetka would turn a broad word such as 'ноутбук' into a category page; this action always returns the product search itself.
- `category` (string, optional) — Rozetka category id (digits) from this action's `categories` list or a row's category.id, e.g. 146229 (phone cases). A category that does not occur in the search is rejected with the ones that do.
- `seller` (enum, optional) — Only products sold by Rozetka itself, or only products of marketplace sellers. [one of: rozetka, marketplace]
- `min_price` (integer, optional) — Lowest price in UAH.
- `max_price` (integer, optional) — Highest price in UAH.
- `brand` (string, optional) — Brand slug from this action's `brands` list (e.g. apple, samsung). Several brands comma-separated match any of them (samsung,lg).
- `delivery` (enum, optional) — Delivery filter Rozetka offers on search. [one of: ready_to_ship, rozetka_store_pickup]
- `smart_subscription` (boolean, optional, default false) — true = only products covered by the Rozetka Smart subscription (free delivery).
- `sort` (enum, optional, default "relevance") — Result order. Rozetka's search applies only these three. [one of: relevance, price_asc, price_desc]
- `page` (integer, optional, default 1) — Result page, 60 rows each. Rozetka serves at most 1,000 rows (17 pages) per search.
- `lang` (enum, optional, default "ua") — Language of titles, category names and characteristic labels: Ukrainian (default) or Russian — Rozetka publishes both. [one of: ua, ru]

**Returns:** results[]{product_id, title, url, brand, brand_slug, price, old_price, discount_pct, currency (UAH), source_usd_price, sell_status, in_stock, condition, sold_by (rozetka|marketplace), seller_id, merchant_id, seller_name, seller_stars, seller_url, category{id,title,url}, category_ids[], group_id, short_specs, image, smart_subscription, bonus_uah, rating{average, rated_count, review_count, question_count, distribution}} + total, total_reachable, pages, page, has_more, page_clamped, brands[]{slug,name,count}, categories[]{id,title,count,parent_id}

**Example request body:**
```json
{
  "query": "навушники",
  "seller": "rozetka"
}
```

### POST https://api.reefapi.com/rozetka/v1/product — 3 credits
Full Rozetka product by product_id: title, brand, manufacturer code, current and crossed-out price in UAH, the Rozetka Card price when one is shown, stock state, pre-order flag, condition (new / refurbished / markdown), the seller (Rozetka or the marketplace seller's name and rating), category path, characteristics, description, warranty and return terms, colour/size variants each with its own price and stock, images and the rating with its 1-5 distribution.

**Parameters:**
- `product_id` (string, required) — Rozetka product id exactly as a search row returns it (digits, e.g. 621368348). A rozetka.com.ua/…/p621368348/ product URL is accepted too.
- `lang` (enum, optional, default "ua") — Language of titles, category names and characteristic labels: Ukrainian (default) or Russian — Rozetka publishes both. [one of: ua, ru]

**Returns:** product{product_id, title, url, brand, brand_slug, brand_id, article, price, old_price, discount_pct, source_discount_pct, currency, card_price{price, label}, source_usd_price, sell_status, in_stock, status, is_preorder, condition, is_markdown, cart_quantity, seller{seller_id, merchant_id, sold_by, name, rank, votes, logo}, category{id,title,url}, category_ids[], breadcrumbs[], group_id, short_specs, characteristics[]{group, name, key, values[]}, description, warranty[], variants[]{product_id, is_current, title, url, options{}, price, old_price, sell_status, in_stock, seller_id, condition, image}, smart_subscription, images[], rating{average, rated_count, review_count, question_count, distribution}}

**Example request body:**
```json
{
  "product_id": "621368348"
}
```

### POST https://api.reefapi.com/rozetka/v1/reviews — 2 credits
Buyer reviews (or buyer questions) of a Rozetka product: rating 1-5, text, pros, cons, verified-buyer flag, date, helpful votes, photo/video links and the seller's or Rozetka's replies. Order by newest, verified buyers first, photo/video reviews first, or most helpful; filter by star rating. 36 per page. Plus the product's review total and 1-5 distribution.

**Parameters:**
- `product_id` (string, required) — Rozetka product id exactly as a search row returns it (digits, e.g. 621368348). A rozetka.com.ua/…/p621368348/ product URL is accepted too.
- `type` (enum, optional, default "reviews") — Reviews (відгуки) or buyer questions (питання). [one of: reviews, questions]
- `sort` (enum, optional, default "newest") — Order (Rozetka's own options). These reorder; they do not remove reviews. [one of: newest, from_buyers, with_media, most_helpful]
- `rating` (integer, optional) — Only reviews with this star rating (1-5).
- `page` (integer, optional, default 1) — Review page. Rozetka serves a fixed 36 reviews per page (it ignores any other page size).
- `lang` (enum, optional, default "ua") — Language of titles, category names and characteristic labels: Ukrainian (default) or Russian — Rozetka publishes both. [one of: ua, ru]

**Returns:** reviews[]{review_id, type, author, rating, text, pros, cons, from_buyer, date, helpful_yes, helpful_no, attachments[], replies[]{author, text, is_seller, date}, seller_id} + summary{review_count, buyer_review_count, average, average_exact, rated_count, distribution, question_count}, page, page_size (36), pages, has_more, page_clamped

**Example request body:**
```json
{
  "product_id": "621368348"
}
```

### POST https://api.reefapi.com/rozetka/v1/prices — 3 credits
Price, stock, seller type and rating for up to 60 Rozetka products in ONE call (Rozetka's own multi-product endpoint): current and crossed-out price in UAH, discount, stock state, sold by Rozetka or a marketplace seller (with the seller's name), category, rating and review count. Ids Rozetka does not know are listed in not_found.

**Parameters:**
- `product_ids` (string, required) — Up to 60 product ids, comma-separated or as a list, exactly as search rows return them.
- `lang` (enum, optional, default "ua") — Language of titles, category names and characteristic labels: Ukrainian (default) or Russian — Rozetka publishes both. [one of: ua, ru]

**Returns:** products[]{product_id, title, url, price, old_price, discount_pct, currency, sell_status, in_stock, sold_by, seller_id, merchant_id, seller_name, seller_stars, seller_url, category, rating{}} + not_found[], requested

**Example request body:**
```json
{
  "product_ids": "621368348,409254135"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=rozetka
- Human docs page: https://reefapi.com/docs/rozetka
- Overview page: https://reefapi.com/rozetka-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
