VK Comments Scraper – Post Discussions & Replies avatar

VK Comments Scraper – Post Discussions & Replies

Pricing

from $1.00 / 1,000 results

Go to Apify Store
VK Comments Scraper – Post Discussions & Replies

VK Comments Scraper – Post Discussions & Replies

Collect public VK post comments with authors, dates, likes, available reply relationships, and parent-post context. Control comment pages and export one row per comment.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Collect comments from public VK posts, including reply relationships when they are visible in the returned pages. VK Post Comments Scraper saves each collected comment with its text, author, date, likes, and parent-post context.

Use it to research audience feedback, organize public discussions, or compare responses to a selected content sample. Control the number of comment pages requested for each post and export the results as individual rows.

At a glanceDetails
📥 InputFull VK post URLs
📤 OutputOne row per collected comment, including parent-post details
💬 RepliesReplies exposed in the requested pages, with available parent and reply-to fields
📄 PaginationConfigurable comment-page budget; VK controls the number returned
🔐 Login requiredNo VK credentials or cookies

What the VK comments scraper collects 💬

Available comment data includes:

  • Composite comment ID, numeric comment ID, parent post ID, and comment URL
  • Comment text, publication timestamp, UTC date, and visible date text
  • Author ID, name, profile link, and avatar
  • Public like count
  • Parent-comment reference and reply-to author when exposed
  • An indicator for comments written by the post's author
  • Available comment attachments
  • The parent post's text, author, counts, attachments, and supplied repost context

Visible replies are saved as comment rows. Deleted-comment placeholders are skipped. The Actor does not separately open every hidden thread or promise the complete reply tree.

How to scrape VK post comments 🚀

  1. Add the full URLs of the public posts you want to inspect.
  2. Set pagesPerPost to the comment-page budget for each post.
  3. Run the Actor and review collected comments and any failed results.
  4. Export the dataset or group comments by post_id in your analysis.
{
"inputList": [
"https://vk.ru/wall-22822305_1721576"
],
"pagesPerPost": 2
}

Duplicate comment IDs are removed within each post's pagination. Accepted URL variants pointing to the same post share the same collection target.

VK comment fields and output 📦

Field groupIncluded data
Comment identityIDs, permalink, input, status, text, dates, and timestamp
Author and reactionsAuthor identity, avatar, and public like count
Reply contextParent-comment ID, reply-to author, and post-author indicator
Comment mediaAvailable attachment links, titles, and previews
Parent postPost identity, text, author, dates, counts, media, and supplied repost details

Complete illustrative output item with all 54 fields. The comment, post, and values below are fictional examples, not a live result:

{
"input": "https://vk.ru/wall-12345678_250",
"status": "success",
"url": "https://vk.ru/wall-12345678_250?reply=251",
"id": "-12345678_251",
"comment_id": 251,
"post_id": "-12345678_250",
"text": "Thanks for sharing the workshop schedule!",
"date": "2026-09-08T11:10:00Z",
"timestamp": 1788865800,
"date_text": "8 сен 2026 в 14:10",
"author.id": 123456789,
"author.name": "Alex Morgan",
"author.url": "https://vk.ru/sample.creator",
"author.avatar_url": "https://example.com/avatar-400.jpg",
"likes_count": 3,
"parent_comment_id": "",
"reply_to.author_id": 0,
"reply_to.author_name": "",
"is_from_post_author": false,
"attachments.path": [],
"attachments.value": [],
"post.url": "https://vk.ru/wall-12345678_250",
"post.id": "-12345678_250",
"post.owner_id": -12345678,
"post.text": "Our next photography workshop takes place this Saturday. See the schedule on our website.",
"post.date": "2026-09-08T11:00:00Z",
"post.author.id": -12345678,
"post.author.name": "Example Photography Workshop",
"post.author.url": "https://vk.ru/sample.workshop",
"post.author.avatar_url": "https://example.com/community-400.jpg",
"post.likes_count": 84,
"post.comments_count": 12,
"post.reposts_count": 7,
"post.views_count": 2400,
"post.attachments.path": [
"/0/type",
"/0/id",
"/0/owner_id",
"/0/album_id",
"/0/text",
"/0/timestamp",
"/0/url",
"/0/width",
"/0/height",
"/0/thumbnails/0/url",
"/0/thumbnails/0/width",
"/0/thumbnails/0/height",
"/0/thumbnails/0/type"
],
"post.attachments.value": [
"photo",
987654321,
-12345678,
-7,
"Workshop studio",
1788865200,
"https://example.com/workshop-photo.jpg",
1280,
853,
"https://example.com/workshop-photo.jpg",
1280,
853,
"x"
],
"post.post_id": 250,
"post.author_id": -12345678,
"post.timestamp": 1788865200,
"post.date_text": "8 сен 2026 в 14:00",
"post.reposted_posts.path": [],
"post.reposted_posts.value": [],
"post.post_type": "post",
"post.signer_id": 0,
"post.is_pinned": false,
"post.is_ad": false,
"post.is_favorite": false,
"post.can_like": false,
"post.can_comment": false,
"post.can_repost": false,
"post.copyright.path": [
"/name",
"/link"
],
"post.copyright.value": [
"Example Photography Workshop",
"https://example.com/workshops"
],
"post.geo.path": [],
"post.geo.value": []
}

Each comment occupies one row in one table. JSON uses the same literal field names, including author.name and post.text. Parent-post details repeat on each comment so the row keeps its context.

Attachments and variable parent-post sections use matching path/value lists. For example, post.attachments.path identifies each attachment field and post.attachments.value holds the corresponding value at the same position. These details remain in the comment row.

An ordinary top-level comment can have empty parent and reply-to fields. Successful rows can use empty strings, empty lists, 0, or false for omitted information. Failed results retain input, set status to failed, and use null for the comment and post-data fields.

Input requirements and comment coverage ⚙️

ParameterTypeDefaultRules
inputListarray of stringsRequiredAt least one full VK post URL
pagesPerPostinteger1Minimum 1; no fixed upper limit

VK.ru and VK.com links are accepted, including subdomains. Supported forms include direct /wallOWNER_ID_POST_ID links and URLs containing a w or wall post reference. A comment link with a supported post reference selects that post's comments, not only the linked comment.

Page offsets advance by 40, but this is not a promise of 40 saved comments per page. VK controls the response size and visible reply coverage. A single response can contain the entire available discussion. Requests stop when the reported total has been collected, the next page adds no new comments, or no continuation is available, even if the page budget is higher.

If a page has no comments and none have been saved yet, the Actor records a failed row for the post. Pages with no new comments after successful collection add no failure. A page can include fewer comments than the public count suggests.

VK comment data use cases 🎯

Audience-feedback research

Collect public responses to selected announcements or campaigns and retain the post text alongside each comment.

Discussion organization

Use available parent and reply-to fields to distinguish replies from top-level comments without assuming all hidden threads were collected.

Engagement analysis

Compare visible comment text, like counts, and author context across a defined set of public posts.

Repeated comment collection

Schedule runs and compare composite comment IDs in your database to identify newly observed responses.

Pricing and billable comment rows 💰

Check the Actor's Pricing tab for the current charging model and rate.

Under dataset-item pricing, each saved comment or failed row can count as a result. A post with no comments collected can produce a failed row. Duplicate comment IDs within the post's pagination are removed, and retries do not independently add rows.

Parent-post fields and attachments stay in the comment row. pagesPerPost limits requested pages, not an exact number of billable comments.

VK comments API and integrations 🔌

Use the Actor ID from the API tab for $ACTOR_ID and your Apify token for $APIFY_TOKEN:

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["https://vk.ru/wall-22822305_1721576"],"pagesPerPost":2}'

Run the Actor through REST, Apify client libraries, schedules, or webhooks. Send the default dataset to Google Sheets, Make, Zapier, a discussion-research database, or your own reporting workflow.

Reliability and discussion limits ⚠️

The Actor processes up to five requests concurrently and retries temporary request failures. Invalid links, unavailable posts, and pages that remain blocked produce failed rows while other targets continue.

A later-page failure leaves any comments already saved in the dataset and adds a failed row for that post. Pagination and reply coverage depend on VK's public page controls, and visible totals can include comments the run does not receive.

Likes or dates can be missing. Recognized visible date text may be converted to a timestamp when no numeric time is supplied; the original text is also retained. Deleted, restricted, or hidden comments are not guaranteed to appear.

Frequently asked questions ❓

Will two pages always return 80 comments?

No. Offsets advance by 40, but the number of returned comments and visible replies varies. Duplicate IDs and source limits can reduce the total.

Does it collect replies?

It saves replies exposed in the requested comment pages, including available parent and reply-to fields. It does not separately paginate every hidden reply thread.

Yes, when the link contains a supported parent-post reference. The Actor collects comments from that post rather than only the selected comment.

Why did a post with no comments produce a failed row?

If no comments have been collected, an empty page is recorded as a failed result so the submitted post remains visible. Later pages with no new comments add no failure after successful collection.

Does it keep the original post's text?

Yes. Parent-post text, author, dates, counts, and available media context are included on each comment row.

For a reproducible issue, share the run ID, a public post URL, the page budget, and the expected behavior through the Actor's support channel.

Use public discussion data in accordance with applicable privacy, copyright, contractual, and platform requirements.