OLX Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
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
- Open OLX (for example olx.pl or dubizzle.com.eg) and search, or open a category.
- Narrow it down with the filters on the page: price range, location, condition, or any category-specific filter.
- Copy the address from your browser's address bar.
- Paste it into OLX links and set Max results per link.
- 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}
| Field | What it does |
|---|---|
search_urls | Required. 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_search | Stops 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_country | Optional 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
| Field | Description |
|---|---|
id | OLX listing id |
title | Listing title |
description | Full listing text, with markup removed |
url | Direct link to the ad |
price | Asking price as a number, in local currency |
currency | Currency code, such as PLN, RON, UAH, EGP or PKR |
price_display | The price as the site shows it |
is_negotiable | Whether the seller marked the price as negotiable |
is_free | Whether the item is offered for free (always false on Egypt and Pakistan, which don't mark free items) |
salary_from, salary_to, salary_period | Pay range and period of a job ad, which has no price. On Egypt and Pakistan, pay is listed in attributes instead |
city, region | City and region or province |
location | Full place path, such as "Łódzkie, Radomsko" |
latitude, longitude | Map position of the listing |
category | Category of the listing |
attributes | Every detail the seller filled in: rooms and floor area, mileage and year, size, and so on |
is_business | Whether the ad comes from a business seller |
is_promoted | Whether the ad is a paid, promoted placement |
seller_name | Seller's display name |
created_at, refreshed_at | When the ad was posted and last refreshed |
photo_count, image, photos | Number of photos, the main photo and all photo links |
country, domain | Country code and site the listing came from |
position, search_url | Rank 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.