OLX API: wyszukiwanie ogłoszeń i szczegóły oferty w JSON
To nie jest oficjalne API OLX dla partnerów. To dostęp do tego, co OLX publikuje publicznie: ogłoszenia, ceny, lokalizacje i profile sprzedawców — w gotowym JSON-ie, bez logowania i bez konta sprzedawcy. Domyślnie pracujemy na olx.pl; każda edycja krajowa OLX to osobny rynek i wybiera się ją parametrem country.
Endpointy
| endpoint | Co zwraca | Wymagane |
|---|---|---|
| search | Wyszukiwanie po słowie kluczowym i/lub kategorii, z sortowaniem oraz filtrami stanu, ceny, dostawy i lokalizacji. | wszystkie opcjonalne |
| count | Sama liczba pasujących ogłoszeń dla danego zapytania i filtrów, bez pobierania wyników. Tanie sprawdzenie przed właściwym zapytaniem. | wszystkie opcjonalne |
| offer | Szczegóły jednego ogłoszenia po numerycznym id. | id |
| locations | Resolver geograficzny: zamienia nazwę miejscowości na id regionu, miasta i dzielnicy używane w filtrach. | wszystkie opcjonalne |
| categories | Facety kategorii i podpowiedzi filtrów z metadanych wyszukiwania, plus globalne definicje filtrów. | wszystkie opcjonalne |
| filters | Globalne definicje atrybutów filtrów, kluczowane nazwami filter_enum i filter_float. | wszystkie opcjonalne |
| user | Publiczny profil sprzedawcy. | user_id |
| user_offers | Aktywne ogłoszenia jednego sprzedawcy, stronicowane przez offset. | user_id |
| suggested | Ogłoszenia powiązane i proponowane dla danego id oferty. | id |
| breadcrumbs | Ścieżka okruszków dla kategorii lub oferty. | wszystkie opcjonalne |
Każde wywołanie jest rozliczane w kredytach. Nieudane i zablokowane wywołania są darmowe.
Działający przykład
Najpierw zamień nazwę miasta na id przez locations, potem filtruj wyszukiwanie tym id. Bez tego szukasz w całym kraju, a przy monitoringu lokalnego rynku to zwykle nie to, o co chodzi.
curl -X POST https://api.reefapi.com/olx/v1/search \
-H "x-api-key: TWOJ_KLUCZ" \
-H "content-type: application/json" \
-d '{"query": "iphone 15", "country": "pl"}'{
"ok": true,
"data": {
"results": [
{
"id": 123456789,
"title": "...",
"price": 2899,
"currency": "PLN",
"city": "...",
"url": "https://www.olx.pl/d/oferta/..."
}
]
},
"meta": { "record_count": 40, "cache_hit": false, "mode": "live" }
}Zamiast własnego scrapera OLX
Scraperów OLX na GitHubie jest sporo i pierwsze uruchomienie zwykle działa. Problem pojawia się później: OLX zmienia układ listingu i parser po cichu zwraca pustą listę, a przy zadziałaniu zabezpieczeń adres IP zostaje odcięty. Oba przypadki wyglądają u Ciebie tak samo — jakby po prostu nie było ogłoszeń.
Tutaj utrzymanie jest po naszej stronie: gdy zmienia się schemat, poprawiamy silnik, a gdy pojawia się blokada, wraca kod błędu i takie wywołanie nie jest płatne.
Jeśli zadanie jest jednorazowe i nie będzie powtarzane, własny skrypt wyjdzie taniej — mówimy to uczciwie. Przy monitoringu, który ma działać co dzień, koszt nie leży w kodzie, tylko w niezauważonych awariach.
Ograniczenia i uczciwe uwagi
- To nie jest oficjalne API OLX i nie mamy z OLX żadnego partnerstwa.
- Każda edycja krajowa OLX to osobny rynek (pl, ua, bg, ro, pt, kz, uz, br). Brazylia to inna generacja platformy i część endpointów tam nie działa; wersje in i tr nie są obsługiwane.
- Jeśli ogłoszenie nie podaje ceny, pole przychodzi jako null — nie wyliczamy jej z niczego.
- Nie ma cache: każde wywołanie pokazuje stan z momentu zapytania.