
OLX Scraper
hipersoft/olx-scraper
Scrape classified ads from OLX in Poland, Romania, Portugal, Ukraine, Bulgaria, Kazakhstan and Uzbekistan: title, description, price, negotiable, attributes, city, district, region, private or business seller, photos, dates. Export CSV/JSON.
Total users
2Monthly users
1Total runs
4Per listing
$0.001Last rebuilt
Oct 26, 2026Overview
OLX Scraper extracts classified ads from OLX, the largest classifieds marketplace in Central & Eastern Europe and Central Asia: olx.pl (Poland), olx.ro (Romania), olx.pt (Portugal), olx.ua (Ukraine), olx.bg (Bulgaria), olx.kz (Kazakhstan) and olx.uz (Uzbekistan). Covering electronics, phones, cars and parts, property, jobs, home and garden, fashion, kids, sports, animals and services, it returns for every ad the title, full description, price, currency, negotiable flag, free flag, all attributes (condition, model, memory, colour, year, mileage…), category, city, district, region, approximate coordinates, private or business seller, business name, highlighted / urgent / top-ad flags, delivery availability, photos, posted, refreshed and expiry dates. Search by keyword, category, region, city, price range and seller type. Export to CSV, Excel or JSON. Perfect for resellers, price monitoring, market research, deal alerts and lead generation across Poland, Romania, Portugal, Ukraine and beyond.
What does OLX Scraper do?
- 🌍 7 OLX countries in one actor: PL, RO, PT, UA, BG, KZ, UZ.
- 🔎 Keywords, category, region, city, price range and four sort orders.
- 💰 Price, currency, negotiable and free flags.
- 🏷️ All attributes: condition, brand, model, size, year, mileage and more.
- 📍 City, district and region.
- 🧑 Private vs business sellers with a dedicated filter.
- 🚚 Delivery availability, promoted flags, photos and dates.
What data can you scrape from OLX?
| Field | Description |
|---|---|
| Ad | Site, ID, link, title, description, offer type |
| Price | Price, currency, label, negotiable, free |
| Item | Category ID, attributes |
| Location | City, district, region, approximate coordinates |
| Seller | Private or business, business name |
| Flags | Highlighted, urgent, top ad, delivery |
| Media & dates | Photos, posted, refreshed, valid until |
Use cases for OLX data
- Resellers: find under-priced phones, consoles and furniture in Poland or Romania.
- Car dealers: monitor private car ads and prices by region.
- Price monitoring: track second-hand prices across seven countries.
- Market research: compare supply, prices and demand between cities and countries.
- Lead generation: list businesses selling in a category.
How to scrape OLX
- Click Try for free to open OLX Scraper in Apify Console.
- Pick the OLX country and enter search terms in the local language.
- Optionally set a category, region, city, price range and seller type.
- Click Start and download the ads as CSV, Excel or JSON.
Input
Example input
{
"site": "pl",
"queries": ["iphone 13", "macbook air"],
"minPrice": 500,
"maxPrice": 1500,
"sellerType": "private",
"sort": "newest",
"maxItems": 500
}
| Field | Description |
|---|---|
| OLX country | pl, ro, pt, ua, bg, kz, uz. |
| Search terms | Keywords in the local language. |
| Category / Region / City ID | Optional numeric filters from the site. |
| Min / max price | Price range in local currency. |
| Sort by | Newest, relevance, price. |
| Seller type | All, private only or businesses only. |
| Max ads | 0 = no limit. |
Output
Ad example
{
"site": "pl",
"offerId": 1101520533,
"url": "https://www.olx.pl/d/oferta/iphone-13-128-gb-midnight-nowa-bateria-100-oryginalny-ekran-zestaw-akcesoriow-CID99-ID1cxROd.html",
"title": "iPhone 13 128 GB Midnight – nowa bateria 100%",
"price": 749,
"currency": "PLN",
"priceLabel": "749 zł",
"negotiable": true,
"attributes": { "Stan": "Używane", "Model telefonu": "iPhone 13", "Wbudowana pamięć": "128GB" },
"sellerType": "private",
"city": "Warszawa",
"district": "Bemowo",
"region": "Mazowieckie",
"hasDelivery": true,
"imageCount": 8,
"createdAt": "2026-09-29T19:30:36+02:00"
}
Output schema
| Field | Type | Description |
|---|---|---|
site, offerId, url, title, description, offerType |
mixed | Ad. |
price, currency, priceLabel, negotiable, isFree |
mixed | Price. |
categoryId, attributes |
mixed | Item details. |
city, district, region, latitude, longitude |
mixed | Location (approximate for private sellers). |
sellerType, businessName |
string | Seller (business names only). |
isHighlighted, isUrgent, isTopAd, hasDelivery |
boolean | Flags. |
imageCount, imageUrl, images, createdAt, refreshedAt, validTo |
mixed | Media and dates. |
Private sellers' names and contact details are not collected.
How much does it cost?
OLX Scraper uses pay-per-ad pricing: a small fixed price per ad, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More classifieds data
- Otodom Scraper: Polish real estate.
- Kleinanzeigen Scraper: German classifieds.
- Bazos Scraper: Czech, Slovak, Polish and Austrian classifieds.
- Kijiji Scraper: Canadian classifieds.
FAQ
How many ads can one search return? Up to about 1,000 ads per search. Split large searches by region, category or price range to collect more.
Which language should I search in? Use the local language of the OLX site (e.g. Polish for olx.pl, Romanian for olx.ro).
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate it with other apps? Yes. OLX Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape OLX? The scraper only collects publicly visible ad information and no private seller names or contact details. You are responsible for using the data in line with OLX's terms and GDPR.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with OLX Group.
Input
| Field | Type | Description |
|---|---|---|
siteOLX country | string · pl, ro, pt, ua, bg, kz… | Which OLX site to search. Default: "pl" |
queriesSearch terms | array | Keywords in the site's language, e.g. rower, iphone 13, mieszkanie. Leave empty to list the newest ads (combine with a category or region). |
categoryIdCategory ID (optional) | string | OLX category number from the site. |
regionIdRegion ID (optional) | string | OLX region number from the site. |
cityIdCity ID (optional) | string | OLX city number from the site. |
minPriceMinimum price | integer | Minimum price in local currency. |
maxPriceMaximum price | integer | Maximum price in local currency. |
sortSort by | string · newest, relevance, price_asc, price_desc | Result order. Default: "newest" |
sellerTypeSeller type | string · all, private, business | Private individuals, businesses or both. Default: "all" |
maxItemsMax ads | integer | Stop after this many ads in total (0 = no limit; each search returns up to ~1,000 ads). Default: 200 |
proxyConfigurationProxy configuration | object | Not needed in most cases. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~olx-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"queries": [
"iphone 13"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/olx-scraper").call(run_input={
"queries": [
"iphone 13"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/olx-scraper').call({
"queries": [
"iphone 13"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Listing Charged per classified ad returned | $0.001 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.