OLX Scraper: Poland, Romania, Ukraine, Portugal & Bulgaria avatar

OLX Scraper: Poland, Romania, Ukraine, Portugal & Bulgaria

Pricing

from $1.00 / 1,000 results

Go to Apify Store
OLX Scraper: Poland, Romania, Ukraine, Portugal & Bulgaria

OLX Scraper: Poland, Romania, Ukraine, Portugal & Bulgaria

Scrape OLX listings from Poland (olx.pl), Romania (olx.ro), Ukraine (olx.ua), Portugal (olx.pt) and Bulgaria (olx.bg). Paste any search or category URL: cars, real estate, electronics. Get title, price, city, attributes and photos. Export to Excel, CSV or JSON. No personal data.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Zibounne

Zibounne

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Paste one or more OLX search or category URLs and get back structured listing data -- title, price, location, photos, and the listing's full spec table -- for Poland, Romania, Ukraine, Portugal, and Bulgaria.

What it does

  • Fetches one or more OLX search/category URLs through a residential proxy in the matching country.
  • Paginates each URL until maxItems is reached (per URL) or OLX has no more results.
  • Deduplicates listings by id across the entire run -- including the rare case where OLX repeats the same promoted ad twice on one page.
  • Pushes a strict, fixed set of fields per listing (see below) -- nothing else.
  • Reports a clear run status: how many listings, how many pages, and how many of the requested URLs actually succeeded.

Supported countries

CountryDomain
Polandolx.pl
Romaniaolx.ro
Ukraineolx.ua
Portugalolx.pt
Bulgariaolx.bg

URLs from other OLX domains, or single-listing URLs, are skipped with a clear message; the run continues with the valid URLs.

Input

{
"startUrls": [
{"url": "https://www.olx.ro/auto-masini-moto-ambarcatiuni/autoturisme/"},
{"url": "https://www.olx.pl/motoryzacja/samochody/"}
],
"maxItems": 60
}
  • startUrls -- one or more OLX search/category URLs. Plain strings also work: ["https://www.olx.ro/..."].
  • maxItems -- maximum listings per URL (not shared across URLs).

Output fields

Each dataset row is built from an explicit field allow-list -- nothing is copied wholesale from OLX's internal data:

id, url, title, price (value, currency, negotiable, isFree, isExchange), category (id, type), attributes (flat key -> normalizedValue map -- model, year, mileage, etc., machine-comparable), attributesDisplay (flat key -> value map -- the same fields as OLX displays them, with units), location (city, region only), photos (image URLs), createdTime, lastRefreshTime, isPromoted, itemCondition, country.

attributes are flat key/value columns, so exports stay readable in Excel and CSV.

Example (from a real run, a car listing found via keyword search):

{
"id": 673043953,
"url": "https://www.olx.pt/d/anuncio/bmw-116-d-advantage-IDJy1tD.html",
"title": "BMW 116 d Advantage",
"price": { "value": 21900, "currency": "EUR", "negotiable": false, "isFree": false, "isExchange": false },
"category": { "id": 741, "type": "automotive" },
"attributes": {
"body_type": "compact", "year": "2023", "modelo": "116",
"engine_capacity": "1496", "combustivel": "diesel", "engine_power": "116",
"quilometros": "68000", "gearbox": "manual", "condicao": "usado"
},
"attributesDisplay": {
"body_type": "Utilitário", "year": "2023", "modelo": "116",
"engine_capacity": "1.496", "combustivel": "Diesel", "engine_power": "116",
"quilometros": "68.000 km", "gearbox": "Manual", "condicao": "Usado"
},
"location": { "city": "Gandra", "region": "Porto" },
"photos": [
"https://ireland.apollo.olxcdn.com:443/v1/files/dnqk7owlm73n-PT/image;s=1814x1360"
],
"createdTime": "2026-08-25T19:47:34+01:00",
"lastRefreshTime": "2026-09-10T11:53:41+01:00",
"isPromoted": true,
"itemCondition": "",
"country": "PT"
}

This actor isn't vehicle-specific -- it reads whatever OLX renders for a given URL. Validated against real runs so far:

  • Category pages: vehicles (all 5 countries), real estate (olx.ro/imobiliare/), electronics (olx.pl/elektronika/).
  • Keyword search within a category: append q-<keyword>/ to a category URL, e.g. olx.pt/carros-motos-e-barcos/carros/q-bmw/.

OLX's 1000-result cap

OLX itself caps any single search at 1000 results (25 pages), regardless of how large maxItems is set. This has been observed identically across all five supported countries. If you need more than 1000 listings from one category, split the search into narrower slices and run the actor with one startUrls entry per slice -- e.g. one region at a time, or a price range via OLX's own price filter query parameter (search[filter_float_price:from] / search[filter_float_price:to], seen in OLX's own generated links).

Use cases

  • Automated price tracking -- run on a schedule against the same category/keyword URL and compare price.value over time.
  • Real estate market analysis -- OLX's real estate categories carry the same structured attributes (rooms, area, furnishing) as vehicle listings.
  • Deal-hunting -- combine a keyword search URL with OLX's own price filter to surface only listings under a threshold.

This actor can be run on a schedule (Apify Schedules) and combined with Apify's native integrations (webhooks, email/Slack notifications on run failure, or piping the dataset straight into a downstream Apify actor or external system) without any code changes on your side.

No personal data

This actor does not collect and will never output seller names, phone numbers, seller/shop profile data, free-text ad descriptions, or vehicle identification numbers (VIN). Location is limited to city and region -- no precise coordinates. This is a deliberate, structural exclusion in the parsing code, not a filter applied after the fact.

Export tip: choose the Overview view when exporting to get only the main columns (title, price, location, date, URL).