# VK Influencer Email Finder — Russian Creator Leads (`funny_ground/vk-influencer-finder`) Actor

Find VK creators by niche, audience, country, language, and views. Export public email, phone, Telegram, social, website, and manager contacts. $0.50 per 100 paid-plan leads.

- **URL**: https://apify.com/funny\_ground/vk-influencer-finder.md
- **Developed by:** [Coor Yu](https://apify.com/funny_ground) (community)
- **Categories:** Lead generation, Marketing, Social media
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 qualified creator leads

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## VK Influencer Email Finder — Russian Creator Leads

Find public creators on **VK, VKontakte, and VK Video** by niche and export outreach-ready leads. The Actor discovers creators through their public niche videos, enriches their VK profile or community, applies strict audience/location/language filters, and can return only creators with an explicit public contact channel.

No VK login, customer API token, browser, residential proxy, or CAPTCHA service is required. The normal path is anonymous HTTP, which keeps platform usage low.

### What makes a result qualified?

Each charged dataset row has passed every selected filter:

- Original niche or a bounded, traceable related/localized query
- Globally deduplicated VK creator owner
- Selected creator type: community/public page and/or personal profile
- Minimum and maximum audience size
- Optional minimum average views across keyword-matched video samples
- Optional verified-only filter
- Strict public country and language evidence when those filters are active
- At least one explicit public contact when `onlyWithContact` is enabled

The Actor continues through search pages and candidate profiles until it fills the requested qualified-result count, the public source is exhausted, or a configured safety limit is reached. A run that produces zero valid rows fails visibly instead of reporting a misleading success.

### Quick start

```json
{
  "keywords": ["косметика"],
  "maxCreatorsPerKeyword": 10,
  "minFollowers": 1000,
  "maxFollowers": 500000,
  "onlyWithContact": true,
  "keywordExpansion": "auto"
}
```

For the cheapest first validation, request one creator, keep expansion off, and avoid country/language filters:

```json
{
  "keywords": ["фитнес"],
  "maxCreatorsPerKeyword": 1,
  "onlyWithContact": true,
  "keywordExpansion": "off",
  "maxPagesPerQuery": 2,
  "maxCandidatesPerKeyword": 40
}
```

### Public contacts detected

The Actor extracts only information that creators published openly:

- Email addresses, including common `(at)` and `[at]` forms
- Phone numbers from explicit public contact text and VK community contact records
- Telegram, Instagram, YouTube, TikTok, X/Twitter, RuTube, and MAX
- Explicit profile/community websites
- Named VK community managers exposed by VK's public contact field

Generic VK profile URLs and unlabeled links inside a matched video's advertising copy do not satisfy the contact filter. This prevents ordinary content links from being sold as outreach contacts.

### Output

One row is one qualified creator lead:

```json
{
  "keyword": "косметика",
  "matchedQuery": "косметика",
  "relatedKeyword": null,
  "expansionSource": null,
  "creatorId": "-78522286",
  "creatorType": "community",
  "username": "creator_handle",
  "nickname": "Creator name",
  "followerCount": 116747,
  "profileFollowerCount": 116747,
  "videoFollowerCount": null,
  "verified": false,
  "primaryContactType": "email",
  "primaryContact": "hello@example.com",
  "email": "hello@example.com",
  "telegram": "https://t.me/creator_handle",
  "phone": null,
  "website": null,
  "managerVkUrl": null,
  "countryCode": "RU",
  "countrySource": "profile_country",
  "language": "ru",
  "languageConfidence": "high",
  "sampleVideoCount": 10,
  "averageViews": 10320,
  "averageLikes": 575,
  "averageComments": 16,
  "averageReposts": 24,
  "engagementRatePercent": 5.955,
  "matchedVideoUrl": "https://vkvideo.ru/video-78522286_456239724",
  "profileUrl": "https://vk.com/creator_handle",
  "vkVideoProfileUrl": "https://vkvideo.ru/@creator_handle/all",
  "scrapedAt": "2026-09-17T06:57:00.000Z"
}
```

`averageViews` and `engagementRatePercent` describe only the videos encountered for the selected search queries. They are labeled as sampled metrics and are not presented as lifetime channel averages.

### Main options

| Field | Default | Purpose |
|---|---:|---|
| `keywords` | curated niches | Russian or Latin creator niches; up to 50 |
| `maxCreatorsPerKeyword` | `50` | Qualified, globally deduplicated creators per original keyword |
| `minFollowers` | `0` | Minimum followers/community members |
| `maxFollowers` | `0` | Maximum followers; `0` is unlimited |
| `minAverageViews` | `0` | Minimum sampled average views; `0` disables it |
| `onlyWithContact` | `true` | Require an explicit public outreach channel |
| `creatorTypes` | both | Communities/public pages, personal profiles, or both |
| `verifiedOnly` | `false` | Return only VK-verified creators |
| `keywordExpansion` | `auto` | `auto`, `broad`, or `off` |
| `maxRelatedKeywords` | `4` | Related/localized niche alternatives per original keyword |
| `countries` | any | Strict public country evidence filter |
| `languages` | any | Public profile and matched-video text language filter |
| `minimumLanguageConfidence` | `medium` | `high`, `medium`, or `low` |
| `includeClips` | `true` | Use public VK Clips for discovery and sample metrics |
| `maxPagesPerQuery` | `20` | Pagination guard for each query variant |
| `maxCandidatesPerKeyword` | `1000` | Maximum owners checked before filtering |
| `maxRequestRetries` | `2` | Transient VK/network retry limit |

### Country and language evidence

Country filtering is deliberately strict. The Actor uses VK's explicit country field, a public profile city, or an unambiguous country/city mention in profile text. Unknown creators are excluded when a country filter is active; Russian-language text alone is not treated as proof of Russian residence.

Language detection combines creator profile text with the matched public video titles/descriptions and reports both confidence and evidence source. When a language filter is active, below-threshold or unknown results are excluded.

### Keyword expansion

`auto` first searches the user's exact term and any localization required by active filters. If qualified results are still short, it adds a bounded set of curated Russian/English niche equivalents and hashtags independently observed across multiple creators.

`broad` accepts single-creator hashtag evidence and tries more variants. `off` uses only original/base-localized queries. Every expanded result records `matchedQuery`, `relatedKeyword`, and `expansionSource` so the discovery path remains auditable.

### Pricing

- Bronze and higher plans: **$0.005 per qualified result** — $0.50 per 100
- Free plan: **$0.025 per qualified result** — 5× the Bronze price
- Actor start: **$0.00005**
- Standard Apify platform usage is billed separately to the user
- Only rows actually written to the default dataset incur the result fee
- Free-plan users have a developer-set global limit of **50 rows per run**

The platform's Pricing tab is authoritative.

### API example

```bash
curl -X POST "https://api.apify.com/v2/acts/funny_ground~vk-influencer-finder/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["косметика"],"maxCreatorsPerKeyword":10,"minFollowers":1000,"onlyWithContact":true}'
```

### Русский

Actor ищет публичных авторов и сообщества VK/VK Video по тематике, проверяет размер аудитории, выборку просмотров, страну, язык и наличие контактов. Можно возвращать только лиды с публичным email, телефоном, Telegram, соцсетями, сайтом или указанным менеджером VK. Авторизация VK, браузер и прокси не нужны.

Для первого дешёвого запуска используйте один русский запрос, `maxCreatorsPerKeyword: 1`, `keywordExpansion: "off"` и не включайте строгий фильтр страны, если география не обязательна.

### 中文

本 Actor 按领域发现公开 VK/VK Video 达人及社群，筛选粉丝量、样本播放量、认证、国家和语言，并可只输出带公开邮箱、电话、Telegram、外部社媒、网站或 VK 负责人的合格线索。无需 VK 登录、浏览器、住宅代理或用户 API Token。

建议首次低成本验证使用 1 个俄语关键词、`maxCreatorsPerKeyword: 1`、关闭扩搜；只有确实需要地域约束时才开启国家过滤，因为公开地域未知的达人会被严格排除。

### Limitations and responsible use

- Public content and public profile/community fields only; private, deleted, blocked, or unavailable owners are skipped.
- VK can change anonymous web responses without notice. The Actor validates shapes and fails visibly rather than fabricating leads.
- Contact availability varies by niche. Broaden the audience range, disable strict geography, or turn off `onlyWithContact` when a valid search is too narrow.
- Shortened URLs are retained but are not resolved, avoiding extra requests and redirect-tracking risk.
- Search ranking and engagement counts are point-in-time public snapshots.
- Use public contact data for legitimate, relevant outreach. Respect privacy, anti-spam law, platform terms, and opt-out requests.

### Related Actor

- [VK Video Scraper — Search, Channels & MP4](https://apify.com/funny_ground/vk-video-scraper)
- [TikTok Influencer Email Finder — Niche Creator Leads](https://apify.com/funny_ground/tiktok-influencer-finder)

# Actor input Schema

## `keywords` (type: `array`):

Creator niches to search, one per line. Russian and Latin queries are supported. Leave empty to scan a curated set of common commercial niches.

## `minFollowers` (type: `integer`):

Only keep creators with at least this many followers or community members. For personal profiles, the larger of public profile followers and VK Video followers is used. 0 means no minimum.

## `maxFollowers` (type: `integer`):

Only keep creators with at most this many followers or members. Useful for micro- and mid-tier creator discovery. 0 means no maximum.

## `minAverageViews` (type: `integer`):

Require at least this average view count across the creator's videos encountered during keyword discovery. This is a search-matched sample, not a lifetime channel average. 0 disables the filter.

## `maxCreatorsPerKeyword` (type: `integer`):

Maximum globally deduplicated, qualified creators returned for each original keyword. Discovery continues through pages and related queries until this target, source exhaustion, or a safety limit. A separate global 50-row cap applies to Free-plan runs.

## `onlyWithContact` (type: `boolean`):

Enabled by default. Excludes creators without an explicit public email, phone, Telegram, Instagram, YouTube, TikTok, X, website, or named VK manager.

## `creatorTypes` (type: `array`):

Choose VK communities/public pages, personal profiles, or both.

## `verifiedOnly` (type: `boolean`):

When enabled, only VK-verified creators are returned.

## `keywordExpansion` (type: `string`):

Auto expands only when the original query does not fill the requested count. It uses curated Russian/English niche equivalents and hashtags supported by multiple creators. Broad accepts single-creator hashtag evidence and more variants. Off searches only the original and active-filter localized queries.

## `maxRelatedKeywords` (type: `integer`):

Maximum semantic alternatives derived for each original keyword. All selected filters still apply to combined results.

## `countries` (type: `array`):

Strict filter based on explicit public VK country/city/profile evidence. Creators whose country cannot be established are excluded when this filter is active.

## `languages` (type: `array`):

Filter using public profile text and keyword-matched video captions. Unknown or below-threshold detections are excluded when active.

## `minimumLanguageConfidence` (type: `string`):

Applied only when Content languages is set. Medium is recommended; High is stricter and may return fewer creators.

## `includeClips` (type: `boolean`):

Include short\_video results when discovering creators and calculating matched-video sample metrics.

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

Hard pagination safety limit for each original, localized, or related search query.

## `maxCandidatesPerKeyword` (type: `integer`):

Hard safety cap before filtering. Raising it can find more contact-qualified creators but increases VK requests and runtime.

## `requestTimeoutSecs` (type: `integer`):

Timeout for each anonymous VK HTTP request.

## `maxRequestRetries` (type: `integer`):

Retries for temporary VK rate limits, network failures, and server errors.

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

Compatibility field. It is ignored because direct anonymous VK HTTP is faster and cheaper for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "косметика",
    "фитнес",
    "travel"
  ],
  "minFollowers": 0,
  "maxFollowers": 0,
  "minAverageViews": 0,
  "maxCreatorsPerKeyword": 10,
  "onlyWithContact": true,
  "creatorTypes": [
    "community",
    "profile"
  ],
  "verifiedOnly": false,
  "keywordExpansion": "auto",
  "maxRelatedKeywords": 4,
  "countries": [],
  "languages": [],
  "minimumLanguageConfidence": "medium",
  "includeClips": true,
  "maxPagesPerQuery": 20,
  "maxCandidatesPerKeyword": 1000,
  "requestTimeoutSecs": 30,
  "maxRequestRetries": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All matched VK creators in the default dataset overview. Contact fields can be empty when onlyWithContact is false.

## `summary` (type: `string`):

Discovery, filtering, request, and output statistics for this run.

# 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 = {
    "keywords": [
        "косметика"
    ],
    "maxCreatorsPerKeyword": 10,
    "onlyWithContact": true,
    "keywordExpansion": "auto",
    "maxRelatedKeywords": 4,
    "minimumLanguageConfidence": "medium",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("funny_ground/vk-influencer-finder").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 = {
    "keywords": ["косметика"],
    "maxCreatorsPerKeyword": 10,
    "onlyWithContact": True,
    "keywordExpansion": "auto",
    "maxRelatedKeywords": 4,
    "minimumLanguageConfidence": "medium",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("funny_ground/vk-influencer-finder").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 '{
  "keywords": [
    "косметика"
  ],
  "maxCreatorsPerKeyword": 10,
  "onlyWithContact": true,
  "keywordExpansion": "auto",
  "maxRelatedKeywords": 4,
  "minimumLanguageConfidence": "medium",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call funny_ground/vk-influencer-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,funny_ground/vk-influencer-finder"
        }
    }
}
```

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/QDhnDHHI5NSa7E0B5/builds/Jh77L9ady39pNo0eT/openapi.json
