# Marketplace Seller Leads: WB, Ozon, Yandex, Kaspi (`isolovyev/marketplace-seller-leads`) Actor

Find unique marketplace sellers by category and collect their published business details. Поиск продавцов по товарной нише: список без дублей, реквизиты по доступным источникам и мониторинг новых продавцов.

- **URL**: https://apify.com/isolovyev/marketplace-seller-leads.md
- **Developed by:** [Ivan Solovyev](https://apify.com/isolovyev) (community)
- **Categories:** Lead generation, E-commerce
- **Stats:** 23 total users, 6 monthly users, 78.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

[English](#english) | [На русском](#na-russkom)

Turn product-category searches into a deduplicated list of marketplace sellers.

Преобразуйте поиск по товарной нише в список продавцов маркетплейсов без дублей.

### English

#### What it does and who it is for

Use it for B2B prospecting, competitor discovery and monitoring new sellers in a niche. Business details are included when published by supported sources; a seller record does not guarantee a phone number or email address.

#### Quick start

```json
{
  "mode": "search",
  "searchQueries": [
    "наушники"
  ],
  "platforms": [
    "wildberries",
    "ozon",
    "yandexmarket",
    "kaspi"
  ],
  "maxPagesPerQuery": 3,
  "maxSellersPerPlatform": 30,
  "fetchDossier": true,
  "cities": [
    "750000000"
  ]
}
```

Run the Actor with this input in Apify Console, through the API, or from a saved task.

#### Expected output

- one deduplicated row per seller
- marketplace, store name, seller ID and store URL
- legal name, INN, OGRN and legal address when published
- product reach, rating, review totals, categories and discovery query when available

Example item from a completed run:

```json
{
  "platform": "wildberries",
  "name": "EL Store",
  "sellerId": "681298",
  "inn": "132710210209",
  "productCount": 3,
  "avgRating": 4.9,
  "storeUrl": "https://www.wildberries.ru/seller/681298"
}
```

Fields can vary by source and mode.

#### Coverage, modes and integrations

- Platforms: Wildberries, Ozon, Yandex Market and Kaspi.kz.
- Kaspi collection uses the selected city context.
- `fetchDossier` requests available seller business details.
- `monitor` can return newly observed sellers and send events to `notifyWebhookUrl`.

#### Pricing

Billing unit: one returned seller record. Apify platform usage is charged separately. The live event and platform rates appear in Pricing.

#### FAQ and support

Use a narrow product query for a focused lead list. Raise `maxPagesPerQuery` and `maxSellersPerPlatform` gradually when you need broader coverage.

For help with a run, open an issue from the Actor page and include the run ID and the input with any private values removed.

### На русском

#### Что делает и кому подходит

Подходит для B2B-поиска, анализа конкурентов и наблюдения за новыми продавцами в нише. Реквизиты добавляются, когда они опубликованы поддерживаемым источником; запись продавца не гарантирует наличие телефона или электронной почты.

#### Быстрый запуск

```json
{
  "mode": "search",
  "searchQueries": [
    "наушники"
  ],
  "platforms": [
    "wildberries",
    "ozon",
    "yandexmarket",
    "kaspi"
  ],
  "maxPagesPerQuery": 3,
  "maxSellersPerPlatform": 30,
  "fetchDossier": true,
  "cities": [
    "750000000"
  ]
}
```

Запустите Actor с этим входом в Apify Console, через API или из сохранённой задачи.

#### Ожидаемый результат

- одна строка на продавца после удаления дублей
- площадка, название магазина, seller ID и URL
- юридическое название, ИНН, ОГРН и адрес, когда они опубликованы
- охват товаров, рейтинг, число отзывов, категории и запрос обнаружения при наличии

Пример строки из завершённого запуска:

```json
{
  "platform": "wildberries",
  "name": "EL Store",
  "sellerId": "681298",
  "inn": "132710210209",
  "productCount": 3,
  "avgRating": 4.9,
  "storeUrl": "https://www.wildberries.ru/seller/681298"
}
```

Набор полей зависит от источника и режима.

#### Охват, режимы и интеграции

- Площадки: Wildberries, Ozon, Яндекс Маркет и Kaspi.kz.
- Для Kaspi сбор выполняется в контексте выбранного города.
- `fetchDossier` запрашивает доступные реквизиты продавца.
- `monitor` может возвращать новых наблюдаемых продавцов и отправлять события на `notifyWebhookUrl`.

#### Стоимость

Единица оплаты: одна возвращённая запись продавца. Расходы платформы Apify оплачиваются отдельно. Актуальные ставки показаны в Pricing.

#### Вопросы и поддержка

Для точного списка лидов используйте узкий товарный запрос. Увеличивайте `maxPagesPerQuery` и `maxSellersPerPlatform` постепенно, когда нужен больший охват.

Если нужна помощь с запуском, создайте issue со страницы Actor и приложите run ID и входные данные без приватных значений.

### Related tools / Связанные продукты

- [Marketplace Seller Leads](https://apify.com/isolovyev/marketplace-seller-leads)
- [Product Card & Specs](https://apify.com/isolovyev/ru-product-cards)
- [Russian Company Check](https://apify.com/isolovyev/ru-counterparty-check)

# Actor input Schema

## `mode` (type: `string`):

search = collect sellers now. monitor = compare sellers vs the previous run (needs a schedule) and flag new competitors, with optional webhook alerts.

## `searchQueries` (type: `array`):

Keywords to search, e.g. 'наушники', 'детская одежда', 'кофе'. Each query is expanded into sellers who rank for it.

## `platforms` (type: `array`):

Which marketplaces to scan. wildberries and yandexmarket return INN when the seller discloses it; ozon returns legal name and OGRN; kaspi rating only.

## `maxPagesPerQuery` (type: `integer`):

How many result pages to scan per query (Ozon collects its sellers from page 1 only). Higher = more sellers discovered, more cost.

## `maxSellersPerPlatform` (type: `integer`):

Hard cap on unique sellers kept per platform (sorted by reach in results). Dossier is fetched only for kept sellers.

## `fetchDossier` (type: `boolean`):

Fetch legal entity and registration numbers per seller (one extra request per seller; on Yandex Market it also fills in the store name). Turn off for a faster, name-only run.

## `cities` (type: `array`):

Kaspi city IDs (merchants/offers vary by city). 750000000 Almaty, 710000000 Astana, 591010000 Shymkent. WB ignores this.

## `kaspiOfferDepth` (type: `integer`):

Kaspi only: how many top products per query/city to expand into merchant offers (cost control). More = more merchants found.

## `alertOnly` (type: `boolean`):

Monitor mode only: emit just new/gone sellers instead of the full set.

## `notifyWebhookUrl` (type: `string`):

Monitor mode: POST the run summary (counts, per-platform, degraded, changes) to this URL - wire it to n8n/Zapier/Make for Telegram/Slack alerts on new competitors.

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

Set proxyConfiguration to Apify Residential proxy with country RU. Required for Ozon and Yandex Market; Wildberries and Kaspi.kz work without it.

## Actor input object example

```json
{
  "mode": "search",
  "searchQueries": [
    "наушники"
  ],
  "platforms": [
    "wildberries",
    "kaspi"
  ],
  "maxPagesPerQuery": 1,
  "maxSellersPerPlatform": 3,
  "fetchDossier": true,
  "cities": [
    "750000000"
  ],
  "kaspiOfferDepth": 1,
  "alertOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One record per seller: shop name, marketplace, and the company behind it - INN, OGRN, address and contacts where the platform discloses them.

# 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 = {
    "searchQueries": [
        "наушники"
    ],
    "platforms": [
        "wildberries",
        "kaspi"
    ],
    "maxPagesPerQuery": 1,
    "maxSellersPerPlatform": 3,
    "fetchDossier": false,
    "cities": [
        "750000000"
    ],
    "kaspiOfferDepth": 1,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("isolovyev/marketplace-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 = {
    "searchQueries": ["наушники"],
    "platforms": [
        "wildberries",
        "kaspi",
    ],
    "maxPagesPerQuery": 1,
    "maxSellersPerPlatform": 3,
    "fetchDossier": False,
    "cities": ["750000000"],
    "kaspiOfferDepth": 1,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("isolovyev/marketplace-seller-leads").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 '{
  "searchQueries": [
    "наушники"
  ],
  "platforms": [
    "wildberries",
    "kaspi"
  ],
  "maxPagesPerQuery": 1,
  "maxSellersPerPlatform": 3,
  "fetchDossier": false,
  "cities": [
    "750000000"
  ],
  "kaspiOfferDepth": 1,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call isolovyev/marketplace-seller-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,isolovyev/marketplace-seller-leads"
        }
    }
}
```

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/RJBevsacZOkFAsTg2/builds/woNUDBCPTAfhUaMwK/openapi.json
