Empik API: produkty, oferty sprzedawców i recenzje w JSON
Empik udostępnia własne API w ramach programu marketplace, ale jest ono przeznaczone dla sprzedawców i pokazuje Twoje własne oferty. To API odpowiada na inne pytanie: co jest w katalogu, ile kosztuje u poszczególnych sprzedawców i co piszą klienci. Konto sprzedawcy nie jest potrzebne.
Endpointy
| endpoint | Co zwraca | Wymagane |
|---|---|---|
| search | Wyszukiwanie po słowie kluczowym: id produktu Empik, tytuł, marka, obraz, cena i ocena. | query |
| product/detail | Pełna karta produktu po `product_id` lub URL: tytuł, ścieżka kategorii, opis, zdjęcia i dane wydania. | product_id |
| product/offers | Sedno sprawy: każda oferta sprzedawcy dla jednego produktu — sprzedawca, cena, dostawa. To jest samo porównanie cen. | product_id |
| products/batch | Do 30 produktów w JEDNYM zapytaniu: id, tytuł, url, kategoria, ocena, okładka i twórcy. Przy budowaniu katalogu oszczędza najwięcej wywołań. | product_ids |
| product/reviews | Recenzje klientów, 30 na stronę: autor, data, ocena 1-5, tytuł i treść. | product_id |
| product/variants | Inne wydania tego samego tytułu: miękka oprawa, twarda, ebook EPUB/MOBI, audiobook. | product_id |
Każde wywołanie jest rozliczane w kredytach. Nieudane i zablokowane wywołania są darmowe.
Działający przykład
Jeśli budujesz porównywarkę, zacznij od products/batch, a nie od pojedynczych zapytań: trzydzieści produktów w jednym wywołaniu to trzydzieści razy mniej kredytów niż trzydzieści osobnych.
curl -X POST https://api.reefapi.com/empik/v1/product/offers \
-H "x-api-key: TWOJ_KLUCZ" \
-H "content-type: application/json" \
-d '{"product_id": "p1234567890"}'{
"ok": true,
"data": {
"offers": [
{
"seller": "...",
"price": 39.99,
"currency": "PLN",
"delivery": "..."
}
]
},
"meta": { "record_count": 8, "cache_hit": false, "mode": "live" }
}Zamiast własnego scrapera Empiku
Własny scraper Empiku działa na początku. Potem zaczynają się rzeczy, których nie widać: zmiana układu karty produktu sprawia, że parser zwraca pustkę zamiast błędu, a zabezpieczenia przerywają większy przebieg w połowie.
Tu utrzymanie jest po naszej stronie: przy zmianie schematu poprawiamy silnik, przy blokadzie wraca kod błędu i takie wywołanie nie jest płatne.
Przy jednorazowym zadaniu własny skrypt wyjdzie taniej — mówimy to wprost. Przy monitoringu, który ma działać codziennie, płaci się za awarie, nie za kod.
Ograniczenia i uczciwe uwagi
- To nie jest oficjalne API Empiku i nie mamy z Empikiem partnerstwa.
- products/batch przyjmuje maksymalnie 30 identyfikatorów na wywołanie.
- Jeśli sprzedawca nie podaje kosztu dostawy, pole przychodzi jako null — niczego nie doliczamy.
- Nie ma cache: każde wywołanie pokazuje stan z momentu zapytania.