# OLX.pl Seller Leads & Contact Extractor (`axlymxp/olx-pl-seller-leads`) Actor

Turn any OLX.pl search into a ready-to-use lead list. Get seller phone numbers, and for business sellers the company name, NIP (tax id), verified email, address and OLX rating — deduplicated to one row per seller. Structured JSON, ready for your CRM. Pay only for the leads you get.

- **URL**: https://apify.com/axlymxp/olx-pl-seller-leads.md
- **Developed by:** [axly](https://apify.com/axlymxp) (community)
- **Categories:** Lead generation, E-commerce, Real estate
- **Stats:** 3 total users, 2 monthly users, 88.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.00 / 1,000 dataset items

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## OLX.pl Seller Leads & Contact Extractor

Turn any **OLX.pl** search, category, or pasted URL into a ready-to-use **lead
list**. For every seller this actor reveals the **phone number**, and for **business
sellers** it merges the official company record — legal **company name**, **NIP (tax
id)**, **verified email**, legal type — with the OLX shop profile (**address**,
website, shop phones) and the seller's **OLX rating**. Results are deduplicated to
one row per seller, so a dealer with 200 listings becomes a single clean lead.

All data comes from OLX's public, anonymous endpoints — no login, no anti-bot, no
proxy — so it's fast and reliable.

### Who uses this

- **Agencies, lead-gen & B2B sales** — build targeted call/email lists of active OLX
  sellers (car dealers, real-estate agencies, electronics shops) by category and city.
- **Market intelligence** — enumerate the businesses operating in a niche, with their
  company registration (NIP) and contact channels.
- **Recruiters & service providers** — reach sellers advertising in a category.
- **CRM enrichment** — attach company name, tax id, and verified email to OLX sellers.

### What you get — output fields

| Field                                                   | Type    | Description                              |
| ------------------------------------------------------- | ------- | ---------------------------------------- |
| `sellerName`                                            | string  | Seller display name                      |
| `sellerType`                                            | string  | `business` or `private`                  |
| `isBusiness`                                            | boolean | Business seller flag                     |
| `businessType`                                          | string  | OLX plan (normal / premium / basic)      |
| `phone`                                                 | array   | Revealed seller phone number(s)          |
| `companyName`                                           | string  | Registered legal company name (business) |
| `taxId`                                                 | string  | Company NIP / tax id                     |
| `businessEmail`                                         | string  | Verified business email                  |
| `businessPhone`                                         | string  | Business/company phone                   |
| `legalType`                                             | string  | company / entrepreneur / …               |
| `website`                                               | string  | Company website                          |
| `companyDescription`                                    | string  | Shop profile description                 |
| `addressStreet` / `addressNumber`                       | string  | Company street address                   |
| `addressPostcode` / `addressCity`                       | string  | Company postcode & city                  |
| `shopSubdomain`                                         | string  | OLX shop subdomain, if any               |
| `ratingScore` / `ratingCount`                           | number  | OLX seller rating and number of ratings  |
| `memberSince`                                           | string  | Seller registration date                 |
| `messageResponseTime`                                   | string  | Typical response time                    |
| `profileUrl`                                            | string  | Seller's OLX profile URL                 |
| `sampleOfferId` / `sampleOfferTitle` / `sampleOfferUrl` | —       | A listing from this seller               |
| `city` / `region`                                       | string  | Listing location                         |
| `scrapedAt`                                             | string  | ISO-8601 scrape time                     |

### High-value use cases

1. **Real-estate agency lists** — pull every business seller in the flats category for
   a city, with company name, NIP, phone, and email — a complete prospecting list.
2. **Car-dealer outreach** — target business sellers in the cars category by region.
3. **Electronics/retail B2B** — find shops selling a product type, with verified email
   for cold outreach.
4. **Competitor mapping** — enumerate businesses (with NIP) advertising in your niche.
5. **CRM enrichment** — match OLX sellers to registered company data.

### Input parameters

| Field                            | Type    | Default    | Description                                        |
| -------------------------------- | ------- | ---------- | -------------------------------------------------- |
| `searchQuery`                    | string  | —          | Keywords to search.                                |
| `startUrls`                      | array   | —          | OLX category/search URLs (resolved automatically). |
| `categoryId`                     | integer | —          | OLX category id (flats=15, cars=84, phones=1838…). |
| `locationQuery`                  | string  | —          | City/district name (auto-resolved).                |
| `regionId`/`cityId`/`districtId` | integer | —          | Explicit location ids.                             |
| `distance`                       | integer | —          | Radius (km) around the city.                       |
| `ownerType`                      | enum    | `business` | `business` / `private` / `any`.                    |
| `onlyBusinessSellers`            | boolean | `true`     | Emit only confirmed business sellers.              |
| `dedupeBySeller`                 | boolean | `true`     | One row per unique seller (a lead).                |
| `revealPhone`                    | boolean | `true`     | Reveal seller phone numbers.                       |
| `includeRating`                  | boolean | `true`     | Include OLX seller rating.                         |
| `priceMin`/`priceMax`            | integer | —          | Price range (PLN).                                 |
| `sortBy`                         | enum    | `newest`   | Ordering of the listing search.                    |
| `filters`                        | object  | `{}`       | Advanced raw OLX filters.                          |
| `maxItems`                       | integer | `100`      | Max leads.                                         |
| `proxyConfiguration`             | object  | off        | Optional; works proxy-free.                        |

#### Example input

```json
{
    "categoryId": 15,
    "locationQuery": "Warszawa",
    "ownerType": "business",
    "onlyBusinessSellers": true,
    "dedupeBySeller": true,
    "revealPhone": true,
    "maxItems": 100
}
```

#### Example output row

```json
{
    "sellerName": "Kuźnia Nieruchomości sp. z o.o.",
    "sellerType": "business",
    "isBusiness": true,
    "phone": ["+48 22 646 72 71"],
    "companyName": "KUŹNIA NIERUCHOMOŚCI SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
    "taxId": "5213626097",
    "businessEmail": "biuro@kuznianieruchomosci.pl",
    "legalType": "company",
    "addressCity": "Warszawa",
    "ratingScore": 4.8,
    "ratingCount": 6,
    "sampleOfferUrl": "https://www.olx.pl/d/oferta/...",
    "city": "Warszawa",
    "region": "Mazowieckie",
    "scrapedAt": "2026-07-30T09:00:00Z"
}
```

### Scheduling & integrations

**Schedule** recurring lead pulls and pipe results straight to **Google Sheets, Make,
Zapier, HubSpot, or your CRM** via the Apify API or a **webhook**. Export any run as
JSON, CSV, or Excel.

### Use it from an AI assistant (MCP)

Compatible with the **Apify MCP server** — AI assistants (Claude, ChatGPT, other MCP
clients) can call this actor as a tool to build lead lists on demand.

### FAQ

**Which sellers return company data?** Registered OLX business sellers return company
name, NIP, and email. Some sellers fill only part of their profile, so a field may be
empty. Private sellers return phone-only leads (enable "Only business sellers" to skip
them). OLX-internal aggregator feeds (e.g. Otomoto car imports) are skipped.

**How fresh is the data?** Every run fetches live data directly from OLX.

**Do I need a proxy or login?** No — the actor uses OLX's open API.

**Is this legal / GDPR-compliant?** The actor collects publicly available business
contact data. You are the data controller for how you use it and must comply with
OLX's terms, GDPR, and applicable marketing/e-privacy laws (including lawful basis for
B2B outreach). Use responsibly.

**What if a run fails?** Errors are reported automatically and the run fails with a
clear message. Use the Issues tab for support.

# Actor input Schema

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

Free-text keywords, e.g. "mieszkanie" or "iphone". Optional if you provide a Category ID or Start URLs.

## `startUrls` (type: `array`):

Paste one or more OLX.pl category or search-result URLs. Each is resolved automatically. Overrides Search query / Category ID.

## `categoryId` (type: `integer`):

OLX.pl numeric category id (e.g. flats = 15, cars = 84, phones = 1838). Business sellers are most common in real estate, cars and electronics.

## `locationQuery` (type: `string`):

Free-text location, e.g. "Warszawa". Resolved to region/city/district ids automatically.

## `regionId` (type: `integer`):

Explicit OLX region (voivodeship) id. Optional.

## `cityId` (type: `integer`):

Explicit OLX city id. Optional.

## `districtId` (type: `integer`):

Explicit OLX district id. Optional.

## `distance` (type: `integer`):

Radius in kilometres around the selected city.

## `ownerType` (type: `string`):

Business sellers yield the richest leads (company name, NIP, email). Private also returns phone contacts.

## `onlyBusinessSellers` (type: `boolean`):

Emit only sellers confirmed as businesses (with company data). Turn off to also include private sellers (phone-only leads).

## `dedupeBySeller` (type: `boolean`):

Deduplicate so each seller appears once (a lead), even if they have many listings. Turn off for one row per listing.

## `revealPhone` (type: `boolean`):

Reveal each seller's phone number from their listing.

## `includeRating` (type: `boolean`):

Fetch the seller's OLX rating score and count.

## `priceMin` (type: `integer`):

Minimum listing price in PLN.

## `priceMax` (type: `integer`):

Maximum listing price in PLN.

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

Ordering of the underlying listing search.

## `filters` (type: `object`):

Extra OLX filter parameters passed through verbatim. For power users.

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

Stop after this many seller leads.

## `proxyConfiguration` (type: `object`):

Optional. The OLX.pl API works proxy-free.

## Actor input object example

```json
{
  "startUrls": [],
  "categoryId": 15,
  "ownerType": "business",
  "onlyBusinessSellers": true,
  "dedupeBySeller": true,
  "revealPhone": true,
  "includeRating": true,
  "sortBy": "newest",
  "filters": {},
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [],
    "categoryId": 15,
    "filters": {}
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/olx-pl-seller-leads").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 = {
    "startUrls": [],
    "categoryId": 15,
    "filters": {},
}

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/olx-pl-seller-leads").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "categoryId": 15,
  "filters": {}
}' |
apify call axlymxp/olx-pl-seller-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=axlymxp/olx-pl-seller-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/C5Bjeouq01bcT1DKM/builds/CV1eu34OtuiMgdujc/openapi.json
