# VK Wall Posts Scraper | Парсер ВКонтакте: 20 Posts in 9s (`themineworks/vk-wall-posts-scraper`) Actor

Scrape public VK (VKontakte) wall posts from communities, public pages and public profiles: text, date, likes, shares, views, photos, videos and links, with the community name and member count. Date filter. No login, no token, no browser. Pay per post.

- **URL**: https://apify.com/themineworks/vk-wall-posts-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Social media, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 posts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 Wall Posts Scraper | Парсер ВКонтакте: 20 Posts in 9s

[![200 VK posts in 14 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/vk-wall-posts-scraper-hero.png)](https://console.apify.com/actors/3U9tuV1CR3FHZhX8d/input)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), with over 140,000 runs across 170+ public actors. This actor ranks #1 for "vk wall" in Apify Store search.

### Why choose this actor?

- **Any public VK wall, newest posts first.** Give communities, public pages or public profiles and get one row per post: the full text, the date, likes, shares, views, photos, videos, clips, links and articles, and on every row the community's name, type, exact member count and total posts. Our proof run read **200 posts from 4 walls in 14 seconds**. No VK account, no access token, no cookies.
- **Only the posts you want, only the posts you pay for.** Set "Posted within the last N days" and the actor stops reading a wall at the first older post, so older posts are neither read nor charged. A daily schedule with 1 day gives you each day's new posts.
- **Nothing charged for walls you cannot get.** Names that do not exist, closed or private communities, closed profiles, deleted pages, empty walls and refused pages cost nothing, and the run summary says why for each one.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/3U9tuV1CR3FHZhX8d/input)

**Part of The Mine Works Social media and video family:** [Threads Scraper](https://apify.com/themineworks/threads-scraper), [Reddit Scraper](https://apify.com/themineworks/reddit-scraper), [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper), [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper), [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper), [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper).

### Try it in one minute

Paste this input and press Start. It returns the 10 newest posts of Habr's VK page:

```json
{
  "communities": ["habr"],
  "maxPostsPerCommunity": 10
}
```

You can name a wall in any of these ways, and mix them in one run:

- **A link** on vk.com, vk.ru or m.vk.com: `https://vk.com/rbc`, `vk.ru/habr`. A link to one of the community's posts works too: its wall is read.
- **A screen name**: `rbc` or `@rbc`.
- **A numeric community id**: `25232578`, `-25232578`, `club25232578` or `public25232578`.
- **A personal page**: `https://vk.com/durov` or `id1`.

The same wall given twice is read once.

Apify's free plan includes $5 of credit every month, which covers about 2,400 posts at this actor's Free plan price.

#### Copy to your AI assistant

```text
themineworks/vk-wall-posts-scraper on Apify. Returns public VK (VKontakte) wall posts from communities, public pages and public profiles, newest first: text, date, likes, reposts, views, attachments (photos, videos, clips, links, articles), pinned and repost flags, plus the community name, type, member count and total posts on every row. Call ApifyClient("TOKEN").actor("themineworks/vk-wall-posts-scraper").call(run_input={"communities": ["rbc", "https://vk.com/habr"], "maxPostsPerCommunity": 50, "postedWithinDays": 7}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: communities (VK links, screen names, numeric ids or personal pages). Optional: maxPostsPerCommunity (default 50, 1 to 5,000), postedWithinDays (1 to 3,650; empty means no date filter). Views above 999 are rounded by VK; check views_is_rounded. Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~vk-wall-posts-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
```

### Key features

- **Up to 29 fields per post**: post id and link, community name, screen name, id, type, link, member count and total posts, date and its precision, text, likes, reposts, views and whether they were rounded, attachments, pinned and repost flags, the original author, link and text of a repost, co-authors of a joint post, the author of a member post, and the post's place on the wall.
- **Every kind of public wall**: public pages, groups, events and public personal pages.
- **Attachments by type**: photos, videos, clips, links, articles, documents and others, each with its `type`, `url` and a `title` where VK shows one. In our proof run: 141 photos, 26 videos, 11 links, 10 clips, 4 articles and 2 documents across 200 posts.
- **Up to 200 walls per run and 5,000 posts per wall**, 20 posts a page, three walls at a time.
- **Date filter that stops early**: `postedWithinDays` ends a wall at the first post older than your window; an old pinned post does not stop it.
- **Plain HTTP, no browser**, 256 MB of memory. A run summary (status per wall, member count, total posts, pages read, attempts, robots.txt state, charges) is saved as the `OUTPUT` record.

### How to use it

#### Basic: one wall

```json
{
  "communities": ["https://vk.com/rbc"],
  "maxPostsPerCommunity": 50
}
```

#### Several walls at once

```json
{
  "communities": ["rbc", "https://vk.com/habr", "lentach", "https://vk.com/durov"],
  "maxPostsPerCommunity": 50
}
```

This is the input of our proof run: 200 posts, 50 from each wall, in 14 seconds.

#### Daily media monitoring

Media monitoring and PR teams follow what news outlets, brands and public figures post. Keep only the last day and schedule the run every morning (Apify Console, Schedules, Add schedule):

```json
{
  "communities": ["rbc", "lentach", "habr"],
  "maxPostsPerCommunity": 200,
  "postedWithinDays": 1
}
```

Each wall is read until its posts get older than one day, so you pay only for the day's posts.

#### Competitor content benchmark

Marketers compare posting rhythm, formats and engagement across communities. Pull the last month of several walls and compare `likes`, `reposts` and `views` by attachment type and by community:

```json
{
  "communities": ["habr", "https://vk.com/rbc"],
  "maxPostsPerCommunity": 1000,
  "postedWithinDays": 30
}
```

Divide engagement by `community_members` to compare walls of different sizes.

#### Research dataset of public posts

Researchers build a corpus of public posts from a list of communities over a date range. Give the list and a window, then export the dataset as CSV or JSON:

```json
{
  "communities": ["public25232578", "club20629724"],
  "maxPostsPerCommunity": 5000,
  "postedWithinDays": 365
}
```

`date_precision` tells you how exact each date is, which matters when you bucket posts by hour.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `communities` | array of strings | required (Console prefill `rbc`) | One wall per line: a vk.com, vk.ru or m.vk.com link (post links work too), a screen name, a numeric community id (`25232578`, `-25232578`, `club25232578`, `public25232578`) or a personal page (a link or `id123`). Up to 200 per run; the same wall given twice is read once. `startUrls`, `urls`, `groups` and `targets` are accepted too. |
| `maxPostsPerCommunity` | integer | `50` (Console prefill `20`) | Most recent posts per wall, newest first, 1 to 5,000. A pinned post counts as one of them. VK shows 20 posts a page, so 20 is one page and 100 is five. |
| `postedWithinDays` | integer | none | Only posts from the last N days (1 to 3,650). Reading a wall stops at the first post older than that, so older posts are neither returned nor charged. An old pinned post does not stop it. |

### What data do you get?

One row per post. Fields with no value are left out of the row instead of being sent as null.

**The post**

- `post_id` (a minus sign means a community wall), `post_url`, `position` (1 is the top of the wall), `is_pinned`
- `date` (UTC) and `date_precision` (`minute`, `hour` or `day`, see the FAQ)
- `text` (the full post text, with line breaks and emoji)

**Engagement**

- `likes` and `reposts` (exact), `views` and `views_is_rounded` (VK shows views above 999 rounded, as `14K`)

**Attachments**

- `attachments`: a list of `type` (`photo`, `video`, `clip`, `link`, `article`, `doc` and others), `url`, and a `title` where VK shows one

**Reposts, joint posts and member posts**

- `is_repost`, `repost_of_name`, `repost_of_post_url`, `repost_text` (a shared post: who wrote the original, its link and its text)
- `co_authors` and `wall_copy_post_id` (a post published jointly by several communities: their names, and the post's id on this wall; `post_id` is the original)
- `author_name`, `author_id` (only for a post written by someone other than the wall owner, such as a member post on an open group wall)

**The wall**

- `community_name`, `community_screen_name`, `community_id`, `community_url`
- `community_type`: `page` (public page), `group`, `event` or `user` (a personal page)
- `community_members` (exact member count, or followers for a personal page), `community_posts_total` (posts on the wall in total, as VK shows it)

**Run context**

- `input` (the line you gave), `scraped_at`

Each run also ends with one row that has `"_type": "info"` and a short message. It is never billed; filter it out by `_type`.

#### Stable fields for automations

These fields were present in every one of the 200 posts of our proof run on 1 Oct 2026 (3 public pages and 1 personal page), and their names will not change:

| Field | What it holds |
|---|---|
| `post_id` | VK post id, for example `-20629724_1687837` |
| `post_url` | Link to the post on vk.com |
| `community_name` | Name of the wall's owner |
| `community_screen_name` | Screen name, for example `habr` |
| `community_id` | Numeric id of the community or person |
| `community_type` | `page`, `group`, `event` or `user` |
| `community_members` | Members or followers, exact |
| `community_posts_total` | Posts on the wall in total |
| `date` | When the post was published (ISO 8601, UTC) |
| `date_precision` | `minute`, `hour` or `day` |
| `likes` | Reactions, exact |
| `reposts` | Shares, exact |
| `views` | Views, rounded by VK above 999 |
| `is_repost` | Whether the post shares another post |
| `scraped_at` | When the row was read (ISO 8601) |

`text` was in 193 of the 200 posts (5 of the other 7 were photos or a clip without a caption) and `attachments` in 172.

#### Output examples

Real rows from our proof run on 1 Oct 2026, trimmed: long texts are cut with "..." and attachment links shortened.

A public page post with a photo, posted today, so the date is to the minute:

```json
{
  "post_id": "-20629724_1687837",
  "post_url": "https://vk.com/wall-20629724_1687837",
  "community_name": "Хабр",
  "community_screen_name": "habr",
  "community_id": 20629724,
  "community_type": "page",
  "community_members": 611043,
  "community_url": "https://vk.com/habr",
  "community_posts_total": 147754,
  "date": "2026-10-01T13:00:00.000Z",
  "date_precision": "minute",
  "text": "Пишем трассировщик лучей на Brainfuck\n\nВ Brainfuck всего восемь операций и одна лента ячеек, где в каждой помещается число от нуля до 255. ...",
  "likes": 5,
  "reposts": 5,
  "views": 3200,
  "views_is_rounded": true,
  "attachments": [
    { "type": "photo", "url": "https://sun1-26.vkuserphoto.ru/impg/G2Ho3CHl3ApLrAsE8Ei-nlqRU4XrUlMRrfnGyQ/UhTKlZO4E6k.jpg?size=604x341..." }
  ],
  "is_pinned": false,
  "is_repost": false,
  "position": 2,
  "input": "https://vk.com/habr",
  "scraped_at": "2026-10-01T13:54:52.610Z"
}
```

A post with three photos, from a page with 1.7 million members:

```json
{
  "post_id": "-29534144_25081157",
  "post_url": "https://vk.com/wall-29534144_25081157",
  "community_name": "Лентач",
  "community_screen_name": "lentach",
  "community_type": "page",
  "community_members": 1761433,
  "community_posts_total": 79402,
  "date": "2026-09-30T13:54:00.000Z",
  "date_precision": "minute",
  "text": "7-килограммового чихуахуа взяли на службу в Нацгвардию Мексики.\n\nПёсель по кличке Командо теперь тренируется наравне с лабрадорами и овчарками",
  "likes": 364,
  "reposts": 437,
  "views": 56000,
  "views_is_rounded": true,
  "attachments": [
    { "type": "photo", "url": "https://sun9-15.vkuserphoto.ru/impg/F_Vci2Y5cU12hbGBe40rMfxArPE-NoZIHh2CZA/HGOu2sxsDHA.jpg?size=604x402..." },
    { "type": "photo", "url": "https://sun1-14.vkuserphoto.ru/impg/5Z_UyYa92JhDEUBB0g1V2RdQq8h_whF4KGrmLg/JpsTFQZJp2w.jpg?size=604x402..." },
    { "type": "photo", "url": "https://sun1-15.vkuserphoto.ru/impg/R5FwGb-aty5svB2hEJ3xS40yyis7G6XA8p8zmA/Nm7bK7AsATQ.jpg?size=604x403..." }
  ],
  "position": 11,
  "input": "lentach"
}
```

A clip, with its title:

```json
{
  "post_id": "-25232578_18862106",
  "post_url": "https://vk.com/wall-25232578_18862106",
  "community_name": "РБК",
  "community_screen_name": "rbc",
  "community_members": 841115,
  "date": "2026-09-30T21:45:00.000Z",
  "date_precision": "minute",
  "text": "Как не купить испорченное вино в магазине",
  "likes": 20,
  "reposts": 3,
  "views": 2400,
  "views_is_rounded": true,
  "attachments": [
    { "type": "clip", "url": "https://vk.com/clip-25232578_456337701", "title": "Clip by @rbc" }
  ],
  "position": 21,
  "input": "rbc"
}
```

A joint post by two communities, read from one of them. `post_id` is the original post and `wall_copy_post_id` its id on this wall:

```json
{
  "post_id": "-31891058_56199",
  "community_name": "РБК",
  "community_screen_name": "rbc",
  "date_precision": "minute",
  "text": "С 1 октября 2026 года ряд семей сможет получить семейную ипотеку только по ставкам до 12% годовых вместо нынешних 6%. ...",
  "co_authors": ["РБК Недвижимость", "РБК"],
  "wall_copy_post_id": "-25232578_18857274",
  "is_repost": false,
  "position": 50,
  "input": "rbc"
}
```

A post from an earlier year on a personal page: VK shows only the day, so `date` is noon Moscow time and `date_precision` is `day`:

```json
{
  "post_id": "1_1674764",
  "post_url": "https://vk.com/wall1_1674764",
  "community_name": "Pavel Durov",
  "community_screen_name": "durov",
  "community_id": 1,
  "community_type": "user",
  "community_members": 4515509,
  "community_posts_total": 1020,
  "date": "2017-04-01T09:00:00.000Z",
  "date_precision": "day",
  "text": "К 1 апреля в Трижды Краснознаменный завезли новые стикеры.",
  "likes": 20403,
  "reposts": 160,
  "views": 2500000,
  "views_is_rounded": true,
  "attachments": [
    { "type": "photo", "url": "https://sun9-54.vkuserphoto.ru/impg/c836333/v836333001/30a33/HO2a_wZlzd4.jpg?size=604x604..." }
  ],
  "position": 50,
  "input": "https://vk.com/durov"
}
```

The info row that ends every run (never billed):

```json
{
  "_type": "info",
  "delivered": 200,
  "message": "200 posts delivered. This row is informational: it is never billed.",
  "scraped_at": "2026-10-01T13:54:58.840Z"
}
```

The `OUTPUT` record gives every wall a status: `ok`, `not_found`, `private`, `deactivated`, `robots_disallowed`, `no_posts`, `none_in_date_window`, `blocked`, `duplicate`, `unsupported` or `skipped` (the run was stopping), with its member count, total posts, pages read and refused, and attempts.

### Pricing

You pay per post delivered to your dataset, plus a flat $0.005 per run whatever memory you choose. The community details on every row, the date filter, attachments and proxies are included.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
|---|---|---|---|---|
| Post (`post-scraped`), per post | $0.002 | $0.0017 | $0.0014 | $0.001 |
| Same, per 1,000 posts | $2.00 | $1.70 | $1.40 | $1.00 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

The run start is our own flat event, charged once when the run starts. It is not Apify's per GB start fee, so it stays $0.005 at any memory size. No other pricing change is scheduled.

Never charged:

- communities or pages that do not exist, closed or private communities, closed profiles, and deleted or blocked pages;
- names VK's robots.txt asks crawlers not to open;
- empty walls, and pages VK refused;
- posts outside your date window;
- the same post or the same wall given twice;
- the info row at the end of the dataset, and the `OUTPUT` run summary.

To cap what a run can cost, set a maximum total charge in the run options. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.

### FAQ

#### What does this actor read on VK?

VK (VKontakte) is Russia's largest social network. The actor reads public walls the way VK shows them to a visitor who is not signed in, in two steps. First the community's own page, for example `https://vk.ru/rbc`, which carries the numeric id, the kind of wall, the exact member count and whether it is closed or deleted; a name VK does not know is answered right there and costs nothing. Then the wall itself, from the view VK's mobile site loads when you scroll (`https://m.vk.ru/wall-25232578?al=1`, then `?offset=20&al=1` and onwards), 20 posts a page, following the wall's own "show more" link.

#### How much does it cost to scrape 1,000 VK posts?

1,000 times your plan's price per post, plus $0.005 for the run: $2.00 on the Free plan, down to $1.00 on Business. Posts outside your date window, empty walls and pages that do not exist are not charged.

#### Do I need a VK account, cookies, an access token or a proxy?

No. The actor never signs in and never uses a token. It reads public walls through Apify's datacenter proxies, which are included in the price. In our proof run on 1 Oct 2026 all 18 requests (robots.txt, 4 community pages, 12 wall pages) were answered on the first try, with no captcha and no login wall. A refused page is tried up to 4 times.

#### How exact are the dates?

VK shows each post's time as a label in Moscow time, and the actor turns it into UTC. For posts from this year that is to the minute (`date_precision: "minute"`). For the last few hours VK says "two hours ago", so `date` is correct to the hour (`"hour"`). For posts from earlier years VK shows only the day, so `date` is noon Moscow time on that day (`"day"`). In our proof run: 134 posts to the minute, 16 to the hour and 50 to the day (older posts on a personal page).

#### Why are views rounded but likes exact?

That is what VK shows a visitor who is not signed in: views above 999 as `14K`, likes and shares as full numbers. `views` is then 14000 and `views_is_rounded` is `true`.

#### Does it return comments?

No. VK does not show comments or comment counts to visitors who are not signed in on the wall view the actor reads, so the actor does not return them rather than guess.

#### How are pinned posts and ads handled?

Pinned posts are recognised because they come first on a wall and out of date order; a pinned post that is also the newest post cannot be told apart and shows `is_pinned: false`. No advertising marker could be found on this view in testing, so posts are not flagged as ads.

#### Can I scrape any community?

Public pages, groups, events and public personal pages all work. Closed or private communities and closed profiles show nothing to a visitor who is not signed in; they are reported as `private` and cost nothing.

#### Does it follow robots.txt?

Yes. It reads robots.txt for vk.ru and m.vk.ru at the start of every run and checks every address, and every redirect, against it. VK's desktop site sends visitors of a public page's wall to an address robots.txt closes to crawlers (`/wall*?own=1`), so the actor never uses the desktop wall. A few screen names collide with a robots.txt rule (names that start with `app` and contain `_`, under `Disallow: /app*_`); the actor skips such a name, reports it as `robots_disallowed`, charges nothing, and asks for the numeric id (`club12345`) instead. We checked both files again on 1 Oct 2026.

#### How many posts can I get, and how long does it take?

Up to 5,000 posts per wall and 200 walls per run. Our proof run read 200 posts from 4 walls (12 wall pages) in 14 seconds. A run stops cleanly before its timeout (one hour by default) and keeps everything delivered so far; raise the timeout for very large runs. VK changes its site from time to time; if it refuses a page, the run summary says so and nothing is charged for it.

#### Which formats can I export, and can I schedule it?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page in Apify Console, or through the Apify API. To schedule, save your input as a task and add a schedule in Apify Console under Schedules. With `postedWithinDays` set to 1, a daily schedule gives you each day's new posts. Each scheduled run is billed like a manual one.

#### Can I use it from Claude, ChatGPT or another AI agent?

Yes. Add Apify's MCP server to your client, for example in Claude Code:

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

Then ask things like "What did rbc and lentach post on VK in the last 24 hours? Summarise the top stories." The "Copy to your AI assistant" block above gives an agent everything it needs to call the actor directly.

#### Is it legal to scrape VK?

The actor collects only publicly visible posts, never signs in, and follows VK's robots.txt. You are responsible for how you use the data, including VK's terms and data protection laws such as GDPR and CCPA, for example for posts on personal pages. This actor is an independent tool and is not affiliated with VK or VKontakte; VK is a trademark of its owner.

### Integrations

- **Google Sheets**: send each run's posts to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start runs and receive the rows in your workflows.
- **Webhooks**: get a call when a run finishes, for example to post a daily digest to Slack or Telegram.
- **API**: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT and other agents through Apify's MCP server.

### More from The Mine Works

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper)
- [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper)
- [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper)
- [Twitter / X Scraper](https://apify.com/themineworks/twitter-x-scraper)
- [Xiaohongshu (RED) Scraper](https://apify.com/themineworks/xiaohongshu-explore-scraper)
- [YouTube Transcript](https://apify.com/themineworks/youtube-transcript-scraper)
- [Telegram Channel Scraper](https://apify.com/themineworks/telegram-channel-scraper)
- [Telegram Channel Finder](https://apify.com/themineworks/telegram-channel-finder)
- [Pinterest Profile Scraper](https://apify.com/themineworks/pinterest-profile-scraper)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency)
- [Google News Scraper](https://apify.com/themineworks/google-news)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper)

### Support

Found a problem or need a field? Open an issue on the actor's Issues tab and we will answer there. For a new source or a custom build, email dmineworks@gmail.com.

*VK Wall Posts Scraper turns public VK communities, pages and profiles into one row per post, with text, date, engagement, attachments and the community's size, without a login.*

# Actor input Schema

## `communities` (type: `array`):

Required. One VK community, public page or public profile per line: a link (https://vk.com/rbc, https://vk.ru/habr, m.vk.com links and post links all work), a screen name (rbc) or a numeric community id (25232578, -25232578, club25232578, public25232578). A personal page can be given as a link or id123. Up to 200 per run; the same wall given twice is read once.

## `maxPostsPerCommunity` (type: `integer`):

Most recent posts to return from each wall, newest first (a pinned post counts as one of them). VK shows 20 posts per page, so 20 is one page and 100 is five.

## `postedWithinDays` (type: `integer`):

Only posts from the last N days. The actor stops reading a wall as soon as its posts get older, so older posts are neither returned nor charged. Leave empty for no date filter.

## Actor input object example

```json
{
  "communities": [
    "rbc"
  ],
  "maxPostsPerCommunity": 20
}
```

# Actor output Schema

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

No description

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

No description

# 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 = {
    "communities": [
        "rbc"
    ],
    "maxPostsPerCommunity": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/vk-wall-posts-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 = {
    "communities": ["rbc"],
    "maxPostsPerCommunity": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/vk-wall-posts-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 '{
  "communities": [
    "rbc"
  ],
  "maxPostsPerCommunity": 20
}' |
apify call themineworks/vk-wall-posts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/vk-wall-posts-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/3U9tuV1CR3FHZhX8d/builds/LRC95oLaahd0RenZh/openapi.json
