VK Posts Scraper
Pricing
Pay per event
VK Posts Scraper
Scrape public VK profile and community posts with text, post URLs, views, likes, reposts, and public attachment links. No login needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public VK wall posts from user profiles and communities.
Use this actor when you need structured VK post feeds for monitoring, research, OSINT, media tracking, or recurring reports.
The actor works with public VK pages such as https://vk.com/durov and https://vk.com/telegram.
It does not require login cookies.
It does not scrape private content.
It focuses on public posts and public engagement signals.
What does VK Posts Scraper do?
VK Posts Scraper collects public wall posts from VK profiles and communities.
For each post, it can return:
- ✅ source VK URL
- ✅ VK profile or community name
- ✅ profile or owner ID when exposed
- ✅ post ID
- ✅ canonical VK post URL
- ✅ post text
- ✅ raw public date label
- ✅ likes count
- ✅ reposts count
- ✅ comments count when exposed by VK
- ✅ views count
- ✅ public attachment links and images when visible
- ✅ scrape timestamp
The output is saved as clean dataset rows.
You can export the data as JSON, CSV, Excel, XML, or RSS from Apify.
Who is it for?
Social media monitoring teams
Track public VK pages for announcements, narratives, campaigns, and engagement trends.
OSINT and risk analysts
Collect public posts from watchlists of VK communities or public figures.
PR and reputation agencies
Monitor public VK channels for brand mentions, campaign updates, and viral posts.
Journalists and researchers
Create structured archives of public VK posts for investigation and citation.
Data teams
Feed VK post data into dashboards, alerting systems, BI tools, or enrichment pipelines.
Why use this VK scraper?
VK pages are difficult to process manually at scale.
Copying posts by hand is slow.
Screenshots are hard to search.
Browser automation is expensive.
This actor uses a lightweight HTTP extraction strategy for public mobile VK pages.
That keeps runs faster and cheaper than a full browser workflow.
It also gives you repeatable structured output.
What VK pages are supported?
The actor supports public VK profile and community URLs.
Examples:
https://vk.com/durovhttps://vk.com/telegramhttps://vk.com/some_public_community
Private pages are not supported.
Login-only content is not supported.
Deleted, restricted, or region-blocked pages may return no posts.
Data fields
| Field | Description |
|---|---|
sourceUrl | VK URL used by the actor for extraction |
profileId | VK owner ID when public metadata exposes it |
profileName | Public profile or community name |
postId | VK wall post ID |
postUrl | Canonical URL for the post |
text | Public post text |
publishedAt | ISO date when VK exposes one |
publishedAtRaw | Raw VK date label as displayed publicly |
attachments | Public links/images discovered in the post body |
likesCount | Number of likes when visible |
commentsCount | Number of comments when visible |
repostsCount | Number of reposts/shares when visible |
viewsCount | Number of views when visible |
scrapedAt | Timestamp when the actor saved the record |
How much does it cost to scrape VK posts?
VK Posts Scraper uses pay-per-event pricing.
You pay a small start fee per run and a per-result fee for each VK post saved.
The default input is intentionally small so first runs stay inexpensive.
For larger monitoring jobs, set maxPostsPerUrl to the amount you need.
For recurring jobs, schedule the actor and keep limits focused on recent posts.
How to scrape VK posts
- Open the actor on Apify.
- Add one or more public VK URLs to Public VK profile or community URLs.
- Set Maximum posts per VK URL.
- Choose whether to include attachment links.
- Click Start.
- Download the dataset or connect it to an integration.
Input example
{"startUrls": [{ "url": "https://vk.com/durov" },{ "url": "https://vk.com/telegram" }],"maxPostsPerUrl": 25,"includeAttachments": true}
Input fields
startUrls
Public VK profile or community URLs.
Use URLs from vk.com.
The actor normalizes them to public mobile VK pages internally.
maxPostsPerUrl
Maximum number of posts to save from each VK URL.
Use a low number for tests.
Use a higher number for historical collection.
includeAttachments
When enabled, the actor saves lightweight public attachment links and image URLs visible in VK mobile HTML.
Disable this if you only need text and engagement counts.
Output example
{"sourceUrl": "https://m.vk.com/durov?al=1","profileId": "1","profileName": "Pavel Durov","postId": "1_2442097","postUrl": "https://vk.com/wall1_2442097","text": "Post text...","publishedAtRaw": "8 May 2018","likesCount": 242000,"repostsCount": 14000,"viewsCount": 15600000,"attachments": [],"scrapedAt": "2026-07-10T00:00:00.000Z"}
Tips for better results
Use public VK URLs only.
Start with a small limit, then increase it after checking the output.
Use multiple start URLs for watchlists.
Schedule recurring runs for monitoring.
Deduplicate by postId in your downstream system if you run the same source repeatedly.
Keep includeAttachments enabled for research archives.
Disable includeAttachments when you only need engagement metrics.
Integrations
You can connect VK Posts Scraper to common Apify integrations.
Google Sheets
Send new VK posts into a spreadsheet for review.
Slack
Notify a channel when a monitored VK page publishes new public posts.
Webhooks
Trigger your own API after each run finishes.
Make or Zapier
Build no-code workflows around VK monitoring.
BI dashboards
Export CSV or JSON into dashboards and reporting systems.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/vk-posts-scraper').call({startUrls: [{ url: 'https://vk.com/durov' }],maxPostsPerUrl: 25,includeAttachments: true,});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/vk-posts-scraper').call(run_input={'startUrls': [{'url': 'https://vk.com/durov'}],'maxPostsPerUrl': 25,'includeAttachments': True,})print(run['defaultDatasetId'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~vk-posts-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://vk.com/durov"}],"maxPostsPerUrl":25,"includeAttachments":true}'
MCP usage
Use this actor from MCP-compatible clients through Apify MCP Server.
MCP tool URL:
https://mcp.apify.com/?tools=automation-lab/vk-posts-scraper
Add the Apify MCP server in Claude Code with the required HTTP transport:
$claude mcp add --transport http apify-vk-posts https://mcp.apify.com/?tools=automation-lab/vk-posts-scraper
For Claude Desktop, Cursor, and VS Code, add the same Apify MCP Server URL in the app's MCP/server settings and choose HTTP transport if the client asks for a transport type.
Example MCP JSON configuration:
{"mcpServers": {"apify-vk-posts": {"url": "https://mcp.apify.com/?tools=automation-lab/vk-posts-scraper"}}}
After setup, ask your MCP client to run the automation-lab/vk-posts-scraper tool with the input fields shown above.
Example prompt ideas for MCP
Use prompts like these after connecting the Apify MCP server.
Use the automation-lab/vk-posts-scraper MCP tool to collect the latest 50 public posts from https://vk.com/durov and summarize the main topics.
Run the VK Posts Scraper MCP tool for these VK community URLs, export the dataset, and identify posts with the highest viewsCount.
Use MCP to run VK Posts Scraper for my public VK watchlist and show posts that received more than 10,000 views.
Public-only policy
This actor is designed for public VK pages.
It does not log in.
It does not bypass private access controls.
It does not accept cookies.
It does not scrape private messages.
It does not scrape closed community member-only content.
Legality
You are responsible for using scraped data lawfully.
Only scrape public pages you are allowed to access.
Respect applicable privacy, platform, and data protection laws.
Do not use the actor for harassment, spam, credential collection, or unauthorized surveillance.
For compliance-sensitive use cases, consult your legal team.
FAQ and troubleshooting
Why did a VK URL return zero posts?
The page may be private, deleted, restricted, empty, or not exposing posts in public mobile HTML.
Try opening the URL in an incognito browser without logging in.
If VK asks you to log in, the actor cannot access that content.
Why is commentsCount missing?
VK does not expose every engagement metric for every post in the public mobile HTML.
The actor saves counts only when the public page exposes them.
Why is the date in publishedAtRaw?
VK localizes date labels.
The raw label preserves what VK exposed publicly.
Use scrapedAt and postUrl for audit trails.
Related scrapers
Explore related actors from Automation Lab:
- https://apify.com/automation-lab/youtube-scraper
- https://apify.com/automation-lab/tiktok-comments-scraper
- https://apify.com/automation-lab/threads-replies-scraper
- https://apify.com/automation-lab/bluesky-scraper
- https://apify.com/automation-lab/facebook-comments-scraper
Limitations
VK can change its public HTML at any time.
Some metrics may be hidden or localized.
Some content may require login.
Attachment extraction is best-effort and lightweight.
The actor is optimized for public post monitoring, not account takeover, scraping private data, or downloading media libraries.
Changelog
See .actor/CHANGELOG.md for release notes.
Support
If a public VK page is accessible without login but this actor cannot extract it, open an Apify issue with:
- the VK URL
- your input JSON
- run ID
- expected result
- actual output
This helps reproduce and fix extraction changes quickly.