If you want to scrape Instagram comments, the official API won't get you far. It only returns comments on business accounts you manage, and you need an approved Meta app to use it. Most people end up copying comments by hand or fighting a Python script that breaks when Instagram changes its markup.
This guide shows a faster way. You can export the comments of any public post, reel or profile to CSV, Excel or JSON with no Instagram account, no cookies and no proxies. There's a no-code version and a short Python version.
Disclosure: I built the tool used here, Instagram Comments Scraper on Apify Store. I've tried to be clear about what it can't do as well.
What people use Instagram comment data for
- Brand monitoring: what people say under your posts, and under your competitors' posts
- Influencer and campaign checks: whether the comments on a sponsored post are real conversation or emoji spam
- Giveaway draws: a full list of usernames who commented, ready for a random pick
- Sentiment and community research: a spreadsheet of comments to tag, count or feed to an LLM
- AI datasets: clean, flat comment text with dates and like counts
What data you get
Each comment is one flat row:
{
"platform": "instagram",
"type": "comment",
"postUrl": "https://www.instagram.com/p/DdPsDCWRT-u/",
"text": "This view never gets old!",
"createdAt": "2026-10-16T09:41:12.000Z",
"author": { "username": "jane.doe", "profileUrl": "https://www.instagram.com/jane.doe/" },
"likeCount": 42,
"scrapedAt": "2026-10-17T16:09:00.000Z"
}
You also get the comment and post IDs and a direct link to each comment. Two things you won't get: replies to comments (Instagram doesn't make them available, so you get top-level comments) and commenters' display names or photos (only the username and ID come with each comment).
Option 1: No code (about 3 minutes)
- Open Instagram Comments Scraper and click Try for free. You'll need a free Apify account.
- Paste one or more post or reel links into Instagram post or reel URLs. Links with
/p/,/reel/,/reels/and/tv/all work. - Set Max comments per post. Up to 24 is the fastest.
- Click Start.

Instagram Comments Scraper on Apify Store. "Try for free" opens the input form.
Comments the tool collected recently come back instantly. A new post usually takes 40 to 90 seconds, and up to three are processed in parallel. When the run finishes, open the Output tab and export to CSV, Excel or JSON.

Real output from the natgeo profile, last 30 days (8 of 72 rows; usernames hidden here for privacy).
Scrape comments from a whole profile
Often you don't have post links. You want "the comments on Nike's last five posts" or "everything under our posts this month." For that, leave the URL field empty and use Profiles instead:
-
Profiles: usernames (
natgeo) or profile links - Posts per profile: 1 to 50. The tool reads the posts in the order the profile's grid shows them.
-
Only posts newer than: optional, e.g.
30 daysor2026-09-01

The profile settings, from the Actor's Input tab.
One thing to know: profiles can pin up to three posts to the top of their grid, and those come first. If a brand pinned an old post, it counts toward Posts per profile. The date filter then drops it if it's older than your cutoff.
Option 2: Python
Install the client:
pip install apify-client pandas
Then run the scraper on a profile and save the comments to a CSV. Your API token is under Settings → API & Integrations in Apify Console.
from apify_client import ApifyClient
import pandas as pd
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("icoe-man/instagram-comments-scraper").call(run_input={
"profiles": ["natgeo"],
"postsPerProfile": 3,
"onlyNewerThan": "30 days",
"maxCommentsPerPost": 24,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
df = pd.json_normalize(items) # author.username becomes its own column
df.to_csv("natgeo_comments.csv", index=False)
print(f"{len(df)} comments saved")
For specific posts, swap profiles for "postUrls": ["https://www.instagram.com/p/DdPsDCWRT-u/"]. You can pass both in one run, and up to 1,000 posts and 200 profiles per run.
If you call it from an AI agent or a script with a short timeout, start the run without waiting (client.actor(...).start(...)) and fetch the dataset when it's done. Or set "cacheOnly": True for an instant answer from previously collected comments. That works for post URLs only, since profiles need a live collection.
What it costs
You pay per comment, plus small per-post and per-profile fees. Prices as of October 2026:
| Apify plan | Per 1,000 comments | Per post | Per profile |
|---|---|---|---|
| Free | $1.25 | $0.005 | $0.025 |
| Starter | $1.05 | $0.005 | $0.025 |
| Scale | $0.90 | $0.005 | $0.025 |
| Business | $0.75 | $0.005 | $0.025 |
Example: 5,000 comments from 100 posts on Starter costs 5,000 × $0.00105 + 100 × $0.005 = $5.75. For profiles, the per-post fee only applies to posts that returned comments. Private or deleted posts aren't charged at all. You can also set Maximum cost per run so a run never spends more than you decide.
On Apify's free plan you get previously collected comments plus a small live allowance each day. That's enough for roughly one profile a day at 3 posts and 50 comments per post. Any paid Apify plan removes the limit.
Tips and gotchas
-
No results? The run's
OUTPUTrecord lists a status and a note for every post and profile. The usual causes: the account is private, the link isn't a post link (profiles go under Profiles), or no posts are newer than your date filter. -
pendingstatus: the post is still being collected. It isn't charged, so run it again a bit later. - Fresher data: Reuse data collected within (hours) controls how old a cached result can be. Set it to 0 to always collect live.
- Schedules: to track a brand every week, save your input as a task and add an Apify schedule. You can send the results to Google Sheets, Make, Zapier or n8n with Apify's integrations.
FAQ
Is it legal to scrape Instagram comments?
The tool collects publicly visible comments only. Comments can still contain personal data, which laws like GDPR protect, so only collect what you have a legitimate reason to process. If you're unsure, ask a lawyer.
Do I need an Instagram account?
No. No login, cookies or proxies.
Can I get comments from TikTok, Facebook or Reddit too?
Yes, with sister tools that use the same output format: TikTok Comments Scraper, Facebook Comments Scraper, and Social Media Comments Scraper for all four networks in one run.
Try it
Run Instagram Comments Scraper on a post you care about. The prefilled example finishes in a few seconds. If something doesn't work the way this article says, open an issue on the Actor page. I usually reply within a day.
Top comments (0)