VK Posts Scraper
Pricing
$3.60 / 1,000 posts
VK Posts Scraper
Collect public VK wall posts and direct posts. Get text, authors, dates, engagement counts, repost data, media details, target types, and source links.
Pricing
$3.60 / 1,000 posts
Rating
5.0
(1)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
163
Total users
61
Monthly active users
2.1 hours
Issues response
16 days ago
Last modified
Categories
Share
🔎 Collect public VK posts as clean data
VK Posts Scraper helps researchers, analysts, and social media teams collect public wall posts and direct posts. Get text, author details, dates, engagement counts, repost data, media details, target types, collection times, and source links without giving VK login details.
- VK wall post scraping — collect posts from public profile and community walls.
- VK historical posts scraping — collect wall posts from a set date range.
- VK post data export — export public post data for review or analysis.
- VK engagement tracking — compare public likes, comments, reposts, and views.
- VK media metadata extraction — collect details for photo, video, clip, and link attachments.
- VK repost data extraction — collect copied text, post identity, author, and media from repost chains.
- VK multi-wall monitoring — process several public walls in one run.
📦 Returned data
Each row is one public VK post. It can include:
targetandtargetType: the submitted target that first found the post and its typepostId,ownerId, andsourceUrl: stable IDs and the public post linktextandpostedAt: visible text and the post time when VK gives itscrapedAt: the time the row was collectedauthor: public author ID, name, type, profile link, and avatar when availableengagement: likes, comments, reposts, and viewsmedia: one entry per source attachment; photos, videos, clips, and links have named detailsrepost: the direct copied post, with a deeper copied-post chain when VK gives one
For attachment types that are not yet fully supported, media keeps the source type instead of dropping the attachment. Private, deleted, hidden, unsupported, and no-result targets do not become rows.
🚀 Running the Actor
- Add public VK handles, owner IDs, wall URLs, or direct post URLs.
- Set the limit for the whole run and, if needed, each target.
- Add a date range if you only want wall posts from that time.
- Run the Actor and open the dataset.
The Actor starts with a small VK request when your remaining limit is small. For a historical date range, it reads more wall pages only when it must look deeper.
🛠️ Input
| Field | Description |
|---|---|
targets | Required list of public VK handles, profile or community URLs, wall URLs, direct post URLs, or numeric owner IDs. Other text is treated as a keyword target, but VK may not show keyword results without a login. |
maxItems | Most posts to save across the run, from 1 to 10,000. |
maxItemsPerTarget | Optional limit for each submitted target, from 1 to 10,000. |
publishedAfter | Keep wall posts from this date or later. |
publishedBefore | Keep wall posts from this date or earlier. |
{"targets": ["durov", "https://vk.com/club1"],"maxItems": 10,"maxItemsPerTarget": 5,"publishedAfter": "2025-01-01","publishedBefore": "2025-03-31"}
Unknown input keys are accepted for compatibility, but only the public fields above control a run.
📊 Output
{"target": "durov","targetType": "handle","postId": "1_2442097","ownerId": 1,"sourceUrl": "https://vk.com/wall1_2442097","text": "A public update from VK.","postedAt": "2018-05-08T18:59:24.000Z","scrapedAt": "2026-07-21T12:34:56.000Z","author": {"id": 1,"name": "Pavel Durov","type": "profile","profileUrl": "https://vk.com/durov"},"engagement": {"likes": 120,"comments": 15,"reposts": 8,"views": 2500},"media": []}
Open the default dataset to view or export rows. Overlapping targets do not create a second row or charge for the same owner-and-post ID.
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each public post saved to the dataset. No-result, inaccessible, private, hidden, and unsupported targets are not charged as posts. There is no separate Actor-start charge.
🔌 Integrations
Use Apify datasets, API access, schedules, webhooks, Zapier, Make, or Google Sheets to run jobs and send rows to other tools.
❓ FAQ
How does the Actor resume after an Apify migration?
It saves private progress and starts again at the right target and wall page. Saved owner-and-post IDs stop replayed work from making duplicate dataset rows or duplicate post charges. Repeated runs are still separate runs.
Why are includeRawPost and rawPost not coming back?
A raw VK payload can change without notice and is hard to use safely. The Actor now gives stable named fields instead. repost holds copied-post identity, text, author, media, and deeper source-backed reposts. Richer media entries cover supported photos, videos, clips, and links. Other attachment types keep their source type.
Which older fields were restored or removed?
targetType and scrapedAt are restored. matchedKeywords stays removed because supported successful target routes did not give useful keyword matches. engagement.total stays removed because it repeated the named engagement counts.
How do date filters affect requests?
The Actor first asks for no more posts than the remaining result allowance, up to VK's limit. If newer or out-of-range posts show that matching posts may be deeper, it keeps paging. Date filters and limits apply to the outer post, not dates inside repost.
Why does progress say “current so far” instead of showing my limit?
The old denominator was the requested maximum, not a known number of matching posts. The Actor now shows “current so far” unless the real eligible total is known before the first saved row. It does not do an extra search just to make a denominator.
What happens when one target fails?
After normal retries, the Actor logs one short failure and moves to later targets. It keeps rows already saved. The full run fails only if no submitted target was processed, unless a run-wide platform or pricing error occurs.
Can I use VK Posts Scraper through an API?
Yes. Run it with the Apify API, then read the default dataset through the API. The same public input and output fields apply.
Can I raise the run timeout?
Yes. The default stays at 300 seconds. You can choose a longer timeout in the Apify run options for a large target list or a deep date range.
Does it download every kind of VK media?
No. It returns named metadata for photos, videos, clips, and links. It does not download files. Other VK attachment families keep only their source type instead of disappearing.
📝 Changelog
- 0.0: Restored
targetTypeandscrapedAt; added named repost and richer media data; added adaptive date paging, migration-safe resume, duplicate-charge protection, and target failure isolation.includeRawPost,rawPost,matchedKeywords, andengagement.totalremain unsupported. - 0.0: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Telegram Channel Messages Scraper — collect public Telegram channel posts for cross-platform monitoring.
- Twitter (X) Scraper — collect public X posts, profiles, and trends around the same topics.
- LinkedIn Posts Scraper — collect public LinkedIn posts for company and professional research.
- Reddit Scraper — collect public Reddit posts and comments for community research.
- TikTok Profile Mention Scraper — find public TikTok videos that mention selected profiles.
Made with ❤️ by Maxime Dupré