OLX Scraper avatar

OLX Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
OLX Scraper

OLX Scraper

Scrapes OLX classified ads — price, location, seller and full listing details — across Poland, Ukraine, Romania, Portugal, Pakistan, Kazakhstan and more.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Mina

Mina

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

Share

What does OLX Scraper do?

OLX Scraper collects classified ads from OLX, one of the world's largest classifieds networks. For every listing you get the price, location, map coordinates, category, seller and every detail the seller filled in, plus photos and posting dates.

It works with OLX Poland, Portugal, Romania, Ukraine, Bulgaria, Kazakhstan, Uzbekistan and Pakistan, and with dubizzle Egypt (OLX Egypt's new name). It covers every category: property, cars, electronics, jobs, furniture and the rest.

Paste a search link from OLX and press Start. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Zapier, Make, webhooks), managed residential proxies and run monitoring.

Dubizzle Egypt: since October 2026 dubizzle.com.eg shows a browser check to automated visitors, so its links may come back blocked (listed in FAILED_INPUTS, never billed). Every other OLX site works as usual.

Why use OLX Scraper?

  • Track asking prices in a category or city and see how they move over time.
  • Spot new listings that match a narrow brief, on a daily or hourly schedule.
  • Compare private sellers with dealers in the same market.
  • Measure supply: how much is listed in a city, in which categories, at what price.
  • Feed market research and pricing models with clean, structured data instead of copy-pasting from the site.

How to scrape OLX listings

  1. Open OLX (for example olx.pl or dubizzle.com.eg) and search, or open a category.
  2. Narrow it down with the filters on the page: price range, location, condition, or any category-specific filter.
  3. Copy the address from your browser's address bar.
  4. Paste it into OLX links and set Max results per link.
  5. Click Start, then download your data from the Output tab.

Every filter you set is kept, because the Actor follows the exact link you give it. You can paste several links at once, one per line, and mix countries: a Warsaw car search and a Cairo apartment search land in the same table.

To collect one seller's ads, open the seller's page of ads (on olx.pl, the link looks like https://www.olx.pl/oferty/uzytkownik/1qBDW/) and paste that link instead.

Input

Fill in the fields on the Input tab, or send JSON through the API:

{
"search_urls": [
"https://www.olx.pl/nieruchomosci/mieszkania/",
"https://www.olx.com.pk/cars_c84"
],
"max_results_per_search": 30
}
FieldWhat it does
search_urlsRequired. OLX search or category links, or a seller's page of ads, one per line. Old olx.com.eg links work too.
max_results_per_searchStops after this many listings for each link. Default 200. OLX shows 24 to 52 listings per page, depending on the country, and 10 to 12 on a seller's page.
proxy_countryOptional 2-letter country code. Leave empty and each link runs from an address in its own country.

Output

Each listing becomes one row. Here is a simplified example (the description and photo list are shortened):

{
"id": "1098870000",
"title": "Mieszkanie 67m2 w kamienicy z garażem",
"description": "Mieszkanie własnościowe 67,11 m2, na 2 piętrze kamienicy...",
"url": "https://www.olx.pl/d/oferta/mieszkanie-67m2-w-kamienicy-z-garazem-CID3-ID1abCDE.html",
"price": 190000,
"currency": "PLN",
"price_display": "190 000 zł",
"is_negotiable": false,
"city": "Radomsko",
"region": "Łódzkie",
"location": "Łódzkie, Radomsko",
"latitude": 51.06754,
"longitude": 19.44224,
"category": "real_estate",
"attributes": {
"Powierzchnia": "67,11 m²",
"Liczba pokoi": "2 pokoje",
"Rynek": "Wtórny"
},
"is_business": false,
"is_promoted": false,
"seller_name": "Jacek",
"created_at": "2026-09-17T12:35:28+02:00",
"refreshed_at": "2026-10-01T12:42:53+02:00",
"photo_count": 8,
"image": "https://ireland.apollo.olxcdn.com:443/v1/files/abc123example-PL/image;s=4096x3072",
"photos": ["https://ireland.apollo.olxcdn.com:443/v1/files/abc123example-PL/image;s=4096x3072"],
"country": "PL",
"domain": "olx.pl",
"position": 6,
"search_url": "https://www.olx.pl/nieruchomosci/mieszkania/"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

OLX data fields

FieldDescription
idOLX listing id
titleListing title
descriptionFull listing text, with markup removed
urlDirect link to the ad
priceAsking price as a number, in local currency
currencyCurrency code, such as PLN, RON, UAH, EGP or PKR
price_displayThe price as the site shows it
is_negotiableWhether the seller marked the price as negotiable
is_freeWhether the item is offered for free (always false on Egypt and Pakistan, which don't mark free items)
salary_from, salary_to, salary_periodPay range and period of a job ad, which has no price. On Egypt and Pakistan, pay is listed in attributes instead
city, regionCity and region or province
locationFull place path, such as "Łódzkie, Radomsko"
latitude, longitudeMap position of the listing
categoryCategory of the listing
attributesEvery detail the seller filled in: rooms and floor area, mileage and year, size, and so on
is_businessWhether the ad comes from a business seller
is_promotedWhether the ad is a paid, promoted placement
seller_nameSeller's display name
created_at, refreshed_atWhen the ad was posted and last refreshed
photo_count, image, photosNumber of photos, the main photo and all photo links
country, domainCountry code and site the listing came from
position, search_urlRank within your link and the link it came from

Some fields are filled only where the site provides them: district (when the seller gave a neighbourhood), condition (not used for property), and on Egypt and Pakistan shop_name, purpose and is_seller_verified (the other sites leave these empty or leave them out). In Pakistan, a few ads give only the country as their location.

How much does it cost to scrape OLX?

OLX Scraper uses pay-per-event pricing, so you pay only for listings you get:

  • $0.0015 per listing in the dataset, which is about $1.50 per 1,000 results
  • $0.00005 per run for starting the Actor at the default 1 GB of memory (the start fee is charged per GB, so it grows if you give a run more)

There are no separate platform or proxy charges. A run with the default example input (2 links, 30 listings each) costs about $0.09. Apify's free plan includes $5 of monthly usage, enough for about 3,300 listings.

Tips for faster, cheaper OLX scraping

  • Filter on OLX first. A narrow search link gives you exactly the listings you want, so you don't pay for ones you would throw away.
  • Use Max results per link to cap each link. Each page of 24 to 52 listings (10 to 12 on a seller's page) takes a few seconds.
  • Check keyword searches on OLX first. OLX's keyword search also returns loose matches, so even a word no ad contains can bring back dozens of loosely related listings, and those are collected and charged like any other. Category links and filters give tighter results.
  • Split broad searches. On the European and Central Asian sites, OLX lets one search page through at most 1,000 listings. To get more, split it into several links by region or price range.
  • Schedule runs to watch for new listings: sort the search by newest on OLX before copying the link, then run it daily with a small limit.
  • Promoted ads that repeat across pages are removed, so each listing appears once per link.
  • Listing text and details come in the language of the site, because that is how sellers wrote them. On dubizzle Egypt, detail names are given in English, and so are places and categories on a seller's page.

FAQ, disclaimers, and support

Is it legal to scrape OLX? This Actor collects only publicly visible listing data and does not log in. Check OLX's terms of service for the countries you scrape, and use the data responsibly.

Personal data (GDPR). seller_name is often a private person's name, and free-text description fields can contain phone numbers or other personal details. If you store or process this data, especially in the EU, you need a lawful basis under GDPR and similar laws. Drop the fields you don't need, and don't use the data for unsolicited contact.

Why did a link return nothing? Links that give no listings are never added to the dataset, so you aren't charged for them. They are listed with the reason in the FAILED_INPUTS record of the run's key-value store, and the run's status message gives the counts. When OLX reports no matches, or a seller has no ads left, that is a normal answer, so a scheduled run that finds none still succeeds (keyword searches rarely come back empty; see the tips above). The Actor reads search, category and seller pages only: links to a single ad are turned away before any request, and shop, saved-search and account pages after one request. A run fails only when every link was blocked or hit an error. If the run reaches the maximum cost you set, it stops and keeps what it collected; links it didn't get to are listed in FAILED_INPUTS.

Which sites are supported? olx.pl, olx.pt, olx.ro, olx.ua, olx.kz, olx.uz, olx.bg, olx.com.pk and dubizzle.com.eg (including old olx.com.eg links). Other OLX-branded sites, such as olx.com.br and olx.in, run on different software and aren't supported.

Found a bug or need a feature? Open an issue on the Issues tab. For a custom scraper or a different data shape, get in touch through the Issues tab as well.