OLX Scraper avatar

OLX Scraper

Pricing

from $0.90 / 1,000 listings

Go to Apify Store
OLX Scraper

OLX Scraper

Scrape OLX listings by keyword, category ID, search URL, or API URL. Export prices, locations, seller details, photos, attributes, and source URLs.

Pricing

from $0.90 / 1,000 listings

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

🛒 OLX scraper for listing data

OLX Scraper collects public listings from OLX marketplaces and saves them as clean rows you can export, schedule, or use through the Apify API. Search by keyword, category ID, OLX search URL, or OLX API offers URL, then get listing titles, prices, seller details, locations, photos, attributes, source URLs, and scrape timestamps.

Use this OLX scraper when you need marketplace data for price monitoring, second-hand market research, local listing checks, seller research, or repeat reports. For a small first run, keep the prefilled iphone search in Poland, keep Listing limit at 100 or lower it to 25, and review the dataset before scaling up.

🔎 What this OLX scraper does

  • Scrapes public OLX listing search results.
  • Accepts plain search terms such as iphone, bike, or sofa.
  • Accepts OLX search URLs and OLX API offers URLs.
  • Supports OLX markets for Poland, Bulgaria, Romania, Portugal, and Ukraine.
  • Lets you combine plain searches with country-specific category IDs.
  • Filters by minimum price and maximum price.
  • Sorts plain searches and category ID runs by newest, low price, or high price.
  • Saves one dataset row per accepted OLX listing.
  • Can add detail enrichment for each saved listing when you need the richer API payload.
  • Works with Apify exports, schedules, webhooks, integrations, and API clients.

The Actor focuses on public OLX listing data. It does not log in, message sellers, reveal protected phone numbers, scrape private account data, submit forms, or enrich rows from third-party data sources. Public OLX listing page URLs are not used as direct targets unless they are OLX API offers URLs.

📦 Data you can extract

Each dataset item is one OLX listing. Some fields can be empty when OLX does not show or return that value for a listing.

  • listingId - OLX listing ID.
  • title - listing title.
  • url - source OLX listing URL.
  • sourceTarget and sourceType - input search, category, or API URL that produced the row.
  • resultPosition and pageOffset - listing position in the collected result set.
  • country - OLX market used for the row.
  • status, offerType, createdAt, lastRefreshAt, and validTo.
  • price - visible price text, numeric amount, currency, negotiable flag, and arranged-price flag.
  • location - city, region, latitude, longitude, map radius, and detailed-map flag when available.
  • seller - public seller ID, name, profile URL, photo URL, account age, online status, and contact flags.
  • category - OLX category ID and type when returned.
  • descriptionText - public listing description.
  • attributes - listing parameters such as condition, model, memory, color, or other category-specific values.
  • photos - listing image URLs with source dimensions when available.
  • promotion and delivery - source flags such as highlighted, urgent, top ad, and delivery mode.
  • detailPageFetched and detailUnavailableReason - whether detail enrichment was fetched for the row.
  • scrapedAt - timestamp when the row was saved.

🧭 Common use cases

  • Track used product prices across OLX markets.
  • Watch new listings for a keyword or category.
  • Compare seller activity, locations, and listing attributes.
  • Build second-hand marketplace reports.
  • Export OLX listing data to CSV, JSON, Excel, Google Sheets, webhooks, or your own API workflow.
  • Schedule repeat searches for price and inventory monitoring.

🚀 How to run

  1. Open the Input tab.
  2. Keep the prefilled iphone search for a quick test, or add your own OLX search terms.
  3. Choose the country for plain searches and category IDs.
  4. Add category IDs only when you know the OLX category IDs you want to use.
  5. Set price filters, sorting, and listing limit.
  6. Turn on Add listing details only when you need detail enrichment.
  7. Run the Actor and open the dataset.

Plain search terms and category IDs use the selected country. Pasted OLX search URLs and OLX API offers URLs keep their own market.

⚙️ Input options

  • Searches or OLX URLs - search terms, OLX search URLs, or OLX API offers URLs. You can mix values in one run.
  • Category IDs - optional OLX category IDs to combine with plain search terms.
  • Country for searches and category IDs - OLX market for plain searches and category IDs: Poland, Bulgaria, Romania, Portugal, or Ukraine.
  • Sort listings by - newest first, price low to high, or price high to low.
  • Minimum price and Maximum price - optional price bounds in the selected OLX market's local currency.
  • Listing limit - maximum listings to save across all targets.
  • Add listing details - fetch detail enrichment for each saved listing. This costs more per saved listing.

📊 Output example

{
"listingId": "1076929565",
"title": "Bateria 100% iPhone 14 Pro Max 256gb Deep Purple Idealny",
"url": "https://www.olx.pl/d/oferta/bateria-100-iphone-14-pro-max-256gb-deep-purple-idealny-CID99-ID1aSGzH.html",
"sourceTarget": "iphone",
"sourceType": "search",
"resultPosition": 1,
"country": "pl",
"price": {
"text": "2 350 zł",
"amount": 2350,
"currency": "PLN",
"negotiable": false
},
"location": {
"city": "Warszawa",
"region": "Mazowieckie",
"latitude": 52.23876,
"longitude": 21.08553
},
"seller": {
"id": "330413574",
"name": "SuperMen S",
"profileUrl": "https://www.olx.pl/oferty/uzytkownik/330413574/",
"canChat": true,
"hasPhone": true
},
"category": {
"id": "2298",
"type": "electronics"
},
"detailPageFetched": false,
"scrapedAt": "2026-06-05T15:05:00.000Z"
}

💵 Pricing

This Actor uses pay-per-event pricing:

  • Actor start - small charge for starting one run.
  • Listing - charged for each saved listing.
  • Detailed listing - charged for each saved listing when Add listing details is turned on.

You only pay listing events for rows saved to the dataset. Keep Listing limit small for a first run, then raise it when the output looks right.

⚠️ Limits and caveats

  • The Actor uses public OLX data only.
  • Direct public OLX listing page URLs are not direct targets. Use search terms, OLX search URLs, OLX API offers URLs, or category IDs.
  • Category IDs are country-specific.
  • Full OLX search URLs keep their own country domain.
  • Detail enrichment can add richer listing data, but it costs more per saved listing.
  • Some fields can be empty when OLX does not return them for a listing.

❓ FAQ

Can I scrape OLX listing URLs directly?

Use OLX API offers URLs when you need an exact listing target. Public listing page URLs are not direct targets in this version.

Do I need an OLX account?

No. The Actor works with public OLX listing data and does not ask for OLX login credentials.

Which OLX countries are supported?

The input supports Poland, Bulgaria, Romania, Portugal, and Ukraine.

Can I use this with the Apify API?

Yes. You can run the Actor through the Apify API, schedule it, export the dataset, or send rows to other tools with webhooks.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré