API

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

endpointCo zwracaWymagane
searchWyszukiwanie po słowie kluczowym: id produktu Empik, tytuł, marka, obraz, cena i ocena.query
product/detailPełna karta produktu po `product_id` lub URL: tytuł, ścieżka kategorii, opis, zdjęcia i dane wydania.product_id
product/offersSedno sprawy: każda oferta sprzedawcy dla jednego produktu — sprzedawca, cena, dostawa. To jest samo porównanie cen.product_id
products/batchDo 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/reviewsRecenzje klientów, 30 na stronę: autor, data, ocena 1-5, tytuł i treść.product_id
product/variantsInne 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.

Żądanie
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"}'
Odpowiedź (skrócona)
{
  "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.