Prom.ua API & Scraper
Prom.ua is Ukraine's large multi-seller marketplace: thousands of shops list their own offers, so the same item often appears from many sellers at different prices.
🤖 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.
This API reads it as JSON. `search` takes Ukrainian, Russian or Latin words and/or a category id with prom.ua's own filters (price range, in stock, discounted, wholesale, pay in parts, Prom-payment, free Smart delivery, delivery method, the city the item ships from, 4+ star rating, condition, brand, one seller) and four sort orders. Each row is one seller's offer: the price prom.ua prints, the old price, wholesale tiers with minimum quantities, availability, rating and review count, the seller (name, city, positive-review share and count) and the group of offers for the same item from other sellers with their lowest and highest price. `product` returns one offer in full: description, images, every attribute, category path, the seller's phone, website and return terms, delivery options with prices and payment options. `reviews`, `seller`, `seller_reviews` and `categories` cover product reviews, shop profiles with their catalogue, shop reviews and the category tree.
What a Prom.ua field actually contains
Fields that read differently from how they look. Every row was measured against live prom.ua pages on 2026-10-14.
| Field | What it holds |
|---|---|
| product_id | Prom.ua's id of one seller's offer, the number after /p in a product address (prom.ua/ua/p3026527730-...). Pass it unchanged to product and reviews; a product URL works too. Search to product returned the same id, price and seller on 16 of 16 rows. |
| price, price_old | price is the price prom.ua prints in bold; price_old is the struck price, present only when the seller runs a discount. price matched the product page on 19 of 20 audited products and the search row on 20 of 20; on the 20th the page did not load in that minute. |
| wholesale_prices | The seller's wholesale (опт) tiers: a price and the minimum quantity for it, for example 47,503 UAH from 3 pieces on a phone whose retail price is 48,559. The page's structured data lists this wholesale tier as its first offer, so it disagreed with the printed price on 12 of 20 products; this API keeps the two apart. |
| price_is_from, price_on_request | price_is_from is true when prom.ua prints "від" (from) before the price. price_on_request is true when the seller shows "Ціну уточнюйте" (ask for the price); price is then null, never 0. |
| availability, availability_text, available_from | availability is prom.ua's code (avail, order = made to order, not_avail, waiting); availability_text is what the page prints ("Готово до відправки", "В наявності", "Під замовлення"). For made-to-order items available_from is the ship date the page shows (2026-10-31 on one T-shirt). Prom.ua publishes availability, not stock quantities. |
| model | The same item offered by other sellers: offers_count, sellers_count, the lowest and highest price among them and their product ids, plus the reviews of the item across all sellers. One iPhone 17 256GB had 21 offers from 21 sellers between 44,239 and 63,240 UAH. |
| seller | The shop selling this offer: id, name, city, positive-review percent and review count; product adds the phone, website, years on prom.ua, last activity, orders delivered and return days, as printed on the public product page. |
| region (filter) | Where the item ships from, which can differ from the seller's own city: for region=lviv the seller was based in Lviv on 4 of 48 rows, but all 6 checked products shipped from Lviv. |
| rating_4_plus (filter) | Prom.ua applies it to the item's rating across all sellers (model.rating), so an offer with no reviews of its own can match when other sellers' reviews of the same item average 4 or more. |
| total | Prom.ua's count is approximate: the same search returned 8,945 to 8,985 on consecutive calls, and it widens some searches with translations and synonyms (3,300 vs about 4,550 for "кавоварка рожкова"); query_expansion says when that happened. |
All prices are Ukrainian hryvnia (UAH) as the seller set them. Prices, availability and delivery options were identical read from inside and outside Ukraine (6 of 6 products). Ukrainian is the default language; lang=ru returns names and labels in Russian.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/prom-ua/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "кавоварка рожкова",
"in_stock": true
}
}{
"ok": true,
"meta": {
"api": "prom-ua",
"endpoint": "search",
"mode": "live",
"latency_ms": 2797.8,
"record_count": 48,
"bytes": 94508,
"cache_hit": false,
"total": 1422,
"currency": "UAH",
"pagination": {
"offset": 0,
"next_offset": 48,
"has_more": true
},
"upstream_requests": 1,
"charged_credits": 2,
"version": "0.1.0",
"request_id": "8ea12b25dc4c4db7",
"queue_ms": 1.2,
"fetched_at": "2026-10-14T18:57:32.830Z"
},
"data": {
"query": {
"in_stock": true,
"sort": "relevance",
"query": "кавоварка рожкова",
"page_size": 48,
"offset": 0,
"lang": "uk"
},
"total": 1422,
"total_is_approximate": true,
"offset": 0,
"page_size": 48,
"next_offset": 48,
"has_more": true,
"corrected_query": null,
"query_expansion": null,
"category": null,
"region": null,
"results": [
{
"product_id": "3166443886",
"name": "Міні кавоварка для дому, Найкраща кавоварка еспресо для дому, Кавоварка капучіно для дому, Рожкові кавоварки для дому, OKD",
"url": "https://prom.ua/ua/p3166443886-luchshaya-kofevarka-espresso.html",
"image": "https://images.prom.ua/7650010499_w640_h640_luchshaya-kofevarka-espresso.jpg",
"sku": "150783-W892",
"price": 2234.88,
"price_old": 2304,
"discount_pct": 3,
"price_is_from": false,
"price_on_request": false,
"price_note": null,
"currency": "UAH",
"price_usd_source": 51.11,
"unit": "шт.",
"wholesale_prices": [],
"selling_type": "retail",
"discount_ends": null,
"pay_in_parts_monthly": 223,
"availability": "avail",
"availability_text": "Готово до відправки",
"in_stock": true,
"ready_to_ship": true,
"stock_ending": false,
"available_from": null,
"rating": null,
"review_count": 0,
"brand": "Rainberg",
"brand_id": "268104",
"category_id": "638",
"category_ids": [
"50",
"6",
"63004"
],
"seller": {
"seller_id": "4164819",
"name": "Talira — сучасний онлайн-магазин. Відправка Новою Поштою по Україні.",
"url": "https://prom.ua/ua/c4164819-talira-suchasnij-onlajn.html",
"city": "м. Одеса",
"country": "Україна",
"positive_pct": 92,
"review_count": 335,
"top_seller": true,
"return_days": 14,
"non_returnable": true
},
"model": null,
"prosale": true,
"weak_match": false,
"is_adult": false
},
{
"product_id": "3118552932",
"name": "Кавоварка рожкова LIBERTON LCM-2209",
"url": "https://prom.ua/ua/p3118552932-kavovarka-rozhkova-liberton.html",
"image": "https://images.prom.ua/7548042931_w640_h640_kavovarka-rozhkova-liberton.jpg",
"sku": "LCM-2209",
"price": 4073,
"price_old": null,
"discount_pct": null,
"price_is_from": false,
"price_on_request": false,
"price_note": null,
"currency": "UAH",
"price_usd_source": 90.35,
"unit": "шт.",
"wholesale_prices": [],
"selling_type": "retail",
"discount_ends": null,
"pay_in_parts_monthly": 679,
"availability": "avail",
"availability_text": "В наявності",
"in_stock": true,
"ready_to_ship": true,
"stock_ending": false,
"available_from": null,
"rating": null,
"review_count": 0,
"brand": "Liberton",
"brand_id": "3484",
"category_id": "638",
"category_ids": [
"50",
"6",
"63004"
],
"seller": {
"seller_id": "3862645",
"name": "Смарт Техніка",
"url": "https://prom.ua/ua/c3862645-smart-tehnika.html",
"city": "м. Дніпро",
"country": "Україна",
"positive_pct": 92,
"review_count": 97,
"top_seller": true,
"return_days": 14,
"non_returnable": false
},
"model": null,
"prosale": true,
"weak_match": false,
"is_adult": false
},
{
"product_id": "1125367521",
"name": "Кавомашина кавоварка рожкова еспресо (850 Вт) GRUNHELM GEC17 15 бар Напівавтомат Система \"Капучіно\" 6902019000177",
"url": "https://prom.ua/ua/p1125367521-kofemashina-kofevarka-espresso.html",
"image": "https://images.prom.ua/6415388156_w640_h640_kofemashina-kofevarka-espresso.jpg",
"sku": "94629",
"price": 2889,
"price_old": 4514,
"discount_pct": 36,
"price_is_from": false,
"price_on_request": false,
"price_note": null,
"currency": "UAH",
"price_usd_source": 98.12,
"unit": "шт.",
"wholesale_prices": [],
"selling_type": "retail",
"discount_ends": "ще 7 днів",
"pay_in_parts_monthly": 482,
"availability": "avail",
"availability_text": "Готово до відправки",
"in_stock": true,
"ready_to_ship": true,
"stock_ending": false,
"available_from": null,
"rating": 4,
"review_count": 1,
"brand": "GRUNHELM",
"brand_id": "2347",
"category_id": "638",
"category_ids": [
"50",
"6",
"63004"
],
"seller": {
"seller_id": "2675796",
"name": "🔴WATTRA.COM.UA - справа техніки...",
"url": "https://prom.ua/ua/c2675796-wattracomua-delo-tehniki.html",
"city": "м. Київ",
"country": "Україна",
"positive_pct": 98,
"review_count": 3503,
"top_seller": true,
"return_days": 14,
"non_returnable": false
},
"model": {
"model_id": "3796113625421619607",
"rating": 4,
"review_count": 1,
"offers_count": null,
"sellers_count": null,
"min_price": null,
"max_price": null,
"offer_ids": []
},
"prosale": true,
"weak_match": false,
"is_adult": false
}
]
}
}What the Prom.ua API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search prom.ua by keyword (Ukrainian, Russian or Latin) and/or category with the site's own filters: price range, in stock, discounted, wholesale, pay in parts, Prom-payment, free Smart delivery, delivery method, seller city/region, 4+ star reviews, condition, brand, one seller, and 4 sort orders. Each row is one seller's offer: price as printed, old price, wholesale tiers, availability, rating and review count, the seller (name, city, positive-review % and count) and the model group the same item belongs to across sellers. Needs `query` or `category`. | Pricing teams call search to search prom.ua by keyword (Ukrainian, Russian or Latin) and/or category with the site's own f…. | query, category, seller_id, min_price, max_price, ... |
| product | Full prom.ua product by product_id or URL: name, description, images, video, brand, GTIN/MPN when the seller filled them, price as printed, old price, discount, 'from' price, wholesale tiers with minimum quantities, minimum order, instalment price, availability, rating and review count, every attribute, category path, warranty, the seller (name, city, phone, website, years on prom.ua, positive-review %, orders delivered, return terms), delivery options with their prices and payment options, the model group across sellers (offer count, seller count, min/max price) and the item's variations. | Marketplace operators call product to get full prom.ua product by product_id or URL. | product_id, url, lang |
| reviews | Buyer reviews of a prom.ua product: star rating, title, text, pros, cons, date, author as prom.ua shows it, verified-purchase flag, likes, photos, video, the seller it was bought from and the comment thread (seller replies flagged), plus the product's total review count and star distribution. | Catalog enrichment teams call reviews to get buyer reviews of a prom.ua product. | product_id, sort, sentiment, with_media, verified_only, ... |
| seller | A prom.ua seller (shop) profile and its product catalogue: name, phone, website, city, years on prom.ua, last activity, orders delivered, positive-review %, review counts and star distribution, the review tags buyers chose (fast dispatch, polite seller...), legal name and registry code when the seller published them, opening hours, return policy, and one page of its products with the same filters and rows as search. | Retail analysts call seller to get a prom.ua seller (shop) profile and its product catalogue. | seller_id, min_price, max_price, in_stock, discounted, ... |
| seller_reviews | Reviews of a prom.ua seller (shop): rating, text, date, author, the tags the buyer ticked, the products ordered, photos, the seller's public response and comments. | Pricing teams call seller_reviews to get reviews of a prom.ua seller (shop). | seller_id, sort, sentiment, with_text_only, page, ... |
| categories | Prom.ua category tree: without category_id the top-level departments; with it that category's name, alias, URL, its path from the root and its direct sub-categories. Ids work as `category` in search. | Marketplace operators call categories to get prom.ua category tree. | category_id, lang |
Call search from your stack
curl -X POST https://api.reefapi.com/prom-ua/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"кавоварка рожкова","in_stock":true}'import requests
r = requests.post(
"https://api.reefapi.com/prom-ua/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "кавоварка рожкова",
"in_stock": true
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/prom-ua/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "кавоварка рожкова",
"in_stock": true
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.prom-ua.search with {"query":"кавоварка рожкова","in_stock":true}.Who uses this API and why
- Track prices and discounts of Ukrainian sellers on prom.ua for a list of products.
- Compare every seller offering the same item, from the lowest to the highest price.
- Find wholesale suppliers on prom.ua with their price tiers and minimum quantities.
- Score Ukrainian shops by positive reviews, orders delivered and review tags before working with them.
- Collect product reviews and shop reviews from prom.ua for sentiment and quality monitoring.
Questions developers ask before integrating
Do I need a prom.ua account?
No. Everything is read logged out, and you call reefapi.com from anywhere.
Is a row a product or an offer?
An offer: one seller's listing with its own price and availability. The same item from other sellers is grouped under model, with the number of offers, the lowest and highest price and the other offers' ids.
Which price should I use?
price is what prom.ua shows as the price. price_old is the price before the seller's discount. wholesale_prices lists cheaper prices for larger quantities with the minimum quantity for each.
Which search filters are there?
Price range, in stock, discounted, wholesale, pay in parts, Prom-payment, free Smart delivery, delivery method, ship-from city, 4+ stars, reviews with photos, condition, brand, category and one seller. Each was checked against the unfiltered count in the same run: "кавоварка рожкова" 3,300 → 2,000-5,000 UAH 1,662, in stock 1,391, discounted 1,264, wholesale 530, ships from Kyiv 1,555, from Lviv 299, used 27, Nova Poshta 3,289, Ukrposhta 1,620, pickup 998.
How many results can I page through?
Up to 60 rows per call and about 9,000 results per search, which is where prom.ua itself stops serving results. Pass next_offset as offset to continue.
Do you return the seller's phone?
Yes, product and seller return the shop's phone, website and city exactly as prom.ua prints them on the public page, along with the shop's rating and review counts.
Why do price sorts return weak_match rows?
When sorted by price, prom.ua lists the close matches first and then looser ones; the API returns both and marks the second group with weak_match: true.
What is not returned?
Stock quantities (prom.ua shows availability, not counts), delivery dates for a city, questions and answers, and prom.ua's paid ad block.
What is the Prom.ua API?
Prom.ua API is a ReefAPI endpoint group for ukraine's multi-seller marketplace: price, old price, wholesale tiers, availability, seller with rating, city and phone, delivery and payment options, product and seller reviews. It returns live JSON through POST requests under /prom-ua/v1.
Is the Prom.ua API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Prom.ua calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Prom.ua login or account?
No login to Prom.ua 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 Prom.ua 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 Prom.ua API use?
Prom.ua actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Prom.ua from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call prom-ua actions with the same key, credit pool and JSON envelope used by normal REST requests.