x-kom API: ceny z x-kom.pl, najniższa cena z 30 dni i Gorący strzał w JSON
Kto wpisuje „x-kom historia ceny”, zwykle chce sprawdzić, czy obniżka na x-kom.pl jest prawdziwa. Pełnej historii cen sklep nie pokazuje, ale przy przecenionym produkcie podaje najniższą cenę z 30 dni, a to API zwraca ją w osobnym polu, obok ceny, ceny przekreślonej i ceny z kodem rabatowym (razem z kodem, datami ważności i limitem sztuk na klienta). Do tego karta produktu z terminem dostawy, odbiorem w każdym z 31 salonów, ratami, wariantami i specyfikacją, opinie klientów oraz bieżący Gorący strzał z liczbą sprzedanych sztuk. Wszystkie kwoty są w złotych, tak jak widzi je klient bez logowania. API niczego nie kupuje i nie wystawia, więc nie zastąpi narzędzi dla dostawców ani partnerów x-kom; to samo API obsługuje też al.to i neonet.pl (parametr `site`).
Endpointy
| endpoint | Co zwraca | Wymagane |
|---|---|---|
| search | Szukanie po frazie (po polsku albo nazwą modelu, np. „rtx 5070”) z filtrem kategorii, marki, przedziału cen w zł i dostępności oraz sortowaniem: cena, popularność, ocena, nazwa. Wiersz: id, nazwa, marka, kod producenta, kategoria, cena, cena przed obniżką, najniższa cena z ostatnich 30 dni, kod rabatowy z ceną, dostępność, ocena w skali 1–6 i pięciogwiazdkowej, liczba opinii, raty, najważniejsze parametry. Odpowiedź ma też fasety kategorii i marek z liczbą produktów. | query |
| category | Produkty jednej kategorii x-kom po id (np. 159 laptopy, 1590 smartfony) z tymi samymi filtrami, sortowaniem i wierszami co `search`, plus podkategorie i marki z liczbą produktów. | category_id |
| product | Pełna karta po id albo adresie: wszystkie ceny (z datą najniższej ceny z 30 dni, jeśli sklep ją podaje), plany ratalne, termin dostawy, odbiór w każdym salonie z datą, opcje wysyłki z ceną, specyfikacja w grupach, warianty modelu z cenami, zdjęcia, opis jako czysty tekst i statystyka opinii z rozkładem ocen 1–6. | wszystkie opcjonalne |
| reviews | Opinie klientów: autor, data, ocena 1–6 i w gwiazdkach, tytuł, treść, potwierdzony zakup, głosy, zdjęcia i odpowiedzi sklepu. Filtry: ocena, tylko potwierdzone zakupy, tylko ten wariant; sortowanie od najbardziej pomocnych, najnowszych, najstarszych albo według oceny. | product_id |
| hot_shot | Bieżący Gorący strzał: cena promocyjna, cena regularna i najniższa z ostatnich 30 dni, oszczędność, pula sztuk, liczba sprzedanych i pozostałych, godziny rozpoczęcia i końca oraz produkt, którego dotyczy. | wszystkie opcjonalne |
| categories | Drzewo kategorii: bez parametrów główne grupy, z `group_id` kategorie danej grupy z liczbą produktów. Te id przyjmują `category` i `search`. | wszystkie opcjonalne |
Każde wywołanie jest rozliczane w kredytach. Nieudane i zablokowane wywołania są darmowe.
Działający przykład
Laptopy z kategorii 159 w przedziale 2000–3000 zł, 28 października 2026: 60 produktów, w tym trzy różne obniżki. HP Omnibook 3 17 ma przekreślone 3499 zł i tyle samo wynosi najniższa cena z 30 dni, więc obniżka o 1000 zł (`discount_value`) jest rzeczywista. HP OmniBook 5 Flip ma przekreślone 3489 zł, ale najniższa cena z 30 dni to 2999 zł: liczona od niej obniżka to 10 zł i właśnie tyle podaje `discount_value`. TECNO Megabook T14 Air kosztuje 3099 zł, z kodem black-weeks15 2798 zł (do 19 listopada, najwyżej 3 sztuki na klienta), i dlatego zmieścił się w filtrze do 3000 zł; raty 20 × 139,90 zł też są policzone od ceny z kodem.
curl -X POST https://api.reefapi.com/x-kom/v1/category \
-H "x-api-key: TWOJ_KLUCZ" \
-H "content-type: application/json" \
-d '{"category_id": "159", "price_min": 2000, "price_max": 3000, "limit": 60}'{
"ok": true,
"data": {
"results": [
...
{
"product_id": "1519929",
"title": "HP Omnibook 3 17 Core 3-100U/8GB/256/Win11",
"producer_code": "17-dk0005nwx (D8ZE1EA)",
"currency": "PLN",
"price": 2499.0,
"old_price": 3499.0,
"lowest_price_30d": 3499.0,
"promo_code": null,
"filter_price": 2499.0,
"discount_value": 1000.0,
"availability_status": "Available",
"installment": { "text": "124,95 zł x 20 rat 0%", "zero_percent": true, "min_monthly": 124.95 }
},
...
{
"product_id": "1540061",
"title": "TECNO Megabook T14 Air Ryzen 7-7735HS/16GB/1TB/Win11",
"currency": "PLN",
"price": 3099.0,
"old_price": null,
"lowest_price_30d": 3099.0,
"promo_code": {
"code": "black-weeks15",
"price": 2798.0,
"starts_at": "2026-10-19T07:50:00",
"ends_at": "2026-11-19T23:59:59",
"customer_limit": 3,
"active": true
},
"code_price": 2798.0,
"filter_price": 2798.0,
"discount_value": 301.0,
"installment": { "text": "139,90 zł x 20 rat 0%", "zero_percent": true, "min_monthly": 139.9 }
},
...
{
"product_id": "1454730",
"title": "HP OmniBook 5 Flip Core 5-120U/16GB/512/Win11 Touch OLED",
"category": { "id": "2980", "name": "Laptop 14\"", "parent_id": "159", "parent_name": "Laptop/Notebook/Ultrabook" },
"currency": "PLN",
"price": 2989.0,
"old_price": 3489.0,
"lowest_price_30d": 2999.0,
"discount_value": 10.0,
"marks": ["CrossedPrice"],
"rating": 6.0,
"rating_5": 5.0,
"review_count": 1,
"free_shipping": true
},
...
],
"total": 60,
"pages": 1,
"page": 1,
"limit": 60,
"has_more": false,
"rows_outside_price_range": 0,
"site": "xkom",
"category_id": "159"
},
"meta": { "record_count": 60, "upstream_requests": 1, "charged_credits": 2, "cache_hit": false, "mode": "live" }
}Scraper x-kom: wartości, które wyglądają poprawnie, a znaczą co innego
To, jaką cenę podaje ld+json na karcie produktu x-kom, zależy od aktywnego kodu rabatowego. W teście z 15 października 2026 zestawiliśmy osiem kart produktów x-kom: na sześciu z aktywnym kodem `offers.price` było ceną z kodem, na dwóch bez kodu zwykłą ceną. Skrypt, który czyta tylko to pole, zapisuje więc w jednej kolumnie dwa różne rodzaje ceny. Tutaj cena i cena z kodem są rozdzielone, a „Najniższa cena z 30 dni” wydrukowana na stronie zgadzała się z `lowest_price_30d` na 6 z 6 kart.
x-kom ocenia produkty w skali od 1 do 6, a w danych strukturalnych podaje drugą liczbę, pięciogwiazdkową. Jednej nie przeliczysz na drugą, odejmując 1: w wynikach dla „rtx 5070” karta z oceną 5,76 miała 4,8 gwiazdki, a inna z oceną 5,7 miała 4,73. API zwraca obie wartości, `rating` i `rating_5`.
Opinie są wspólne dla wariantów jednego modelu. Przy produkcie 1532486 lista miała 10 opinii i żadna nie dotyczyła tego wariantu; przy 179862 z 310 opinii 105 napisano o nim samym. Każda opinia niesie więc `product_id`, a `this_variant_only` zostawia tylko te o wskazanym produkcie.
Dwa pola wprowadzają w błąd już w samym źródle. Data najniższej ceny z 30 dni bywa zapisana jako „0001-01-01T00:00:00”, czyli brak daty, a liczba sztuk w salonie wynosiła 0 we wszystkich 31 salonach każdego sprawdzonego produktu, także tam, gdzie odbiór był możliwy. API zwraca w pierwszym przypadku null, a drugiej liczby nie podaje wcale, tylko status i termin odbioru.
Rok 1, zero sztuk, ocena 5 zamiast 6: każda z tych wartości przechodzi przez walidację jako poprawna liczba. Wychodzą na jaw dopiero przy porównaniu z tym, co klient widzi na stronie.
Pozostała dokumentacja po polsku
- OLX API — dokumentacja
- Allegro API — dokumentacja
- Empik API — dokumentacja
- Ceneo API — dokumentacja
- Otomoto API — dokumentacja
- Vinted API — ogłoszenia z vinted.pl
- Otodom API — dokumentacja
- eBay API (ebay.pl) — dokumentacja
- IKEA API — ceny i dostępność
- AliExpress API — ceny w zł
- Media Expert API: ceny i produkty
Ograniczenia i uczciwe uwagi
- To API zbudowaliśmy sami, bez udziału x-kom: nie jest oficjalne i nie mamy ze sklepem partnerstwa.
- Historii cen nie ma, bo x-kom jej nie publikuje. Jest najniższa cena z 30 dni, i to tylko przy części produktów (12 z 60 laptopów w przykładzie); `lowest_price_30d_date` było null także na karcie OmniBooka. Historię zbudujesz, zapisując kolejne odczyty z datą.
- Kwoty są takie jak na stronie dla klienta indywidualnego; cen netto API nie zwraca. Nie ma też kodów EAN, których x-kom nie publikuje: do łączenia z innymi sklepami zostaje `producer_code` (np. „14-fp0023nw (CX5B9EA)”).
- Jeśli kod rabatowy jest aktywny, sklep filtruje i sortuje według ceny z kodem: dlatego Megabook T14 Air za 3099 zł mieści się w przedziale do 3000 zł. Wartość, której użył sklep, jest w `filter_price`.
- Wyszukiwarka x-kom szuka szeroko: „rtx 5070” dało 1094 wyniki, bo obok kart graficznych trafiają tu komputery i laptopy z tą kartą (891 w fasecie „Laptopy do gier”). Same karty zawęzisz przez `category_id` z `facets.categories`.
- Zamówione 30 albo 60 wierszy czasem daje o jeden mniej: „rtx 5070” z `limit: 30` zwróciło 29. Liczbę wierszy bierz z odpowiedzi, a dalsze strony z `page`.
- W `reviews` z `this_variant_only: true` nasze `limit: 5` dało 10 opinii na stronę (28 października 2026). Bez tego przełącznika limit działał.
- Gorący strzał z 28 października (Sony Alpha a7 III z obiektywem, 9999 zł zamiast 13 099 zł, pula 15 sztuk) o 17:29 miał już `quantity_left: 0`, a `is_active` nadal true, bo promocja trwała do 22:00. Czy da się jeszcze kupić, mówi `quantity_left`.
- Odbiór w salonie a towar w salonie to nie to samo: dla OmniBooka wszystkie 31 salonów podało „Najwcześniej u Ciebie: jutro”, a `available_in_stores` miało wartość false. Do planowania odbioru używaj `pickup_date`.
- Koszt: `search`, `category`, `product` i `hot_shot` po 2 kredyty, `reviews` i `categories` po 1.