OLX Poland Scraper & New-Listing Monitor (OLX.pl) avatar

OLX Poland Scraper & New-Listing Monitor (OLX.pl)

Pricing

from $0.90 / 1,000 listing returneds

Go to Apify Store
OLX Poland Scraper & New-Listing Monitor (OLX.pl)

OLX Poland Scraper & New-Listing Monitor (OLX.pl)

OLX.pl scraper for resellers, deal hunters and price trackers: listings by search term, category, city or pasted OLX.pl URL with price, condition, location, dates, photos and business/private seller. Watch mode returns only listings created since your last check, and price drops.

Pricing

from $0.90 / 1,000 listing returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Share

This OLX.pl scraper returns listings from OLX Poland as clean JSON, CSV or Excel rows: search by words, category, city or voivodeship, price range, condition and private/business seller, or paste any OLX.pl search address. It also works as an OLX new-listing alert: run it on a schedule in watch mode and each run returns only the listings created since your last check, plus price drops.

No login, no cookies, no API key needed. One row per listing with price in PLN, condition, city, district and voivodeship, created and refreshed time, all photos, category attributes and a business-or-private flag.

What you can do with it

  • Deal alerts on OLX.pl: watch "iphone 13" in Warszawa under 2,000 zł, or a whole category, every 10 minutes and get only listings that are really new. Old listings that a seller pushes back to the top are not sent again as new.
  • Reselling and sourcing: pull up to 1,000 listings per search with price, condition and photos into a sheet, a database or a Telegram/Slack bot.
  • Price tracking: watch mode returns a price-drop row with the previous price and the difference. Every row also carries the earlier price OLX.pl itself shows when a seller lowered it (previousPriceShown).
  • Market research: how many listings OLX.pl shows for a search (listingsInSearch), price spread, condition mix, and how many sellers are businesses.

Why this one

  • Search exactly like the site: categories and cities are turned into OLX.pl's own IDs, and a pasted search address is translated to the same request the OLX.pl page makes (checked against the page's own data). Price, condition and seller filters are applied by OLX.pl, so every page you pay for is in range.
  • Honest "new": new means created after your watch started, using the listing's creation time, not "appeared near the top".
  • No silent surprises: when OLX.pl finds nothing for your words it shows unrelated listings instead; this Actor recognises that and returns a free no-results row rather than selling them. An unknown category or city, or a filter OLX.pl refuses, also comes back as a free row that says why.
  • Every row says whether its title names what you searched (queryInTitle), and requireWordsInTitle keeps only those.
  • Private sellers stay private: no seller names, user IDs or phone numbers. For businesses, the public business name is included.

Input

FieldWhat it does
searchQueriesSearch words, one per line (iphone 13, rower szosowy, kanapa).
categoriesOLX.pl category path from the address: elektronika/telefony, motoryzacja/samochody, sport-hobby/rowery.
locationsCity or voivodeship: warszawa, Kraków, gdansk, mazowieckie.
searchUrlsOr paste an OLX.pl search address, such as https://www.olx.pl/elektronika/telefony/warszawa/q-iphone-13/?search[filter_float_price:to]=2000. Its category, place, words, price range, condition, seller type and sort order are kept, so you get the same results as on the page (no sort order in the address means OLX.pl's default order).
minPrice / maxPricePrice range in PLN, applied by OLX.pl.
conditionany, new, used, almost-new, refurbished, damaged.
sellerTypeany, private or business.
sortnewest (default), relevance, price-asc, price-desc, for searches built from the fields above.
maxResultsPerSearchListings per search, 1 to 1,000 (default 40).
requireWordsInTitleOnly listings whose title contains every search word.
includePromotedAlso return OLX.pl's paid promoted listings (about 12 per page, outside the sort order). Off by default.
onlyNewWatch mode (below).
includePriceDrops, watchPages, watchName, resetMonitoringStateWatch mode settings.

Each search word is combined with each category and each location; up to 10 searches per run.

Example: { "searchQueries": ["iphone 13"], "maxResultsPerSearch": 40, "requireWordsInTitle": true } (only listings whose title names every search word). Add "locations": ["warszawa"], "maxPrice": 2000, "condition": "used" to narrow it.

Output

FieldMeaning
listingId, url, titleOLX.pl listing ID, link and title.
price, currency, priceType, priceLabel, negotiablePrice in PLN. priceType is OLX.pl's own word: price, arranged (negotiable), free (price 0), exchange (swap, price null).
previousPriceShownThe earlier price OLX.pl shows next to a lowered price.
condition, conditionLabelnew, used, … and the Polish label (Nowe, Używane).
descriptionListing text as plain text (emails and phone numbers removed).
city, district, regionLocation (region is the voivodeship).
categoryId, categoryTypeOLX.pl category of the listing.
createdAt, refreshedAt, validToWhen the listing was created, last refreshed by the seller, and when it expires.
imageUrl, imageUrls, photoCountPhotos, full size.
attributesCategory fields such as model, memory, size, brand, as shown on OLX.pl.
isBusiness, businessNameBusiness or private seller; the public business name for businesses only.
olxDeliverytrue when the listing offers OLX delivery (Przesyłka OLX).
isPromoted, queryInTitlePaid promoted slot; title contains all search words.
positionInSearch, listingsInSearchPosition in the results and the total OLX.pl shows.
changeType, previousPrice, priceChangeWatch mode: new or price-drop, with the remembered price and the difference.
searchQuery, searchCategory, searchCategoryId, searchLocation, searchUrl, watchName, checkedAtWhich search the row came from.

In the pages read while building this Actor (283 listings, 9 pages, October 2026), 98% had a price and a condition, 100% had a city and photos, 63% a district, 35% came from businesses and 75% offered OLX delivery.

Watch mode: new OLX.pl listings only

Turn on onlyNew and schedule the run (every 5 to 60 minutes is typical).

  1. First run: remembers what is listed now and returns nothing. It is free: no rows, no charge.
  2. Every later run returns:
    • new: a listing created after the newest listing your first check saw, that you have not received yet. A listing that a seller refreshes or promotes back to the top keeps its old creation time and is not called new.
    • price-drop: a listing seen before whose price went down, with previousPrice and priceChange. Price rises are remembered, not returned.
  3. A check that finds nothing returns one free no-new-listings row and is charged as one small search-checked event.

Watch mode always reads newest first and stops once it reaches listings older than the previous check (with a 30-minute overlap, because OLX.pl adds new listings to its search results a few minutes after they are created). Listings that could not be returned because of your run's maximum charge are not marked as delivered; the next run returns them. Use watchName to keep separate watches for the same search.

Rows that explain instead of data (never charged)

no-results, not-found (unknown category or place, a filter OLX.pl refused, or an answer for a different search), watch-started, no-new-listings, watch-coverage, incomplete (a later page could not be read), blocked (OLX.pl showed a check page; this Actor does not solve it), unreadable, not-allowed-by-robots-txt, bad-input, budget-reached, more-not-returned. Each has a note that says what happened.

FAQ

Is there an OLX Poland API I can use instead of writing a scraper? This Actor is that API: send a search (words, category, city, price, condition) and get JSON rows back, or call it from the Apify API, Make, Zapier or n8n on a schedule.

How do I get alerts for new OLX.pl listings? Run it in watch mode on a schedule and connect the dataset to email, Slack, Telegram or a webhook. Each run returns only listings created since the last check.

Can I scrape a whole OLX.pl category or city? Yes. Leave searchQueries empty and set categories and/or locations. OLX.pl serves up to 1,000 listings per search, so split very large categories by city or price range.

Does it return seller phone numbers? No. This Actor returns no personal data of private sellers, and phone numbers or emails written into titles and descriptions are replaced with [phone removed] / [email removed].

Good to know

  • OLX.pl serves at most 1,000 listings per search (25 pages of 40). For more, split by city, voivodeship or price range.
  • OLX.pl's search also matches listing descriptions and close words, so not every result names your words in its title; use queryInTitle or requireWordsInTitle.
  • newest is OLX.pl's newest-first order, which also moves refreshed listings up; createdAt tells you which ones are really new.
  • OLX.pl shows a new listing in its search results roughly 10 to 15 minutes after it is created (measured October 2026), so a watch sees it from then on.
  • Price drops are seen for listings on the pages a watch reads (newest first).
  • Pasted addresses with filters this Actor cannot pass on (for example search[photos]) are refused with a message instead of being silently dropped. Districts in the path are not supported; use the city.
  • Unofficial: this Actor is not affiliated with OLX Group. It reads public search results only, and checks OLX.pl's robots.txt on every run.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.