# OLX Ukraine Scraper: Active Listings & Real-Time Deal Sniper (`utilix_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper`) Actor

Збір існуючих оголошень та перехоплення свіжих у реальному часі (до появи в пошуку). Fast OLX.ua extraction of active listings & live real-time deal sniping with zero proxy costs.

- **URL**: https://apify.com/utilix\_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper.md
- **Developed by:** [Utilix Labs](https://apify.com/utilix_labs) (community)
- **Stats:** 2 total users, 1 monthly users, 25.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## ⚡ OLX Ukraine High-Speed Scraper & Real-Time Sniper (OLX.ua)

> **The fastest, most cost-effective OLX.ua data extraction tool on Apify.**\
> Extract active listings in under **0.5 seconds** or run **Real-Time Pre-Moderation Sniper Mode** to intercept hot deals **before they even appear in OLX search results** — with **🔥 ZERO PROXIES NEEDED** and **100% human-readable attributes in Ukrainian**.

***

### 🚫 ZERO PROXY COSTS — NO BANS, NO CAPTCHAS, 100% UPTIME

Traditional OLX scrapers rely on slow headless browsers (Puppeteer/Playwright) and burn hundreds of dollars on residential proxy pools that frequently get blocked by Cloudflare, anti-bot firewalls, and rate limits.

**This Actor uses direct high-speed data stream technology:**

- 🛡️ **Zero Proxies Required**: Save $50 – $300/month on proxy subscriptions.
- ⚡ **Sub-Second Speed**: Get results in **0.2 – 0.5 seconds** instead of minutes.
- 🧱 **0% Block Risk**: Never worry about CAPTCHAs, 403 Forbidden, or IP bans.
- 🔄 **Continuous Coverage**: Fast, accurate data across all 24 regions and categories of Ukraine.

| Feature | 🐌 Standard Browser Scrapers | ⚡ **This Actor (High-Speed Engine)** |
|:---|:---|:---|
| **Proxy Requirement** | 💸 **Mandatory** ($5–$25 / 1k runs) | 🆓 **$0.00 (ZERO Proxy Needed)** |
| **Cloudflare / IP Blocks** | 🛑 Frequent CAPTCHAs & bans | 🛡️ **0% block risk (100% uptime)** |
| **Query Speed** | ⏳ 30 – 120 seconds per page | 🚀 **0.2 – 0.5 seconds instant response** |
| **Pre-Moderation Deal Sniping** | ❌ Impossible | 🎯 **Live Stream BEFORE OLX search indexing** |
| **Attribute Quality** | ⚠️ Raw JSON IDs (`{"key": "0"}`) | ✨ **Human-readable Ukrainian labels** |
| **Direct Telegram Alerts** | ❌ Requires custom coding | 📱 **Built-in instant Telegram rich cards** |

***

### 🎯 2 Powerful Operation Modes (2 Режими роботи)

#### 1. 🚀 Real-Time Sniper Mode (Свіжі публікації наживо — ДО модерації та появи в пошуку)

🔥 **The Ultimate Unfair Advantage for Deal Snipers & Resellers.**

When a seller posts an ad on OLX, it enters an internal ingestion & pre-moderation queue before it gets indexed by the main search engine.

**This mode intercepts listings at the very moment of creation — minutes before standard buyers or competitor scrapers can even see them in OLX search:**

- 📱 **Resellers & Dropshippers (Перепродаж техніки)**: Snipe undervalued iPhones, MacBooks, GPUs, gaming consoles, and appliances the exact second they are posted.
- 🚗 **Car Traders (Автоперекуп / Автобізнес)**: Be the first to call the seller on bargain cars before the phone line gets jammed.
- 🏠 **Real Estate Brokers & Renters (Оренда та купівля квартир)**: Catch newly listed apartments in Kyiv, Lviv, Odesa, and Dnipro first in line.
- 🔔 **Instant Telegram Alerts**: Get rich notifications with photos, price, location, parameters, and direct links straight to your phone.

***

#### 2. 📂 Search Active Listings (Збір опублікованих оголошень)

⚡ **Lightning-fast structured data extraction across active OLX listings.**

- 📊 **Market Research & Price Intelligence**: Historical price trends, market depth, and supply/demand dynamics.
- 🏬 **Full Catalog Exports**: Filter and export entire categories or specific brands into Excel/CSV.
- 📍 **Deep Regional & Radius Filtering**: Target any of the 29,799 Ukrainian cities and villages with customizable search radiuses (`0`, `2`, `5`, `10`, `15`, `30`, `50`, `75`, `100` km).

***

### 🇺🇦 100% Human-Readable Attributes (Без «сирих» кодів та сміття)

Most scrapers dump confusing internal IDs and null objects like `{"key": "0", "label": null}`.

Our built-in normalization engine automatically resolves every attribute against the official OLX Ukrainian dictionary:

- **Boolean switches**: Formatted cleanly as `"Так"` / `"Ні"` (*Комісія: Ні*, *Обмін: Ні*, *єОселя: Так*, *Без комісії: Так*).
- **Salary ranges**: Neatly formatted (*"30 000 - 45 000 грн"* або *"Договірна"*).
- **Multi-select parameters**: Formatted as clean comma-separated labels (*"Кондиціонер, Паркінг, Балкон, Панорамні вікна"*).
- **Vehicle & Tech specs**: Structured key-value pairs ready for Excel, Google Sheets, or CRM without extra data cleaning.

***

### 📱 Instant Telegram Alerts (Миттєві сповіщення в Telegram)

Send new deals directly to your personal Telegram chat, private group, or channel:

1. Create a bot in 30 seconds via [@BotFather](https://t.me/BotFather) and copy your **Bot Token**.
2. Get your **Chat ID** by sending any message to [@userinfobot](https://t.me/userinfobot) (or use your channel ID `@channelname` / `-100...`).
3. Paste both into the Actor input — every caught listing is delivered with **photos, formatted price, city, specs, and a direct link button**!

***

### 📥 Input Configuration Guide

| Field | Type | Description | Default |
|:---|:---|:---|:---|
| `operationMode` | *select* | `realtime_radar` (🚀 Свіжі публікації наживо до модерації) or `instant_search` (📂 Збір існуючих оголошень). | `instant_search` |
| `searchQuery` | *string* | Search keywords in title & description (e.g. `iphone 15 pro`, `macbook m2`, `генератор`). | `""` |
| `category` | *select* | Built-in category selector covering 3-level hierarchies (Auto, Real Estate, Electronics, etc.). | `0` (All) |
| `customCategoryId` | *integer* | Specific numeric OLX category ID (if targeting a deep subcategory). | `null` |
| `city` | *select* | Major Ukrainian cities & regional centers with typo protection (Kyiv, Lviv, Odesa, Kharkiv...). | `""` (All Ukraine) |
| `customCity` | *string* | Any custom town or village name (automatic matching across 29,799 settlements). | `""` |
| `distance` | *select* | Search radius in km around selected city (`0`, `2`, `5`, `10`, `15`, `30`, `50`, `75`, `100`). | `0` (Exact city) |
| `priceFrom` / `priceTo` | *integer* | Filter listings by budget in UAH (₴). | `null` |
| `maxAgeMinutes` | *integer* | Only return listings posted in the last N minutes (e.g. `15`, `60`, `1440`). | `0` (Any age) |
| `listenMinutes` | *integer* | For Real-Time mode: how long to listen for pre-moderation deals (1 to 60 min). | `0` |
| `state` | *select* | Item condition: `any` (all), `used` (вживане), `new` (нове). | `any` |
| `includeAttributes` | *boolean* | Whether to include parsed technical characteristics and parameters. | `true` |
| `sortBy` | *select* | Sort order: `newest`, `price_asc` (cheapest), `price_desc` (expensive). | `newest` |
| `maxItems` | *integer* | Maximum number of listings to return per run (up to 1,000). | `50` |
| `telegramBotToken` | *string* | Optional Telegram Bot Token from `@BotFather` for instant alerts. | `null` |
| `telegramChatId` | *string* | Optional Telegram Chat ID (e.g. `12345678`) or Channel ID (`-100...`). | `null` |

***

### 💡 Example Inputs

#### Example 1: Real-Time Pre-Moderation Deal Sniper (iPhone 15 under 32,000 ₴)

```json
{
  "operationMode": "realtime_radar",
  "searchQuery": "iphone 15",
  "listenMinutes": 30,
  "priceTo": 32000,
  "maxItems": 20,
  "telegramBotToken": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
  "telegramChatId": "987654321"
}
```

#### Example 2: Search Active Listings — Laptops in Kyiv under 25,000 ₴

```json
{
  "operationMode": "instant_search",
  "searchQuery": "ноутбук",
  "city": "Київ",
  "priceTo": 25000,
  "state": "used",
  "sortBy": "newest",
  "maxItems": 50,
  "includeAttributes": true
}
```

***

### 📤 Output Sample (Apify Dataset)

Each item saved to the default dataset contains clean, structured data:

```json
{
  "id": 847291045,
  "title": "Ноутбук Lenovo ThinkPad T14 Gen 2 (i7-1185G7 / 16GB / 512GB SSD)",
  "url": "https://www.olx.ua/d/uk/obyavlenie/noutbuk-lenovo-thinkpad-t14-gen-2-i7-16gb-512gb-IDXXXXX.html",
  "price": 18500,
  "priceFormatted": "18 500 грн.",
  "currency": "UAH",
  "city": "Київ",
  "region": "Київська область",
  "categoryName": "Ноутбуки та аксесуари",
  "categoryPath": "Електроніка > Ноутбуки та аксесуари",
  "sellerName": "Олександр",
  "createdAt": "2026-09-22T17:30:00Z",
  "images": [
    "https://frankfurt.apollo.olxcdn.com/v1/files/img1/image",
    "https://frankfurt.apollo.olxcdn.com/v1/files/img2/image"
  ],
  "z_attributes": {
    "Стан": "Вживане",
    "Виробник": "Lenovo",
    "Діагональ екрану": "14\"",
    "Оперативна пам'ять": "16 ГБ",
    "Об'єм SSD": "512 ГБ",
    "Процесор": "Intel Core i7",
    "Підсвічування клавіатури": "Так",
    "Обмін": "Ні"
  },
  "description": "Продам чудовий робочий ноутбук ThinkPad у відмінному стані. Батарея тримає до 6 годин..."
}
```

***

### 🔗 Integrations & Export

- **Instant File Downloads**: Export dataset to **CSV**, **JSON**, **Excel (XLSX)**, or **XML**.
- **Webhooks**: Trigger an Apify Webhook on `SUCCEEDED` or when each item is added to notify your Telegram channel or Discord bot.
- **No-Code Automation**: Native integration with **Make (Integromat)**, **Zapier**, and **Google Sheets**.
- **Apify API & SDKs**: Call this actor programmatically from Python, Node.js, Go, or cURL.

***

### ❓ Frequently Asked Questions (FAQ)

##### Do I really not need any proxies?

**Zero proxies needed.** The Actor uses direct high-speed data stream connections without exposing you to IP blocks or proxy expenses.

##### How do I receive listings before they appear in OLX search?

Select `operationMode: "realtime_radar"` (🚀 Свіжі публікації наживо до модерації). The engine connects to the live pre-moderation event stream, capturing listings the moment they are submitted.

##### Can I run this 24/7 on a schedule?

Yes! Use Apify **Schedules** or **Tasks** to run searches periodically or keep a live listener active during business hours.

***

### 💬 Support & Custom Solutions

Need custom filters, CRM integration, or enterprise scrapers for other European classifieds? Reach out via Apify Actor Discussion or contact support.

# Actor input Schema

## `operationMode` (type: `string`):

Збір опублікованих оголошень АБО перехоплення нових публікацій наживо ще ДО проходження модерації та появи в пошуку OLX — щоб телефонувати першим. (Search active listings or catch fresh pre-moderated deals in real time).

## `searchQuery` (type: `string`):

Keywords to search in title and description (e.g. iphone 15 pro, macbook air, bmw). Leave empty to collect all listings.

## `category` (type: `string`):

Select an OLX category or subcategory. The scraper automatically includes all nested child categories!

## `customCategoryId` (type: `integer`):

Optional: Specify an exact numeric OLX category ID directly if targeting a deep subcategory not listed above.

## `city` (type: `string`):

Filter by major Ukrainian city or region. Leave empty for all Ukraine.

## `customCity` (type: `string`):

If your town or village is not in the list above, enter its name manually (e.g. Трускавець, Бориспіль, Ірпінь).

## `distance` (type: `string`):

Search radius around the selected city in kilometers. 0 = exact city only.

## `priceFrom` (type: `integer`):

Minimum price in Ukrainian Hryvnia (UAH).

## `priceTo` (type: `integer`):

Maximum price in Ukrainian Hryvnia (UAH).

## `maxAgeMinutes` (type: `integer`):

For 'Збір існуючих': only return listings published within the last N minutes (e.g. 15, 60, 1440). 0 = any age.

## `listenMinutes` (type: `integer`):

For 'Онлайн-відстеження нових' mode: how many minutes to stream incoming listings in real time (1 to 60 min) to intercept fresh deals before they appear in site search. 0 = search existing listings only.

## `state` (type: `string`):

Filter listings by item condition (used / new).

## `includeAttributes` (type: `boolean`):

Whether to include parsed technical specifications and parameters normalized in Ukrainian. Disable for lightweight output.

## `sortBy` (type: `string`):

Sorting order for listings.

## `maxItems` (type: `integer`):

Maximum number of listings to collect per run (up to 1,000).

## `telegramBotToken` (type: `string`):

Optional: Your Telegram Bot Token from @BotFather (e.g. 123456789:ABCdef...). Leave empty to disable direct Telegram alerts.

## `telegramChatId` (type: `string`):

Optional: Telegram Chat ID (e.g. 12345678) or Channel ID (e.g. -1001234567890). Send any message to @userinfobot to find your Chat ID.

## Actor input object example

```json
{
  "operationMode": "instant_search",
  "category": "0",
  "city": "",
  "distance": "0",
  "maxAgeMinutes": 0,
  "listenMinutes": 0,
  "state": "any",
  "includeAttributes": true,
  "sortBy": "newest",
  "maxItems": 50
}
```

# Actor output Schema

## `dataset` (type: `string`):

Direct URL to dataset containing extracted OLX.ua listings

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("utilix_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("utilix_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call utilix_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,utilix_labs/olx-ukraine-scraper-active-listings-real-time-deal-sniper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VmQAMSKKQC7QLQSfa/builds/SVoXV2r9IsNdHSX3K/openapi.json
