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

8

Total users

6

Monthly active users

10 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

Public comments are collected in chronological order. Replies to collected comments are saved as separate rows, including replies that require additional pages. When VK identifies a deleted comment, its ID is saved as a failed row without invented text or author details.

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 main comment can have empty parent and reply-to fields. Successful rows can use empty strings, empty lists, 0, or false for omitted information. An unavailable post or failed request produces a failed row with empty comment and post fields. A comment with an ID but no readable text or identifiable attachment retains its available fields, with status set to failed and an explanation in failure_reason.

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.

Each comment page normally contains about 20 main comments, plus their public replies. Reply pages do not use up the main-comment page budget. A single response can contain the entire discussion. Collection stops when the available discussion ends or a page adds no new comments, 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 the parent and reply-to fields to distinguish replies from main comments. Replies are collected for the main comments within your page budget.

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. A page normally contains about 20 main comments, with public replies collected in addition. A complete discussion can also arrive in one response. Duplicate IDs and unavailable comments can affect the total.

Does it collect replies?

Yes. It collects public replies to the main comments in your requested pages, including replies loaded on additional pages. Parent-comment and reply-to fields identify the relationships.

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.

  • ../vk-post-details-scraper for one detail row per known post
  • ../vk-community-posts-scraper for collecting posts from public communities
  • ../vk-profile-posts-scraper for collecting posts from user walls

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