Instagram Comments Scraper
Pricing
from $0.50 / 1,000 results
Instagram Comments Scraper
Scrape public Instagram post comments and turn them into structured rows with usernames, timestamps, engagement counts, owner metadata, and direct comment URLs.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
APISmith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape public Instagram post comments and turn them into structured rows with usernames, timestamps, engagement counts, owner metadata, and direct comment URLs.
Paste one or more Instagram post URLs, run the Actor, and export the comments to JSON, CSV, or your workflow without manually opening each post in a browser.
What you get
For each public Instagram post URL you submit, the Actor returns a batch of comment records with:
- comment text and direct comment URL
- username, user ID, and owner profile metadata
- created timestamp and comment engagement counts
Why use this Actor
- Pull comments from multiple Instagram posts in one run instead of opening each post manually.
- Collect comments in a structured format for analysis, moderation, reporting, or downstream AI workflows.
- Keep the output easy to export and integrate into spreadsheets, scripts, dashboards, and APIs.
- Handle multiple URLs in one batch without needing a browser session.
Short output example
[{"id": "18099948950110378","comment_url": "https://www.instagram.com/p/DcvbKxGlSm7/c/18099948950110378","text": "My friends who buy fr SHEIN never once say the quality is good","user_id": "286570646","username": "3388boo","created_at": 1788258442,"child_comment_count": 0,"comment_like_count": 12,"owner": {"id": "286570646","username": "3388boo","full_name": "3388boo","is_private": true,"is_verified": false,"profile_pic_url": "https://..."},"input_url": "https://www.instagram.com/p/DcvbKxGlSm7","errMsg": "","timestamp": "2026-09-14T06:16:14.821Z"}]
Quick start
- Open the Actor in Apify Console.
- Add one or more public Instagram post URLs in
videoUrls. - Set
resultsLimitto the maximum number of comments you want per URL. - Click Start.
- Open the Dataset when the run finishes and export the results.
Example input:
{"videoUrls": ["https://www.instagram.com/p/DcvbKxGlSm7"],"resultsLimit": 14}
Input
The Actor accepts a JSON object with the exact fields below.
{"videoUrls": ["https://www.instagram.com/p/DcvbKxGlSm7"],"resultsLimit": 20}
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
videoUrls | array of strings | Yes | None | Public Instagram post or reel URLs to scrape comments from. |
resultsLimit | integer | Yes | 14 | Maximum number of comment results to return per URL. The code enforces a hard cap of 100. |
Notes:
videoUrlsis processed one by one in a single run.- Invalid or empty URLs are recorded with an
errMsginstead of silently disappearing. - A batch can contain several URLs; each URL is processed independently.
Output
The Actor pushes a dataset item for each comment, and it also includes an error row if an input URL is empty or unreachable.
Output fields
| Field | Type | Description |
|---|---|---|
id | string | Comment ID from Instagram. |
comment_url | string | Direct comment URL. |
text | string | Comment text. |
user_id | string | Comment author user ID. |
username | string | Comment author username. |
created_at | number | Unix timestamp for comment creation. |
child_comment_count | number | Number of replies attached to the comment. |
comment_like_count | number | Number of likes on the comment. |
owner | object | Nested metadata for the comment author, including profile details and verification status. |
input_url | string | Original post URL passed to the Actor. |
errMsg | string | Error message for invalid or empty input; empty string on successful records. |
timestamp | string | ISO timestamp when the result was recorded. |
Common use cases
- Social listening — collect comment sentiment and discussion around public Instagram posts.
- Creator research — track recurring reactions and community feedback on content you follow.
- Brand monitoring — review public responses to campaigns, product launches, or announcements.
- Moderation support — review large comment volumes in a structured format for reporting or triage.
- AI workflows — feed extracted comment text and metadata into downstream classification, summarization, or search pipelines.
Pricing
This Actor follows the standard Apify pricing model for the run. The runtime cost depends on your Apify plan and the current pricing shown in Apify Console, not on a custom per-comment fee coded in the Actor itself.
For a predictable estimate, check the pricing page in the Apify Console before running large batches. The Actor does not add a separate hidden fee per result.
API and automation
You can run this Actor through the Apify API and connect it to scheduled jobs, exports, or downstream automation.
curl "https://api.apify.com/v2/acts/instagram-comments-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"videoUrls": ["https://www.instagram.com/p/DcvbKxGlSm7"],"resultsLimit": 20}'
JavaScript example:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('instagram-comments-scraper').call({input: {videoUrls: ['https://www.instagram.com/p/DcvbKxGlSm7'],resultsLimit: 20,},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python example:
import osfrom apify_client import ApifyClientclient = ApifyClient(token=os.environ['APIFY_TOKEN'])run = client.actor('instagram-comments-scraper').call(input={'videoUrls': ['https://www.instagram.com/p/DcvbKxGlSm7'],'resultsLimit': 20,})items = client.dataset(run['defaultDatasetId']).list_items()print(items['items'][:5])
FAQ
Can I scrape comments from multiple posts in one run?
Yes. Add several URLs to videoUrls and the Actor will process each URL sequentially in the same run.
Does it work with private or login-gated Instagram posts?
No. This Actor targets public Instagram post URLs. Private, hidden, or login-restricted content may return no data or an error record.
What happens if a URL is invalid or empty?
The Actor records the input with an errMsg instead of silently dropping it, so you can see exactly what failed.
Is there a hard limit on the number of comments returned?
Yes. resultsLimit is the per-URL ceiling.
Limitations
- Public Instagram post URLs only; private or login-restricted content is not supported.
- Some posts may return no comments or empty data depending on Instagram availability.
- The implementation reads comments from the provided post URLs; it does not crawl an entire account or profile feed.
- The results are constrained by Instagram response availability and the
resultsLimitcap.
Responsible use
Use this Actor only for public data you are permitted to access and process. Make sure your usage complies with Instagram's terms, applicable privacy laws, and relevant platform policies.
Support
Need help or want to report an issue? Contact support@apismith.online.
When reporting a bug, include the Apify Run ID, the related input URL, the returned status or errMsg, and any non-sensitive data needed to reproduce the issue. Do not send tokens, cookies, passwords, or authorization headers.