Social Media Sentiment Analysis
Pricing
Pay per event
Social Media Sentiment Analysis
Scrape comments from Instagram, Facebook, and TikTok posts. Get comment text, author, timestamps, and likes from any public post URL across all three platforms in one run.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Social Media Comment Scraper do?
Social Media Comment Scraper extracts comments from Instagram, Facebook, and TikTok posts in a single run. Provide any public post URL and get structured comment data including text, author, timestamp, likes, and reply counts — plus post metadata and profile information. Supports posts, reels, and videos across all three platforms.
Use cases
- Brand monitoring — Track what people say about your brand across Instagram, Facebook, and TikTok posts
- Competitor analysis — Analyze audience reactions to competitor content across social platforms
- Content research — Identify what topics, themes, or products generate the most engagement
- Influencer vetting — Review comment quality and sentiment on influencer posts before partnerships
- Market research — Gather consumer opinions from social media comments at scale
Why use Social Media Comment Scraper?
- Three platforms in one — No need to run separate scrapers for Instagram, Facebook, and TikTok
- Rich metadata — Post description, likes/comments counts, and profile info included with every comment
- Structured output — Consistent data format across all platforms (same fields for every comment)
- Simple input — Just paste post URLs and run. No login or cookies required
- Batch processing — Process multiple posts from different platforms in a single run
- Pay per result — Only pay for comments successfully scraped, no subscription required
What data can you extract?
Each comment includes the following fields:
| Field | Description |
|---|---|
platform | Source platform (instagram, facebook, tiktok) |
postUrl | URL of the post |
postDescription | Post caption/title |
postTimestamp | When the post was published (ISO 8601) |
postLikesCount | Number of likes on the post |
postCommentsCount | Total comments on the post |
profileName | Display name of the post author |
profileUrl | URL of the post author's profile |
profileDescription | Bio/description of the post author |
profileFollowers | Number of followers the post author has |
profileFollows | Number of accounts the post author follows |
commentText | Full comment text |
commentAuthor | Username of the commenter |
commentTimestamp | When the comment was posted (ISO 8601) |
commentLikesCount | Number of likes on the comment |
repliesCount | Number of replies to this comment |
parentCommentId | ID of parent comment (for threaded replies) |
sentiment | Sentiment label — coming soon |
sentimentScore | Sentiment confidence score — coming soon |
How much does it cost?
This Actor uses pay-per-event pricing — you only pay for comments successfully scraped. No monthly subscription. All platform costs are included.
| Price | |
|---|---|
| Per run (start fee) | $0.005 |
| Per comment | $0.004 |
Real-world cost examples:
| Scenario | Posts | Comments | Cost |
|---|---|---|---|
| Quick check (1 Instagram post) | 1 | 20 | ~$0.09 |
| Medium analysis (3 posts, mixed platforms) | 3 | 150 | ~$0.62 |
| Large batch (10 posts, 100 comments each) | 10 | 1,000 | ~$4.01 |
How to scrape social media comments
- Go to the Social Media Comment Scraper on Apify
- Click Try for free
- Paste one or more post URLs into the Post URLs field
- Set Max comments per post (default: 100)
- Click Start and wait for results
- Download data as JSON, CSV, or Excel
Supported URL formats:
- Instagram:
https://www.instagram.com/p/CODE/,https://www.instagram.com/reel/CODE/ - Facebook:
https://www.facebook.com/PAGE/posts/ID - TikTok:
https://www.tiktok.com/@user/video/ID
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
postUrls | Array of strings | (required) | List of social media post URLs to scrape |
maxCommentsPerPost | Integer | 100 | Maximum comments to scrape per post (1–10,000) |
includeReplies | Boolean | false | Include threaded reply comments in output |
Example input:
{"postUrls": ["https://www.instagram.com/p/DT-0F1SD0My/","https://www.tiktok.com/@nike/video/7546666568915094839"],"maxCommentsPerPost": 50}
Output example
{"platform": "instagram","postUrl": "https://www.instagram.com/p/DT-0F1SD0My/","postDescription": "NIKE MIND INTAKE SESSION\n\nAthlete:\nErling Haaland...","postTimestamp": "2026-01-26T17:00:04.000Z","postLikesCount": 61695,"postCommentsCount": 433,"profileName": "nike","profileUrl": "https://www.instagram.com/nike/","profileDescription": "","profileFollowers": 0,"profileFollows": 0,"commentText": "Very impressive! great","commentAuthor": "johndoe","commentTimestamp": "2026-01-27T10:47:27.000Z","commentLikesCount": 7,"repliesCount": 0,"parentCommentId": null,"sentiment": null,"sentimentScore": null}
Tips for best results
- Start small — Test with 20 comments per post first, then scale up
- Public posts only — The scraper can only access comments on public posts
- Mix platforms freely — Add Instagram, Facebook, and TikTok URLs in the same run
- Rate limits — For large batches (1,000+ comments), the scraper handles rate limiting automatically
- Comment availability — Some platforms limit visible comments. The actual count may be less than
maxCommentsPerPost
Integrations
Connect Social Media Comment Scraper with your favorite apps using Apify integrations:
- Google Sheets — Export comments directly to a spreadsheet
- Slack — Get notified when scraping completes
- Zapier — Trigger workflows based on new comment data
- Make (Integromat) — Build automated pipelines with comment data
- Webhooks — Send results to any HTTP endpoint
- API — Access results programmatically (see below)
Using the Apify API
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/social-media-sentiment').call({postUrls: ['https://www.instagram.com/p/DT-0F1SD0My/'],maxCommentsPerPost: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/social-media-sentiment').call(run_input={'postUrls': ['https://www.instagram.com/p/DT-0F1SD0My/'],'maxCommentsPerPost': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
FAQ
How long does scraping take? A single post with 20 comments typically completes in under 30 seconds. Larger batches with multiple posts and hundreds of comments take 1-5 minutes depending on the platform.
Does this work with private accounts? No. The scraper can only access comments on public posts. Private or restricted posts will return an error.
What happens if a post URL is invalid? Invalid or unavailable posts return an error entry in the dataset with a descriptive message. Other posts in the batch continue processing normally.
Can I scrape comments from profiles or hashtags? Currently, only individual post URLs are supported. Provide the direct URL to each post you want to scrape.
Is sentiment analysis included?
Sentiment analysis is coming soon. Currently, the sentiment and sentimentScore fields return null. Once enabled, each comment will be classified as positive, negative, or neutral with a confidence score.