VK Posts Scraper avatar

VK Posts Scraper

Pricing

$3.60 / 1,000 posts

Go to Apify Store
VK Posts Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

163

Total users

61

Monthly active users

2.1 hours

Issues response

16 days ago

Last modified

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.

📦 Returned data

Each row is one public VK post. It can include:

  • target and targetType: the submitted target that first found the post and its type
  • postId, ownerId, and sourceUrl: stable IDs and the public post link
  • text and postedAt: visible text and the post time when VK gives it
  • scrapedAt: the time the row was collected
  • author: public author ID, name, type, profile link, and avatar when available
  • engagement: likes, comments, reposts, and views
  • media: one entry per source attachment; photos, videos, clips, and links have named details
  • repost: 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

  1. Add public VK handles, owner IDs, wall URLs, or direct post URLs.
  2. Set the limit for the whole run and, if needed, each target.
  3. Add a date range if you only want wall posts from that time.
  4. 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

FieldDescription
targetsRequired 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.
maxItemsMost posts to save across the run, from 1 to 10,000.
maxItemsPerTargetOptional limit for each submitted target, from 1 to 10,000.
publishedAfterKeep wall posts from this date or later.
publishedBeforeKeep 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 targetType and scrapedAt; added named repost and richer media data; added adaptive date paging, migration-safe resume, duplicate-charge protection, and target failure isolation. includeRawPost, rawPost, matchedKeywords, and engagement.total remain 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 🫡

Made with ❤️ by Maxime Dupré