Prom APIprom.ua ↗
Access prom.ua product listings, seller profiles, reviews, contacts, and category trees via 7 structured JSON endpoints. Built for Ukrainian marketplace data.
What is the Prom API?
The prom.ua API exposes 7 endpoints covering product search, category browsing, product details, and seller intelligence from Ukraine's largest B2C marketplace. Using search_products you can query by keyword with sorting by rating or price and get back structured results including numeric price, availability, and seller URL. Separate endpoints cover the full category tree, seller contact details, and paginated seller reviews.
curl -X GET 'https://api.parse.bot/scraper/6adfcf09-7be6-4b5a-8ca2-21f98362939e/search_products?page=1&sort=rating&search_term=laptop' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace prom-ua-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.prom_ua_api import Prom, Sort, Product, SellerProfile, Category
prom = Prom()
# Search products with sorting
for product in prom.products.search(search_term="laptop", sort=Sort.PRICE_ASC, limit=5):
print(product.name, product.price, product.availability)
# Get full details for a product
detail = product.details()
print(detail.description, detail.is_available)
if detail.seller:
print(detail.seller.name, detail.seller.slug)
for char in detail.characteristics:
print(char.name, char.value)
# Browse categories
for cat in prom.categories.list(limit=3):
print(cat.name, cat.url)
# Get products from a specific category
beauty = prom.category(url="https://prom.ua/ua/Krasota-i-zdorove")
for item in beauty.products(limit=5):
print(item.name, item.price_numeric, item.seller_name)
# Get seller profile and reviews
seller = prom.sellerprofiles.get(seller_url="https://prom.ua/ua/c2807900-style-club.html")
print(seller.name, seller.total_reviews)
# Get seller reviews
for review in seller.reviews(limit=5):
print(review.author_name, review.rating, review.date_created)
for op in review.ordered_products:
print(op.name_for_catalog)
# Get seller contacts
contacts = seller.contacts()
print(contacts.contact_person, contacts.contact_email, contacts.address_text)
print(contacts.opinion_stats.opinion_positive_percent, contacts.opinion_stats.opinion_total)
for phone in contacts.phones:
print(phone.number, phone.description)
Full-text search over prom.ua products. Returns paginated results with price, seller, and availability info. Sorting options include rating and price (ascending/descending). Each product includes a URL suitable for get_product_details and a seller_url suitable for get_seller_profile.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| search_termrequired | string | Search query keyword. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"products": "array of product objects with id, name, price, price_numeric, url, image_url, seller_name, seller_url, availability",
"search_term": "string, the search query used",
"total_count": "integer or null, total number of matching products"
},
"sample": {
"data": {
"page": 1,
"products": [
{
"id": "1926321559",
"url": "https://prom.ua/ua/p1926321559-stolik-transformer-dlya.html",
"name": "Столик трансформер для ноутбука Laptop Table T8",
"price": "765₴",
"image_url": "https://images.prom.ua/4524672451_w200_h200_stolik-transformer-dlya.jpg",
"seller_url": "https://prom.ua/ua/c3525234-kozak-market-magazin.html",
"seller_name": "Kozak Hookah",
"availability": "В наявності",
"price_numeric": "765"
}
],
"search_term": "laptop",
"total_count": null
},
"status": "success"
}
}About the Prom API
Product Search and Category Browsing
search_products accepts a required search_term and optional sort (rating, price, -price) and page parameters. Each result in the products array includes id, name, price, price_numeric, url, image_url, seller_name, seller_url, and availability. The total_count field gives the full result count when available. get_category_products works similarly but takes a category_url — either a full URL or path slug — and returns the same product shape. Invalid category slugs silently redirect and return empty results, so use get_category_tree first to retrieve confirmed valid category URLs and their nested subcategories.
Product Details
get_product_details takes a single product_url and returns a richer payload: characteristics (an array of name/value pairs), images (all product images), description, currency, is_available, and a seller object containing id, name, and slug. This is the only endpoint that exposes product characteristics and the full image set.
Seller Profiles, Reviews, and Contacts
get_seller_profile returns top-level seller reputation data — total_reviews and positive_reviews_percent — given a seller URL. For structured contact data, get_seller_contacts accepts a company_id and returns phones (array with number and description), contactEmail, addressText, webSiteUrl, contactPerson, and opinionStats. get_seller_reviews paginates 10 reviews per page using the same company_id; each review object includes rating, commentWork, dateCreated, authorName, and orderedProducts. The has_next_page boolean simplifies loop termination when crawling all reviews.
The Prom API is a managed, monitored endpoint for prom.ua — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when prom.ua changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official prom.ua API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price comparison tool across prom.ua categories using
get_category_productswith paginated results andprice_numericfor sorting. - Monitor competitor seller reputations by polling
get_seller_profileandget_seller_reviewsfor changes inpositive_reviews_percent. - Aggregate structured product characteristics from
get_product_detailsto populate a product database with specs and images. - Discover the full prom.ua taxonomy via
get_category_treeto map Ukrainian consumer goods categories for localization projects. - Extract seller contact information — phones, email, address — via
get_seller_contactsfor B2B lead generation within a vertical. - Track keyword-based product availability using
search_productswithavailabilityfield to detect out-of-stock trends.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does prom.ua offer an official developer API?+
What does `get_seller_reviews` return and how do I paginate through all reviews?+
get_seller_reviews requires a company_id (available from get_seller_profile or get_seller_contacts) and returns 10 reviews per page. Each review object includes id, authorName, rating, commentWork, dateCreated, and orderedProducts. Check the has_next_page boolean to determine whether to increment the page parameter and fetch the next batch.Are product prices always returned in Ukrainian hryvnia?+
currency field in get_product_details reflects whatever currency symbol the listing uses, but the majority of prom.ua listings are priced in UAH. The price field is a formatted string; use price_numeric from search and category endpoints when you need a number for arithmetic or sorting.Does the API cover seller product catalogs or inventory counts?+
is_available (boolean) and listing-level availability text, but does not expose full seller catalog listings or stock quantities. You can fork this API on Parse and revise it to add an endpoint that traverses a seller's storefront pages and returns their listed products.What happens if I pass an invalid category URL to `get_category_products`?+
products array. Use get_category_tree to retrieve the verified list of category url values before calling get_category_products.