x-kom APIx-kom.pl ↗
Access x-kom.pl product data via API: search, category browsing, product details, reviews, Q&A, promotions, flash deals, and store locations.
What is the x-kom API?
The x-kom.pl API exposes 9 endpoints covering the full product catalog of one of Poland's largest electronics retailers. You can retrieve structured product data — including prices in PLN, specifications, photos, and availability — via endpoints like get_product_details, search_products, and get_hot_shot. Customer reviews with star ratings, Q&A threads, active promotions, and physical store locations with geo-coordinates are all accessible without any account or authentication on your end.
curl -X GET 'https://api.parse.bot/scraper/fe6e6b4a-c5c7-4687-86dd-fdc23768d1e3/search_products?page=1&sort=AvailabilityStatus+desc%2CAccuracyB+desc&limit=10&query=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 x-kom-pl-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.x_kom.pl_api import XKom, Sort
xkom = XKom()
# Search for laptops sorted by price ascending
for item in xkom.productsummaries.search(query="laptop", sort=Sort.PRICE_ASC, limit=5):
print(item.name, item.price, item.producer.name)
# Navigate to full product details
full = item.details()
print(full.product_description, full.availability_status)
# Read reviews for this product
for review in full.reviews.list(limit=3):
print(review.author_name, review.rating, review.body)
break
# Browse current promotions
for promo in xkom.productsummaries.promotions(limit=3):
print(promo.name, promo.price, promo.old_price)
# Get today's flash deal
deal = xkom.hotshots.current()
print(deal.price, deal.old_price, deal.promotion_gain_text, deal.is_active)
print(deal.product.name, deal.product.price)
# List category groups
for group in xkom.groups.list():
print(group.name, group.icon_name)
for cat in group.categories:
print(cat.name_singular, cat.products_count)
break
# Find stores
for store in xkom.stores.list(limit=3):
print(store.name, store.address.city, store.geo_location.latitude)
Full-text search over x-kom.pl product catalog. Returns paginated product listings matching the query keyword. Each result includes pricing, producer, category, ratings, and availability. Paginates via integer page counter; server-side ordering via the sort param.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| sort | string | Sort order for results. |
| limit | integer | Results per page (max 30) |
| queryrequired | string | Search keyword (e.g. 'laptop', 'mysz gamingowa') |
{
"type": "object",
"fields": {
"Page": "integer current page number",
"Items": "array of product summary objects with Id, Name, Price, Producer, Category, MainPhoto, CommentsRating, CommentsCount, FeatureSummary, AvailabilityStatus, WebUrl",
"Groups": "array of product group/category facets with Id, Name, ProductCount",
"TotalCount": "integer total number of matching products",
"TotalPages": "integer total number of pages"
},
"sample": {
"data": {
"Page": 1,
"Items": [
{
"Id": "1370452",
"Name": "MacBook Pro M5/32GB/1TB/Mac OS Srebrny 10R GPU",
"Price": 10999,
"WebUrl": "https://www.x-kom.pl/p/1370452-laptop-14-apple-macbook-pro-m5-32gb-1tb-mac-os-srebrny-10r-gpu.html",
"Category": {
"Id": "2980",
"NameSingular": "Laptop 14\""
},
"OldPrice": null,
"Producer": {
"Id": "357",
"Name": "Apple"
},
"MainPhoto": {
"Url": "https://cdn.x-kom.pl/i/setup/images/prod/big/product-large,,2025/10/pr_2025_10_16_10_25_57_444_00.jpg"
},
"CommentsCount": 28,
"CommentsRating": 6,
"FeatureSummary": [
"Procesor: Apple M5",
"Pamięć: 32 GB"
],
"AvailabilityStatus": "Available"
}
],
"Groups": [
{
"Id": "2",
"Name": "Laptopy i komputery",
"ProductCount": 8992
}
],
"TotalCount": 9094,
"TotalPages": 304
},
"status": "success"
}
}About the x-kom API
Product Search and Category Browsing
The search_products endpoint accepts a query string (e.g. 'laptop' or 'mysz gamingowa') and returns paginated results with TotalCount, TotalPages, and an Items array. Each item includes Id, Name, Price, Producer, Category, and MainPhoto. Results can be sorted and paginated with sort, page, and limit parameters. The get_category_products endpoint works similarly but filters by group_id (e.g. '4' for smartphones) or category_id (e.g. '159' for laptops), and both endpoints return Groups facets that show product counts per sub-category.
Product Details, Reviews, and Q&A
get_product_details returns the full product record for a given product_id, including a Photos array with Url and ThumbnailUrl fields, a Features array of specification objects, an HTML ProductDescription, and the current Price in PLN. If the product ID does not exist, the endpoint returns a stale_input signal with kind input_not_found. get_product_reviews returns paginated review Items with AuthorName, Body, Rating, RatingFivePoints, and CreateTime, plus a Statistics object covering rating distributions. get_product_questions returns customer Q&A threads with each question's Body, Author, Answers, and a Statistics block counting questions with and without answers.
Promotions and Flash Deals
get_hot_shot returns the currently active "Gorący strzał" daily flash deal, including OldPrice, the discounted Price, PromotionEnd as an ISO datetime, and a full nested Product object. get_promotions returns a paginated list of all products currently in promotion, structured identically to the category endpoint response. Both endpoints are useful for price-tracking and deal-alert applications.
Categories and Physical Stores
get_categories returns the full category tree: an array of groups, each containing a Categories array with Id, NameSingular, NamePlural, and ProductsCount. This is useful for mapping x-kom's taxonomy before issuing category-level queries. get_stores returns each physical salon with Name, Email, a structured Address object (Lines, City, PostCode, Country), OpenHours strings, and a GeoLocation object with Latitude and Longitude.
The x-kom API is a managed, monitored endpoint for x-kom.pl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when x-kom.pl 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 x-kom.pl 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?+
- Track flash deal prices over time using
get_hot_shotfieldsPrice,OldPrice, andPromotionEnd - Build a price comparison tool by querying
search_productsorget_product_detailsfor PLN prices across product categories - Aggregate and analyze customer sentiment from
get_product_reviewsusingRating,RatingFivePoints, andStatisticsdistributions - Populate a category navigator by pulling the full taxonomy tree from
get_categoriesincluding per-categoryProductsCount - Monitor active promotions inventory by paginating through
get_promotionsand recording product IDs and prices - Build a store locator by combining
get_storesGeoLocationcoordinates withAddressandOpenHoursdata - Answer pre-purchase questions programmatically by surfacing
get_product_questionsanswers alongside product specs
| 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 x-kom.pl have an official public developer API?+
What does `get_product_details` return when a product ID doesn't exist?+
product_id does not correspond to an active product, the endpoint returns a stale_input response with kind set to input_not_found rather than throwing an HTTP error. Your integration should check for this field before processing the response body.Does the API cover product stock levels or warehouse availability?+
get_product_details endpoint includes availability data within the product record, but real-time stock quantities per warehouse or per SKU variant are not broken out as discrete response fields. You can fork this API on Parse and revise it to add an endpoint that targets more granular inventory data if your use case requires it.Is historical pricing data accessible through this API?+
Price in product listings, OldPrice and Price in get_hot_shot, and current promotional prices in get_promotions. You can fork this API on Parse and revise it to store snapshots and build a price history layer on top.How does pagination work across endpoints that return product lists?+
search_products, get_category_products, get_product_reviews, and get_product_questions all accept page and limit parameters and return TotalCount and TotalPages in the response. You can iterate from page 1 up to TotalPages to retrieve a full result set. Default page size varies by endpoint when limit is not specified.