API

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

endpointCo zwracaWymagane
searchWyszukiwanie po słowie kluczowym i/lub kategorii, z sortowaniem oraz filtrami stanu, ceny, dostawy i lokalizacji.wszystkie opcjonalne
countSama liczba pasujących ogłoszeń dla danego zapytania i filtrów, bez pobierania wyników. Tanie sprawdzenie przed właściwym zapytaniem.wszystkie opcjonalne
offerSzczegóły jednego ogłoszenia po numerycznym id.id
locationsResolver geograficzny: zamienia nazwę miejscowości na id regionu, miasta i dzielnicy używane w filtrach.wszystkie opcjonalne
categoriesFacety kategorii i podpowiedzi filtrów z metadanych wyszukiwania, plus globalne definicje filtrów.wszystkie opcjonalne
filtersGlobalne definicje atrybutów filtrów, kluczowane nazwami filter_enum i filter_float.wszystkie opcjonalne
userPubliczny profil sprzedawcy.user_id
user_offersAktywne ogłoszenia jednego sprzedawcy, stronicowane przez offset.user_id
suggestedOgł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.

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