OLX Ukraine Classifieds Scraper avatar

OLX Ukraine Classifieds Scraper

Pricing

Pay per event

Go to Apify Store
OLX Ukraine Classifieds Scraper

OLX Ukraine Classifieds Scraper

Extract public OLX.ua search and category listings with prices, locations, seller names, photos, timestamps, and attributes for market intelligence.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape public classifieds from OLX.ua search and category pages. The actor collects listing titles, prices, locations, seller names, photos, timestamps, category data, and OLX attributes into a clean dataset for market research, lead discovery, and price monitoring.

What does OLX Ukraine Classifieds Scraper do?

OLX Ukraine Classifieds Scraper turns public OLX.ua search results into structured JSON, CSV, Excel, or API output. Give it a keyword such as iphone, a public search URL, or a category URL, and it will paginate through OLX's public listing feed until it reaches your requested limit.

The actor is HTTP-based and designed for efficient extraction of listing-level data. It does not require an OLX account and does not scrape private messages, hidden phone numbers, or non-public user information.

Who is it for?

  • 🛒 Ecommerce analysts tracking prices for electronics, furniture, bikes, tools, and second-hand goods.
  • 🏠 Real-estate researchers monitoring flats, houses, rooms, and rental supply by city or region.
  • 🚗 Vehicle market teams following cars, motorcycles, parts, and local supply trends.
  • 📈 Market intelligence teams building dashboards for local Ukrainian classifieds demand.
  • 🧲 Lead generation teams collecting public listing URLs and seller names for compliant outreach workflows.
  • 🧪 Data teams that need repeatable OLX.ua search exports without manually copying results.

Why use this OLX.ua scraper?

  • ⚡ HTTP extraction is faster and cheaper than browser automation.
  • 📦 Results are available in Apify datasets, API, webhooks, and integrations.
  • 🧭 Works with keywords, category URLs, search URLs, and OLX public API URLs.
  • 🧾 Preserves category-specific parameters in the attributes object.
  • 🖼️ Exports listing image URLs and a thumbnail URL.
  • 💸 Uses pay-per-result pricing so cost scales with useful data.

What data can you extract from OLX Ukraine?

FieldDescription
listingIdStable OLX listing ID
titleListing title
descriptionPublic listing description from OLX search/API data
price, currency, priceDisplayNumeric and display price information when available
listingUrlDirect URL to the OLX listing
locationCity, locationRegion, locationDistrictPublic location fields
sellerName, sellerId, sellerTypePublic seller metadata returned by OLX
isPromoted, isHighlightedPromotion flags visible in OLX data
createdTime, lastRefreshTime, validToTimeListing timestamps
thumbnailUrl, imageUrlsPublic image URLs
attributesAll public OLX category parameters, such as condition, manufacturer, room count, or mileage

How much does it cost to scrape OLX Ukraine listings?

This actor uses Apify pay-per-event pricing. You pay a small run-start event and then a per-listing result event for each item saved to the dataset. The exact tiered prices are shown on the Apify actor page before you run it.

For a first test, keep Maximum listings at the prefilled value of 20. For production monitoring, increase the limit to match the search volume you need.

How to scrape OLX.ua search results

  1. Open the actor on Apify.
  2. Enter a Search query, for example iphone, велосипед, or квартира київ.
  3. Set Maximum listings to the number of classifieds you need.
  4. Click Start.
  5. Export the dataset as JSON, CSV, Excel, XML, or via API.

How to scrape an OLX.ua category URL

You can paste a public OLX.ua URL into OLX.ua start URLs, for example:

https://www.olx.ua/uk/list/q-iphone/
https://www.olx.ua/uk/nedvizhimost/kvartiry/

When start URLs are provided, the actor uses those URLs instead of the keyword input.

Input configuration

{
"searchQuery": "iphone",
"maxResults": 20,
"language": "uk",
"maxRequestRetries": 3
}

You can also use startUrls:

{
"startUrls": [
{ "url": "https://www.olx.ua/uk/list/q-iphone/" }
],
"maxResults": 50,
"language": "uk"
}

Output example

{
"listingId": "923505866",
"title": "Iphone xs розбитий",
"price": 1200,
"currency": "UAH",
"priceDisplay": "1 200 грн.",
"listingUrl": "https://www.olx.ua/d/uk/obyavlenie/example.html",
"locationCity": "Київ",
"locationRegion": "Київська область",
"sellerName": "Даня",
"condition": "Вживане",
"imageUrls": ["https://ireland.apollo.olxcdn.com/..."],
"attributes": {
"state": "Вживане",
"Марка телефону": "Apple"
},
"scrapedAt": "2026-05-16T00:00:00.000Z"
}

Tips for better OLX.ua scraping

  • 🎯 Use specific keywords such as iphone 13 київ instead of very broad searches when you want targeted output.
  • 🗂️ Use category URLs when you want all listings from a section rather than one keyword.
  • 🧪 Start with 20 listings to verify the dataset shape before running a large job.
  • 🔁 Schedule the actor daily or hourly to monitor changing prices and new supply.
  • 📍 Combine location words in the search query if the category URL is too broad.

Common use cases

  • Monitor average used phone prices by model.
  • Track apartments or houses in a specific city.
  • Watch competitor inventory for local resellers.
  • Build lead lists from public seller names and listing URLs.
  • Detect promoted vs organic supply changes in a category.
  • Export daily classifieds snapshots into a BI dashboard.

Integrations

The actor works with standard Apify integrations:

  • Dataset export to JSON, CSV, Excel, HTML, XML, or RSS.
  • Webhooks to trigger a workflow when a run finishes.
  • Google Sheets through Make, Zapier, or custom API code.
  • Databases and warehouses by reading the dataset API.
  • Monitoring workflows that compare today's dataset with yesterday's dataset.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/olx-ukraine-classifieds-scraper').call({
searchQuery: 'iphone',
maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/olx-ukraine-classifieds-scraper').call({
'searchQuery': 'iphone',
'maxResults': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~olx-ukraine-classifieds-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchQuery":"iphone","maxResults":20}'

MCP usage

Use this actor from MCP-compatible tools with:

https://mcp.apify.com/?tools=automation-lab/olx-ukraine-classifieds-scraper

Claude Code setup:

$claude mcp add apify-olx-ukraine https://mcp.apify.com/?tools=automation-lab/olx-ukraine-classifieds-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-olx-ukraine": {
"url": "https://mcp.apify.com/?tools=automation-lab/olx-ukraine-classifieds-scraper"
}
}
}

Example prompts:

  • "Scrape 50 OLX Ukraine listings for used iPhones and summarize price ranges."
  • "Find public OLX.ua apartment listings for Kyiv and export the dataset URL."
  • "Run the OLX Ukraine scraper for bicycles and compare promoted listings with organic listings."

Scheduling and monitoring

Create an Apify schedule to run this actor repeatedly. For example, run a query every morning, export the dataset, and compare prices or listing counts against the previous day. This is useful for classifieds intelligence because OLX inventory changes quickly.

Limitations

  • The actor extracts public listing data available in OLX.ua search/API responses.
  • It does not log in and does not access private seller phone numbers or chats.
  • Very broad searches may be limited by OLX's public pagination limits.
  • Some fields are category-specific and appear only inside attributes.

Legality and responsible use

This actor is intended for scraping publicly available information from OLX.ua. You are responsible for ensuring that your use complies with applicable laws, OLX terms, privacy rules, and data protection obligations. Do not use scraped data for spam, harassment, or unlawful profiling.

FAQ

Can I scrape phone numbers?

No. The actor does not log in, does not solve protected flows, and does not extract hidden phone numbers. It focuses on public listing metadata.

Why is a price missing?

Some OLX listings are free, exchange-only, negotiable, or do not expose a numeric price. In those cases, check priceDisplay and attributes.

Can I scrape multiple OLX URLs in one run?

Yes. Add multiple objects to startUrls. The actor deduplicates listings by listingId across sources.

What happens if OLX returns fewer listings than requested?

The actor stops when OLX pagination ends or when it reaches maxResults. Some narrow queries simply have fewer public listings.

Changelog

Initial version: scrape OLX.ua public search/category listings with price, location, seller, photos, timestamps, and category attributes.