Ceneo API: oferty sklepów dla jednego produktu w JSON
Ceneo samo w sobie jest porównywarką i właśnie to czyni ten dostęp użytecznym: nie dostajesz jednej ceny, tylko wszystkie oferty sklepów dla danego produktu w jednym wywołaniu, każda z nazwą sklepu i ceną. Konto nie jest potrzebne, odpowiedź przychodzi jako JSON.
Endpointy
| endpoint | Co zwraca | Wymagane |
|---|---|---|
| search | Wyszukiwanie po słowie kluczowym: id produktu Ceneo, tytuł, marka, obraz, najniższa cena i liczba ofert. | query |
| product/detail | Pełna karta produktu po `product_id` lub URL: tytuł, marka, opis, zdjęcia i parametry. | product_id |
| product/offers | To, po co się tu przychodzi: każda oferta sklepu dla jednego produktu — sklep, cena, dostawa i dostępność. | product_id |
Każde wywołanie jest rozliczane w kredytach. Nieudane i zablokowane wywołania są darmowe.
Działający przykład
Cena widoczna w wyszukiwaniu to najniższa oferta, a nie cena jedynego sprzedawcy. Kto z kim konkuruje, widać dopiero w product/offers.
curl -X POST https://api.reefapi.com/ceneo/v1/product/offers \
-H "x-api-key: TWOJ_KLUCZ" \
-H "content-type: application/json" \
-d '{"product_id": "123456789"}'{
"ok": true,
"data": {
"offers": [
{
"shop": "...",
"price": 1299.0,
"currency": "PLN",
"delivery": 0
}
]
},
"meta": { "record_count": 27, "cache_hit": false, "mode": "live" }
}Zamiast własnego scrapera Ceneo
Scraper Ceneo to naturalny pierwszy krok przy monitoringu cen i na starcie działa. Kłopot pojawia się później: lista ofert zmienia układ i parser cicho zwraca pustą listę, a przy większym przebiegu wchodzi ochrona przed botami.
Tutaj utrzymaniem zajmujemy się my: zmienia się schemat — poprawiamy silnik; pojawia się blokada — wraca kod błędu, a takie wywołanie jest bezpłatne.
Do jednorazowego sprawdzenia własny skrypt nadal jest tańszy. Przy monitoringu, który ma chodzić codziennie, koszt leży w niezauważonych awariach.
Ograniczenia i uczciwe uwagi
- To nie jest oficjalne API Ceneo i nie mamy z Ceneo partnerstwa.
- Zwracamy to, co Ceneo pokazuje publicznie. Oferty widoczne dopiero po zalogowaniu nie są dostępne.
- Jeśli sklep nie podaje kosztu dostawy albo dostępności, pole przychodzi jako null.
- Nie ma cache: każde wywołanie jest na żywo.