# VK Email Scraper (`fastdataapi/vk-email-scraper`) Actor

VK Email Scraper finds public VK pages with contact emails from your keywords: page title, snippet, link and email, one row per match. Filter by location and email domain. No VK account or login. Export as JSON, CSV or Excel, or use the API.

- **URL**: https://apify.com/fastdataapi/vk-email-scraper.md
- **Developed by:** [Fast Data API](https://apify.com/fastdataapi) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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.
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 Email Scraper — Titles, Snippets, Links and Email Addresses

VK Email Scraper searches Google for public VK pages that match your keywords and returns the page title, a text snippet, the page link and the email address it finds there. It is a practical **vk email finder** for any niche - groups, community pages, sellers - with no VK account, login or cookies required. Every result comes back as structured JSON, ready to feed an LLM, a vector store or a lead-generation pipeline. Start with one keyword, then scale to as many as your list needs.

![VK Email Scraper: every page and email from VK pages as JSON](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/k-vk-email-hero.webp)

***

### What data can I extract with VK Email Scraper?

Using this vkontakte email extractor, you will be able to extract the following VK page data:

| | | | |
|---|---|---|---|
| 🌐 Source network | 🔑 Matching keyword | 📝 Page title | 📄 Text snippet |
| 🔗 Page link | 📧 Email address | | |

***

### How to use VK Email Scraper

Anyone who needs to find emails on vk by niche - marketers, recruiters, community managers - gets a ready-to-use list from one run.

**Copy to your AI assistant:**

```text
VK Email Scraper is an Apify Actor that returns public VK pages matching your keywords as structured JSON: the source network, the matching keyword, the page title, a text snippet, the page link and the email address. Use it whenever someone needs VK leads without cookies, a login, or a browser - building an outreach list by niche, checking which groups or members publish a contact address, or feeding a lead-generation pipeline with fresh results. Inputs: keywords (array of strings, one or more keywords to search, required), location (string, optional city or region, empty searches worldwide, default empty), emailDomains (array of strings, optional list of domains to keep such as "@gmail.com", empty keeps any domain, default empty), maxEmails (integer, 1-100,000, default 10, maximum results per keyword), engine (string, only "legacy" is available, default "legacy"), proxyConfiguration (object, connection settings, default picks a suitable proxy automatically). Free-plan runs are limited to 20 emails per keyword per run and 200 per month; paid plans have no limit.
```

#### VK Email Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Apify's MCP server and it can find and call this actor directly - no glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/vk-email-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up) - the free plan covers up to 200 emails a month.
2. Open [VK Email Scraper](https://apify.com/fastdataapi/vk-email-scraper) in the Apify Store.
3. Enter one or more keywords.
4. Click **Start**.
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale VK Email Scraper to bulk

Add as many keywords as you like in one run - each keyword is searched on its own, and several run at the same time, so a long list does not run one keyword after another. Raise the maximum-emails setting up to 100,000 per keyword if you need deep coverage on a smaller list instead of a wide one. For a list that refreshes on its own, schedule the actor to run on a timer and pull new results automatically. In short, it's a vk wall post email scraper that scales from one niche to your whole list.

***

### ✨ Features

VK Email Scraper fetches clean, structured results from public VK pages. It's ideal for building lead lists by niche, using it to extract emails from vk profiles and wall posts, running outreach campaigns and feeding a CRM or automation pipeline.

It extracts, per result:

- **Email address** – the public contact address found on the page
- **Page link** – where the match was found, so you can verify it yourself
- **Title** – the page's heading, usually the start of a wall post
- **Text snippet** – the surrounding text that shows the email in context
- **Location filter** – narrow results to a city or region
- **Email domain filter** – keep only the domains you care about, e.g. @gmail.com

⚡ No VK account, login or cookies needed, and a blocked page is retried automatically.

***

### Use cases 💡

- **Marketer** — build a list of groups and sellers in your niche who share a public email.
- **Recruiter** — as a vk group contact email finder, find community admins with a listed contact address.
- **Community manager** — see which public VK pages in a niche publish contact details.
- **Growth marketer** — as a vk lead generation tool, build outreach lists by keyword and city.
- **AI agent builder** — feed the structured JSON straight into a RAG pipeline or lead-scoring agent.

Building an AI agent? [Connect VK Email Scraper over MCP](#mcp-integration-for-ai-agents) and let it call the actor on its own.

***

### Why choose this actor?

1. **Up to 100,000 emails per keyword.** The maximum-emails setting accepts anywhere from 1 to 100,000 per keyword, and you can search as many keywords as you want in one run.
2. **Real vk contact emails, not guesses.** A recorded run returned a real wall post with a seller's email read straight from the comment text - addresses cut off mid-snippet, placeholder text and prose fragments are rejected, so every email in the dataset is one a person actually published.
3. **Automatic retries, fewer blank runs.** A blocked or failed page is retried automatically, up to 3 attempts, before the actor moves on.

***

### ⬇️ Input

![VK Email Scraper input: keywords, location, email domains and max emails](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/k-vk-email-input.webp)

This actor accepts one or more keywords - keywords is the only required field. Location and email-domain filters narrow the search, and the maximum-emails setting controls how many results come back per keyword.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| keywords | Yes | array | One or more keywords to search. Each keyword is searched separately. | `["fitness coach", "makeup artist"]` |
| location | No | string | Optional city or region. Empty searches worldwide. Default: empty. | `"London"` |
| emailDomains | No | array | Keep only emails from these domains (the @ is optional). Empty keeps any domain. Default: empty. | `["@gmail.com", "@outlook.com"]` |
| maxEmails | No | integer | Maximum emails per keyword, 1-100,000. Default: 10. | `100` |
| engine | No | string | Processing engine. Only "legacy" is available. Default: "legacy". | `"legacy"` |
| proxyConfiguration | No | object | Connection settings. Default picks a suitable proxy automatically. | `{"useApifyProxy": false}` |

#### Free plan limits

Users on the Apify free plan can fetch up to 20 items per run (all keywords together) and 200 items per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

#### Example input

```json
{
  "keywords": ["fitness coach", "makeup artist"],
  "location": "London",
  "emailDomains": ["@gmail.com", "@outlook.com"],
  "maxEmails": 100,
  "engine": "legacy",
  "proxyConfiguration": { "useApifyProxy": false }
}
```

***

### ⬆️ Output

![VK Email Scraper output: one row per match with network, keyword, title and email](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/k-vk-email-output.webp)

Every result is one typed, normalized JSON item with the same six fields on every run: the source network, the matching keyword, the page title, a text snippet, the page link and the email address. Export your results as JSON, CSV or Excel.

#### Example output

```json
[
  {
    "network": "vk.com",
    "keyword": "shop",
    "title": "Envio los audios por correo electronico, quien necesita. 2026",
    "description": "Apr 24, 2022 - mi correo es skalleja.shop@gmail.com. 1 jul 2022 - Marcela Matamoros ... anaclovinho@outlook.com Gracias! 29 jul 2022 - Irina Mikhailova. Hola ... Read more",
    "url": "https://m.vk.com/wall-88614728_2235",
    "email": "skalleja.shop@gmail.com"
  }
]
```

***

### How does it work?

The actor searches Google for public VK pages that match your keywords, then reads the title, text snippet, page link and email address straight off each result - no VK account or login needed. Requests go through rotating proxies, and a blocked or failed page is retried automatically with a fresh connection. Think of it as a vk community email lookup you can run by keyword, with no login and no cookies required. Only publicly visible text is read - nothing a visitor without an account could not already see. The output schema is normalized and stays the same shape on every run, so a layout change on VK never changes your data pipeline.

***

### How do you integrate VK Email Scraper into your stack?

It fits naturally into existing CRM or outreach workflows, whether you call it from code, from an AI agent, or from a no-code tool: a REST API from any language, the Apify MCP server for AI agents, or a no-code tool like n8n or Make.

#### MCP integration for AI agents

Point your AI assistant at Apify's MCP server and it can find and call this actor directly - no glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/vk-email-scraper"
```

This preloads VK Email Scraper directly as a tool your agent can call - no searching for or adding the actor afterward needed. Works in Claude Code, Cursor and Windsurf.

#### No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node's "Run an Actor" action, or the HTTP Request node pointed at the run-sync endpoint with your API token. In Make, use the Apify app's "Run an Actor" module followed by "Get Dataset Items". In LangChain, install `langchain-apify` and call `ApifyActorsTool()` once the actor is live in your account.

***

### Is it legal to scrape VK data?

Using this actor to scrape vk business emails from public pages is generally considered legal in most jurisdictions, though the exact rules vary by country. The actor returns only publicly available data - the title, text snippet, link and email address any visitor can already see without logging in. Email addresses found this way come from public text on the page, and using them must still follow anti-spam law such as CAN-SPAM or GDPR, which limits how collected contact details may be stored and used. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does VK Email Scraper return?

Every result includes the source network, the matching keyword, the page title, a text snippet, the page link and the email address - see [the data fields section](#what-data-can-i-extract-with-vk-email-scraper).

#### Does VK Email Scraper require a VK account or login?

No. The actor reads only public pages and needs no cookies, login or account.

#### What happens if a keyword has no matching public page?

Nothing is returned for that keyword rather than an error row. If you expected results, try a broader keyword, remove the location filter or add more email domains.

#### Can I search multiple keywords at once?

Yes. Pass an array of keywords in one run - each one is searched on its own and several run side by side, with every result tagged by the keyword that found it.

#### Does VK Email Scraper work with Claude, ChatGPT and other AI agent tools?

Yes - VK Email Scraper is available as an MCP tool.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/vk-email-scraper"
```

It's preloaded in Claude Code, Cursor or Windsurf - no need to search for it. Any agent that can call an HTTP endpoint can use the REST API directly.

#### Does VK Email Scraper return data in a format LLMs can use directly?

Yes. Every result is typed, normalized JSON with consistent field names - no HTML parsing, no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool.

#### What happens when VK changes its layout or anti-bot system?

The actor is maintained and updated whenever the public page layout changes, so your calls keep returning the same JSON schema with no changes on your end.

#### Can I use VK Email Scraper without managing proxies or browser infrastructure?

Yes. Proxy rotation and retrying blocked pages run on the actor's side. You send one request and get structured JSON back - no proxy accounts to set up, and no browser to install or maintain, since the actor doesn't use one.

#### Which fields work best for AI training data and RAG indexing?

For RAG indexing: the page title, text snippet and page link carry the descriptive context worth embedding. For training data: the keyword and email fields are plain strings - every field is a typed primitive, so no extra normalization is needed.

***

### Your feedback

Found a bug or missing a field? Let us know in the actor's Issues tab. We read every report and ship fixes, so your note helps keep the data accurate for everyone.

# Actor input Schema

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

One or more keywords (e.g. marketing, coach, photographer, fitness). Each keyword is searched separately on public VK pages and every email found is returned with the keyword that found it. More specific keywords give more targeted leads.

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

Optional city or region (e.g. London, New York, Dubai). Only pages that mention this place are kept. Leave empty to search worldwide.

## `emailDomains` (type: `array`):

Keep only emails of these domains, e.g. @gmail.com, @outlook.com, @hotmail.com, @yahoo.com, @icloud.com or a business domain like @yourcompany.com (the @ is optional). The domains also sharpen the search. Leave empty to collect emails of any domain.

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

How many emails to collect per keyword (1 - 100,000). A keyword stops earlier when no more public results with an email are available. Free plan users are limited to 20 items per run in total (across all keywords) and 200 items per month; paid plans have no limit.

## `engine` (type: `string`):

Processing engine. Only 'legacy' is available.

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

How the actor connects. Leave it as it is and a suitable Apify proxy is selected automatically. When a page is blocked the actor retries with a fresh proxy session (up to 3 attempts per page). You can also choose your own Apify proxy groups or custom proxy URLs.

## Actor input object example

```json
{
  "keywords": [
    "marketing"
  ],
  "location": "",
  "emailDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "engine": "legacy",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Dataset rows: network, keyword, title, description, url, email.

# 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": [
        "marketing"
    ],
    "emailDomains": [
        "@gmail.com"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/vk-email-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": ["marketing"],
    "emailDomains": ["@gmail.com"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/vk-email-scraper").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": [
    "marketing"
  ],
  "emailDomains": [
    "@gmail.com"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call fastdataapi/vk-email-scraper --silent --output-dataset

```

## MCP server setup

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

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/dVOvbMznqIoVgcwOS/builds/uwXNbRviOBX3FIKFA/openapi.json
