VK Posts Scraper: VKontakte Wall Posts, Likes & Views
Pricing
from $2.00 / 1,000 posts
VK Posts Scraper: VKontakte Wall Posts, Likes & Views
Scrape public VKontakte wall posts with text, dates, likes, comments, reposts, views and attachment metadata. Filter by date and export JSON, CSV or Excel. No login or VK token.
Pricing
from $2.00 / 1,000 posts
Rating
0.0
(0)
Developer
GoFetch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export public VKontakte wall posts with text, dates, likes, comments, repost and view counts, and attachment metadata. Supply community handles, profile URLs or wall IDs; get one structured row per post. No VK account or token is needed.

Quick start
- Enter public pages, for example
ria,rt_russianorsportsru. - Choose how many posts to save per page and for the run. Optionally set a UTC start date or exclude reposts.
- Run the Actor and export the dataset as JSON, CSV or Excel.
The prefill fetches 20 posts from the public RIA community. For a larger collection:
{"pages": ["ria", "https://vk.com/rt_russian", "sportsru"],"maxPostsPerPage": 100,"maxItems": 300,"includeReposts": true}
Call it from the Apify API using your Apify API token:
curl -X POST 'https://api.apify.com/v2/acts/xmolodtsov~vk-posts-scraper/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"pages":["ria"],"maxPostsPerPage":20}'
Input
| Field | Default | Meaning |
|---|---|---|
pages | Required | 1–100 handles, VK community/profile URLs, club123, public123, id123, numeric/signed owner IDs, or wall/post URLs. Supports vk.com, vk.ru and m.vk.com. URLs may include queries or trailing slashes. Repeated resolved owners are collected once. |
maxPostsPerPage | 100 | Maximum saved posts per owner; 0 collects the accessible wall until its end or another limit. |
dateFrom | Unset | YYYY-MM-DD or N days, evaluated in UTC. Older pinned posts are skipped without stopping the wall. The first older ordinary post stops it. Undated posts are skipped when this filter is set. |
includeReposts | true | Set false to exclude copied posts before applying result caps. |
maxItems | 1000 | Run-wide result cap, up to 100,000. On Apify's free plan, the developer limits each run to 100 results and each user to 20 runs per UTC calendar month. |
proxyConfiguration | Apify datacenter | Apify RESIDENTIAL is replaced by datacenter. Paid runs may use their own proxy URLs for another route. Free runs use Apify Proxy only. |
Invalid entries are skipped with a warning if others are usable. If every entry is invalid, the run fails with invalid:. Unknown, deleted, private and closed pages require a positive unavailable marker and are counted separately; other pages continue.
Output
Each saved post has an exact string postId (<signed ownerId>_<id>), its URL and page context, text and UTC date, optional edit time, pinned/repost flags, public author context, available counts, attachment metadata, original input and collection time. Missing values are null; missing attachment collections are empty arrays.
The following example comes from a real datacenter proof run. Text and attachments are shortened for readability; private-person names are replaced with placeholders where applicable.
{"postId": "-755816_3926556","ownerId": "-755816","id": "3926556","url": "https://vk.com/wall-755816_3926556","pageName": "Спортс\"","pageScreenName": "sportsru","pageUrl": "https://vk.com/sportsru","text": "😰🇬🇧 Один из ведущих журналистов по «МЮ», Джеймс Дакер из The Telegraph, сообщает, что будущее Майкла Кэррика на посту главного тренера клуба под серьезной угрозой","date": "2026-10-21T21:55:51.000Z","editedAt": null,"isPinned": false,"isRepost": false,"repost": null,"authorId": null,"authorName": null,"likesCount": 6,"commentsCount": 1,"repostsCount": 1,"viewsCount": 1353,"attachments": [{"type": "photo","url": "https://sun9-83.vkuserphoto.ru/s/v1/ig2/-YQqeaY-UvGGNzkrZHUqc0NBgd0ciXEw3hB_aX7HjItCUKFNH1PTSnnxvqdYSSYzPwbpa_JlZ6cHXAatFtUkfJX1.jpg?quality=96&as=32x32,48x48,72x72,108x108,160x160,240x240,360x360,480x480,540x540,640x640,720x720,1080x1080,1280x1280&from=bu&u=2xgH48zWNJ3ZpV31JWzpvVhuGaKjo4QM66nuVS8e0ow&cs=1280x0","width": 1280,"height": 1280,"title": null,"duration": null}],"inputUrl": "sportsru","scrapedAt": "2026-10-21T23:26:00.278Z"}
repost, when available, contains the copied post's postId, url, ownerId, ownerName, text and date. Counts (likesCount, commentsCount, repostsCount, viewsCount) remain nullable because VK may hide them. Attachments contain type, url, width, height, title and duration for photos, videos, links, documents, audio and polls. Media is not downloaded. Embedded reply nodes never become post rows.
Pricing
Billing uses one Post event per saved dataset row, with no start fee or add-on events.
| Apify plan | Price per 1,000 posts |
|---|---|
| FREE | $3.60 |
| BRONZE | $3.20 |
| SILVER | $2.60 |
| GOLD, PLATINUM, DIAMOND | $2.00 |
| Example | BRONZE total | GOLD total |
|---|---|---|
| 100 saved posts | $0.32 | $0.20 |
| 300 saved posts | $0.96 | $0.60 |
| 2,000 saved posts | $6.40 | $4.00 |
Totals are the listed Post event charges. Free-plan use draws on available Apify credit at the FREE rate; actual availability depends on your Apify account.
Is it free?
Apify's free plan can use available monthly credit. This developer permits 100 results per run and 20 runs per UTC calendar month, shared across your runs of this Actor. The 21st run succeeds with a quota message before starting any proxy requests. The quota resets on the first day of the next UTC month. Paid Apify plans remove these developer caps; input and budget limits still apply.
Reliability and limits
Residential Apify Proxy is not used: it measured unreliable for VK; datacenter measured 0 refusals in the build proof. An Apify RESIDENTIAL group is removed (other selected groups are kept), with one warning and STATISTICS.proxyOverride = "RESIDENTIAL->DATACENTER". Paid runs may use their own proxy URLs for another route. Free runs use Apify Proxy only. No public wall is guaranteed to remain available or complete.
Wall offsets advance by ten. A valid no_posts answer, or a measured final short page at the reported total, confirms a clean end. Repeated pages or later source/shape errors count as truncation and are logged separately. Caps, date filters and budget/deadline stops can intentionally end a collection before the wall's end. Pinned posts can be older than posts after them and never stop date-based paging.
Saved rows survive later input failures. Such runs succeed with a partial status. Confirmed empty or unavailable walls can succeed with no results. Processing failures with zero saved rows fail with a diagnostic prefix such as blocked:, network:, timeout: or outdated:. Budget exhaustion succeeds with run budget reached. Near a run timeout the Actor stops starting requests, flushes rows and writes STATISTICS. Dataset IDs seed deduplication after restarts, so already saved posts are not pushed again. A restart can still see newly published or removed source posts.
What's not included
Comments or reply harvesting, reaction breakdowns, contact data, member lists, private walls, downloads, monitoring, VK-wide search and authenticated access are outside this Actor's scope. A comment count does not include comment content. Attachments and repost details depend on what the anonymous source exposes.
Integrations
Use Apify datasets with the API, webhooks, n8n or Make. Export JSON for nested attachments and repost context, or CSV/Excel for spreadsheets. Configure schedules in Apify if your workflow needs repeat runs; each run is a new collection.
FAQ
Why did I receive fewer posts than requested?
The wall may end, the date/repost filters may exclude posts, or a free-plan, input, budget or deadline limit may apply. Check the status message and STATISTICS for clean ends, truncations, unavailable pages, failed inputs and refusal counts. Anonymous access can expose fewer posts than a logged-in browser.
Is it legal to scrape VK posts?
This Actor accesses public walls without logging in and does not collect contact fields. Public availability does not remove privacy, copyright or platform obligations. Use the output only where you have an appropriate lawful basis and handle any personal data under applicable rules, including GDPR or CCPA where relevant. Do not use it to access private data.
How do I get help?
Open an issue in the Actor's Apify Issues tab with a public input, run URL and expected result. Avoid including credentials or private data.
More scrapers from this developer
TikTok: TikTok Search Scraper: Videos and creators for any keyword, pay per result · TikTok Profile Scraper (Pay Per Result): Profiles, followers and latest posts by username · TikTok Comments Scraper: Comments and full reply threads from any video · TikTok Hashtag Scraper: Videos for any hashtag, with views, likes and music · TikTok Sound & Music Scraper: Videos that use a sound or song · TikTok Top Ads Scraper: Public Creative Center ad rankings, engagement, media and landing pages
Social & news: Reddit Search Scraper: Posts by keyword, subreddit or author · Google News Scraper: Google News results as clean full-text articles · Threads Replies Scraper: Public post replies, likes, authors and inline nested replies
Instagram: Instagram Reel Scraper: Public profile reels, plays, captions, music and media URLs · Instagram Comment Scraper: Public post and reel comments, likes, timestamps and usernames
E-commerce: Prom.ua Product Search Scraper: Prom.ua product search results, no browser needed · Amazon Product Search & Bestsellers Scraper: Search results, Best Sellers and product details from Amazon · AliExpress Search Scraper: AliExpress products by keyword with prices, orders and shipping · AliExpress Product Reviews Scraper: Public product reviews, ratings, buyer photos and follow-up feedback
Maps & leads: Google Maps Scraper: Places, leads and emails from Google Maps
Ads: Facebook Ad Library Scraper (Meta Ads Library): Ads from the Meta Ad Library, with EU reach and payers · Google Ads Transparency Scraper: Google ad creatives by advertiser or domain, with regional details
Video: YouTube Transcript Scraper: Transcripts, subtitles and captions from YouTube videos · YouTube Shorts Scraper: Shorts of any channel with exact views, likes and duration · YouTube Channel Scraper: Every video of a channel, with channel stats · YouTube Search Scraper: Search results and videos for any keyword · YouTube Comments Scraper: Comments, replies and likes from any video · Bilibili Comments Scraper: Public hot comments and reply threads by video or keyword
Jobs: SEEK Job Listings Scraper: Public AU/NZ job listings, salaries and redacted descriptions