# 🌐 VK B2B Email Scraper (`scraper-engine/vk-b2b-emails-scraper`) Actor

- **URL**: https://apify.com/scraper-engine/vk-b2b-emails-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 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/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

## 🌐 VK B2B Email Scraper

**Automatically discover verified business emails from VK social media profiles, posts, and bios** using automated public web discovery — no VK login required, no API keys needed.

> 📊 **Tier Rating:** TIER 3 — Moderate

> ⚠️ **Note:** This platform has moderate anti-scraping protections. Residential proxy is recommended for best results.

***

### 🚀 Why Choose This Actor?

- ⚡ **Fast & Efficient** — Uses browser impersonation (not a full headless browser) for maximum speed with minimal resource usage
- 🎯 **B2B Focused** — 29 pre-built search patterns specifically engineered to find corporate emails (not Gmail/Yahoo noise)
- 🔒 **Reliable Connection Handling** — Automatic retry logic keeps collection running smoothly
- 📊 **Live Results** — Each email is saved to your dataset in real time as it's discovered
- 🌍 **Location Targeting** — Filter results by city, region, or country for hyper-local prospecting
- 🔑 **Multi-Keyword** — Process dozens of industries/niches in a single run

***

### ✨ Key Features

- 🏢 **B2B Mode** — Corporate email discovery (contact@, info@, team@, domain-specific)
- 👤 **Personal Mode** — Broader discovery including all email types
- 🎨 **29 Pattern Templates** — From booking emails to sponsorship inquiries
- 🔄 **Smart Deduplication** — Each email address appears only once in your results
- 📍 **Geographic Filtering** — Target specific cities or regions
- 🌐 **Platform Locked to VK** — Optimized search queries for VK.com
- ⚡ **Jitter Delays** — Human-like request timing to avoid detection
- 📈 **Real-Time Progress** — Live status updates and per-result logging

***

### 📥 Input Configuration

```json
{
  "keywords": ["marketing", "restaurants", "fitness"],
  "platform": "VK.com",
  "location": "London",
  "mode": "b2b",
  "maxEmails": 50,
  "maxEmailsPerPattern": 15,
  "patterns": ["email_for_bookings", "bio_email_basic", "contact_at_domain"],
  "proxyConfiguration": { "useApifyProxy": false }
}
```

| Field | Type | Description |
|-------|------|-------------|
| `keywords` | `array` | 🔑 Industries/niches to search (required) |
| `platform` | `string` | 🌐 Platform domain (default: `VK.com`) |
| `location` | `string` | 📍 City/region filter (optional, leave empty for global) |
| `mode` | `string` | 🎯 `b2b` (corporate emails) or `personal` (all types) |
| `maxEmails` | `integer` | 📊 Total email cap (1–50000, default: 10) |
| `maxEmailsPerPattern` | `integer` | 🔢 Per-pattern cap in B2B mode (default: 15) |
| `selectedPatterns` | `array` | 🎨 Specific patterns (empty = all 29 patterns) |
| `proxyConfiguration` | `object` | 🔒 Proxy settings (default: recommended configuration) |

***

### 📤 Output Format

Each discovered email is saved as a row in the Apify dataset:

```json
{
  "email": "info@example-business.com",
  "leadType": "b2b",
  "pattern": "email_for_bookings",
  "keyword": "marketing",
  "location": "London",
  "network": "VK.com",
  "title": "For bookings email info@example-business.com",
  "description": "Professional marketing agency serving London businesses...",
  "url": "https://www.vk.com/...",
  "scraped_at": "2026-05-25T15:00:00Z"
}
```

| Field | Description |
|-------|-------------|
| `email` | ✅ The discovered business email address |
| `leadType` | 🏷️ `b2b` or `personal` |
| `pattern` | 🎨 B2B search pattern that found this email |
| `keyword` | 🔑 Keyword used in the search |
| `location` | 📍 Location filter applied |
| `network` | 🌐 Platform (e.g., VK.com) |
| `title` | 📋 Result title containing the email |
| `description` | 📝 Snippet text describing the result |
| `url` | 🔗 Source VK page URL |
| `scraped_at` | ⏰ UTC timestamp when the email was found |

***

### 🎨 Available B2B Patterns

| Pattern | What It Finds |
|---------|--------------|
| `email_for_bookings` | 📅 Booking & reservation emails |
| `bio_email_basic` | 📧 Bio email mentions with emoji |
| `job_applications` | 💼 Hiring & careers emails |
| `email_direct_mention` | 📬 Direct "email us at" posts |
| `contact_at_domain` | 🏢 `info@`, `contact@`, `hello@`, etc. |
| `business_development` | 🤝 B2B & partnership emails |
| `careers_hiring` | 👥 Recruitment contacts |
| `hr_recruitment` | 🏭 HR department emails |
| `customer_service` | 🎧 Support & help desk emails |
| `sponsor_me` | 💰 Sponsorship opportunity emails |
| `professional_services` | 🔧 Agency & consulting contacts |
| `bio_email_emoji_extended` | 💌 📩 📮 Emoji email mentions |
| `dm_or_email` | 💬 DM or email CTA posts |
| + 16 more | ... |

***

### 🚀 How to Use (Apify Console)

1. 🔐 Log in at [console.apify.com](https://console.apify.com) → **Actors**
2. 🔍 Find **VK B2B Email Scraper** and click it
3. ⚙️ Configure your inputs:
   - Add your target keywords (e.g., `marketing`, `restaurants`)
   - Set your location (e.g., `London`, `New York`)
   - Choose mode: `B2B` for corporate emails
   - Set max emails (e.g., `100`)
4. ▶️ Click **Start**
5. 📊 Watch real-time logs as emails are discovered
6. 📋 Open the **Output** tab to see your results table
7. 📁 Export to **JSON / CSV / Excel**

***

### 🔒 Reliability

The actor automatically retries transient connection issues so a single hiccup does not interrupt your run — failed requests are retried before being skipped, and collection continues with the next query.

***

### 🎯 Best Use Cases

- 🏢 **B2B Sales Outreach** — Find corporate emails of businesses in your niche
- 📍 **Local Business Prospecting** — Target businesses in specific cities
- 🤝 **Partnership Discovery** — Find influencer/brand partnership contact emails
- 📧 **Email List Building** — Build verified, corporate email lists for campaigns
- 🔍 **Market Research** — Understand which businesses are active in your niche

***

### ⚠️ Legal & Ethical Notice

- This actor only collects data from **publicly available**, indexed web sources
- Only emails that appear in **public VK content** are collected.
- Users are responsible for compliance with **GDPR, CAN-SPAM, CCPA**, and applicable laws
- Do not use collected emails for spam or unsolicited bulk messaging
- Review VK's Terms of Service and applicable third-party terms before use

***

### ❓ Frequently Asked Questions

**Q: Does this need a VK account?**
A: No — it searches publicly indexed VK content.

**Q: Will it find private account emails?**
A: No — only publicly indexed VK content is searched.

**Q: How many emails can I collect per run?**
A: Up to 50,000 per run. Run multiple times for larger lists.

**Q: What makes B2B mode different?**
A: B2B mode filters out Gmail, Yahoo, Outlook, and other personal email domains, returning only corporate/domain-specific emails.

**Q: Do I need Apify proxies?**
A: Proxies are recommended and enabled by default for the most reliable results.

***

### 📞 Support & Feedback

- 🐛 Report issues in the **Issues** tab
- 💡 Feature requests welcome
- ⭐ If this actor saves you time, please leave a review!

# Actor input Schema

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

🔎 Search terms for VK (e.g. handmade, фотограф, дизайнер). 🇷🇺 VK's audience is heavily Russian-speaking — Cyrillic business/profession terms typically surface far more real contact emails than generic English marketing terms. ✨ Add one or many keywords.

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

👤 personal = Gmail/Outlook discovery | 🏢 b2b = corporate email patterns

## `customDomains` (type: `array`):

👤 Personal mode: filter results to these domains (e.g. @gmail.com, @outlook.com). ⏭️ Ignored in B2B mode.

## `patterns` (type: `array`):

🏢 B2B only: 📂 empty list runs all patterns; or name specific keys from b2b\_patterns.py (e.g. email\_for\_bookings, bio\_email\_basic).

## `platform` (type: `string`):

📱 Target platform for email discovery (locked to VK).

## `location` (type: `string`):

🗺️ Geographic filter added to search queries (e.g. London, New York). 🌍 Leave empty for global results.

## `maxEmails` (type: `integer`):

🎯 Maximum number of emails to collect across all keywords and patterns.

## `maxEmailsPerPattern` (type: `integer`):

📈 Cap emails collected per B2B search pattern (🏢 B2B mode only).

## `useProxy` (type: `boolean`):

✅ Enable proxy for Google Search requests. ⭐ Recommended: on for best results.

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

🔧 Optional proxy override when 🛡️ Use Apify Proxy is enabled. 🎯 Leave as default for best performance.

## Actor input object example

```json
{
  "keywords": [
    "handmade",
    "фотограф",
    "дизайнер"
  ],
  "mode": "b2b",
  "customDomains": [
    "@outlook.com",
    "@gmail.com"
  ],
  "patterns": [
    "bio_email_basic",
    "email_us_at_variations",
    "bio_email_emoji_extended",
    "contact_at_domain"
  ],
  "platform": "VK.com",
  "location": "",
  "maxEmails": 10,
  "maxEmailsPerPattern": 15,
  "useProxy": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# 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": [
        "handmade",
        "фотограф",
        "дизайнер"
    ],
    "customDomains": [
        "@outlook.com",
        "@gmail.com"
    ],
    "patterns": [
        "bio_email_basic",
        "email_us_at_variations",
        "bio_email_emoji_extended",
        "contact_at_domain"
    ],
    "location": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/vk-b2b-emails-scraper").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": [
        "handmade",
        "фотограф",
        "дизайнер",
    ],
    "customDomains": [
        "@outlook.com",
        "@gmail.com",
    ],
    "patterns": [
        "bio_email_basic",
        "email_us_at_variations",
        "bio_email_emoji_extended",
        "contact_at_domain",
    ],
    "location": "",
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/vk-b2b-emails-scraper").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 '{
  "keywords": [
    "handmade",
    "фотограф",
    "дизайнер"
  ],
  "customDomains": [
    "@outlook.com",
    "@gmail.com"
  ],
  "patterns": [
    "bio_email_basic",
    "email_us_at_variations",
    "bio_email_emoji_extended",
    "contact_at_domain"
  ],
  "location": ""
}' |
apify call scraper-engine/vk-b2b-emails-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraper-engine/vk-b2b-emails-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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