Instagram Scraper: Posts, Reels, Comments, Followers & Likes
Pricing
from $1.00 / 1,000 instagram posts
Instagram Scraper: Posts, Reels, Comments, Followers & Likes
Scrape Instagram profiles, posts, reels, stories, tagged posts, comments + replies, followers, following, post likers, hashtags and search. No login or cookies. $1 per 1,000 posts. Pay only per result.
Pricing
from $1.00 / 1,000 instagram posts
Rating
0.0
(0)
Developer
Pika Choo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
📸 Instagram Scraper: Posts, Reels, Comments, Followers & Likes
Scrape Instagram without login: posts, reels, stories, profiles, comments with replies, followers, post likers, hashtags and search. $1 per 1,000 posts.
📋 Table of contents
- What does it do?
- Features
- Pricing
- Input
- Output
- Troubleshooting
- Who uses this Instagram Scraper?
- Use cases
- FAQ
- API, Python, JavaScript and MCP
What does it do?
Instagram Scraper collects public Instagram data and returns clean rows. Give it profile links, @usernames, post or reel links, hashtags or keywords and it returns posts and reels with captions and engagement, stories, profile details, comment threads, follower and following lists, the accounts that liked a post, similar profiles, hashtag posts and search results. Your own Instagram account is never used, so it can't get blocked.
Features
🎬 What you can scrape on Instagram
| Mode | What you give it | What you get |
|---|---|---|
user_posts | profile link / @username | Profile posts — photos, videos and reels from a profile |
user_reels | profile link / @username | Profile reels |
user_tagged | profile link / @username | Tagged posts — posts a profile is tagged in |
user_stories | profile link / @username | Stories — a profile's current stories |
user_profile | profile link / @username | Profile details — bio, followers, following, verified |
video_detail | video or post link | Post details — one post or reel per link |
video_comments | video or post link | Post comments (+ replies) |
post_likes | post link or shortcode | Post likers — accounts that liked a post |
followers | profile link / @username | Followers of a profile |
following | profile link / @username | Accounts a profile follows |
related_profiles | profile link / @username | Similar profiles |
hashtag_videos | #hashtag, tag link or ID | Hashtag posts |
search_users | keywords | Search profiles (keywords) |
search_hashtags | keywords | Search hashtags (keywords) |
search_videos | keywords | Search reels (keywords) |
✨ Smart features
- Share links and shortcodes work as input
- Replies are placed right under their comment (comments with 3+ replies)
- Post likers: up to about 1,000 accounts per post
- Carousel items, music and tagged users kept in
raw - Image and video file URLs on every post
- Duplicates are removed automatically
- 🔓 No login, no cookies, no proxy setup
- 💸 Pay only for results: hint and error rows are free
🧭 More scrapers from us
Pricing
You pay per result. No compute or proxy charges on top, and hint and error rows are free.
| What you get | Price per 1,000 |
|---|---|
| 📸 Posts, reels and stories from any list | $1.00 |
| 💬 Comments and replies | $0.50 |
| 👥 Accounts from followers, following, likers, similar profiles or search | $1.00 |
| #️⃣ Hashtags from search | $1.00 |
| 🔍 Single lookups: one post by link or one full profile | $2.00 |
How much does it cost to scrape Instagram data?
| Job | Cost |
|---|---|
| 1,000 Instagram posts | $1.00 |
| 10,000 Instagram posts | $10 |
| 100,000 Instagram posts | $100 |
| 1,000 profiles | $2.00 |
Set Max cost per run in the run options and the actor stops cleanly at that amount.
🆓 Free plan
On the free Apify plan each run returns up to 10 results, so you can check the data before you buy. Comment replies need a paid plan. Any paid Apify plan removes the limit.
⚡ Speed
Profile lists return 12 posts per request, comment pages about 15, and post likers up to 1,000 at once.
Input
| Field | What it does |
|---|---|
mode | Links, @usernames or IDs: user_posts, user_reels, user_tagged, user_stories, user_profile, video_detail, video_comments, post_likes, followers, following, related_profiles, hashtag_videos. Keywords: search_users, search_hashtags, search_videos. |
urls | One per line: profile links or @usernames, post / reel links or shortcodes, #hashtags. Share links work too. |
queries | Keywords for the search modes, one per line. |
maxItems | Stop after this many rows per link or keyword (comments include their replies). |
includeReplies | In video_comments mode, also fetch the replies under each comment that has 3 or more replies (TikTok, Douyin, Bilibili). Replies are billed as comments. Paid Apify plans only. |
downloadVideos | Add the direct video file URL to each video row when the platform provides one. |
🧪 Example inputs
Latest 100 posts from a profile
{"mode": "user_posts", "urls": ["https://www.instagram.com/natgeo/"], "maxItems": 100}
Reels of several creators
{"mode": "user_reels", "urls": ["@natgeo", "@nasa"], "maxItems": 50}
Comments with replies
{"mode": "video_comments", "urls": ["https://www.instagram.com/reel/DdG4RIxIPyf/"], "maxItems": 500, "includeReplies": true}
Followers of a profile
{"mode": "followers", "urls": ["natgeo"], "maxItems": 2000}
Profile details for a list of creators
{"mode": "user_profile", "urls": ["natgeo", "nasa"]}
Search reels by keyword
{"mode": "search_videos", "queries": ["iced coffee recipe"], "maxItems": 100}
Output
Every row uses the same fields. Export as JSON, CSV, Excel, XML or HTML.
📦 Example output
{"platform": "instagram","item_type": "video","item_id": "DdG4RIxIPyf","url": "https://www.instagram.com/p/DdG4RIxIPyf/","title": "Presented by @Rolex. Welcome to Africa 🌍 Africa Earth’s Wild Home takes you deep into the heart of o…","description": "Presented by @Rolex. Welcome to Africa 🌍 Africa Earth’s Wild Home takes you deep into the heart of o…","author_id": "787132","author_name": "National Geographic","author_username": "natgeo","duration_sec": 72.6,"cover_url": "https://scontent-fra3-1.cdninstagram.com/v/t51.82787-15/802503979_1869…","video_url_nowm": "https://scontent-fra5-1.cdninstagram.com/o1/v/t2/f2/m86/AQPDJtVww4K_68…","hashtags": ["Rolex","PerpetualPlanet"],"created_at": "2026-09-10T13:00:14+00:00","play_count": 3329391,"like_count": 79038,"comment_count": 545,"mode": "user_posts","source_input": "natgeo","scraped_at": "2026-10-08T19:59:47.565081+00:00","raw": {"…": "full original record"}}
📤 Main fields
| Field | Description |
|---|---|
platform, item_type, mode, source_input | Where the row came from and what it is (video, user, comment, hint, error…) |
item_id, url | Native ID and a link back to the item |
title, description, hashtags, created_at | Text and publish time (ISO 8601) |
author_id, author_name, author_username | Creator or account |
play_count, like_count, comment_count, share_count, collect_count | Engagement counts |
raw | The full original record, every field the platform returned |
error_message | Explanation on free hint / error rows |
Troubleshooting
Stories or similar profiles come back empty?
Stories last 24 hours and some accounts have none; similar profiles are shown only for some accounts. You get a free hint row.
Getting no results?
Check that the link or username is public and typed correctly. Private accounts, deleted posts and hidden lists return a free hint row that says why. Keyword modes need the Keywords field, link modes need Links.
Getting fewer results than maxItems?
The platform ran out of items for that input (a small profile, a niche keyword), or the run reached its Max cost per run limit. The log says which one.
Some fields are empty?
Platforms don't return every field for every item. Everything the platform did return is kept in raw.
Video or image links stopped working?
Media URLs from these platforms expire after a few hours. Download files right after the run.
The run failed or shows an error row?
Retry once: the platforms sometimes refuse a request for a few minutes. If it keeps failing, open an issue with the run link and we'll fix it fast.
Who uses this Instagram Scraper?
📣 Social media managers
Track competitors' posts, reels and engagement.
🧑🤝🧑 Influencer agencies
Vet creators: followers, engagement and similar profiles.
🛒 Brands and e-commerce teams
Monitor hashtags, mentions and tagged posts.
🎯 Growth teams
Build audiences from followers and post likers.
📊 Market researchers
Read comments for sentiment and product feedback.
🤖 AI and data teams
Collect captions and comments as training data.
Use cases
Influencer vetting
Pull a creator's profile and last 50 posts, then compute engagement rate from likes and comments.
Audience building
Collect likers of a competitor's top posts as a warm audience list.
Hashtag research
Pull posts for a hashtag and see which formats get the most likes.
Comment monitoring
Collect comments on your brand's posts every day.
FAQ
Can I scrape Instagram without logging in?
Yes. No Instagram account, cookies or API keys, so your account can't be blocked.
Does Instagram have an official API I could use instead?
The Graph API only covers business accounts you manage and limited hashtag search. It can't read other accounts' followers, likers or comments.
Can I scrape Instagram followers?
Yes, with followers and following on public profiles.
Can I see who liked an Instagram post?
Yes, post_likes returns up to about 1,000 likers per post.
How much does it cost to scrape 10,000 Instagram posts?
About $10, at $1 per 1,000 posts.
Can I scrape Instagram comments and replies?
Yes, with video_comments and Include comment replies on.
Can I scrape Instagram reels and stories?
Yes: user_reels, user_stories and reel search.
Can I scrape private profiles?
No. Only public data.
Is there a free tier?
Yes. On the free Apify plan each run returns up to 10 results.
Can I use it from Python, JavaScript or an AI agent?
Yes, through the Apify API, the client libraries, or MCP.
API, Python, JavaScript and MCP
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("openclawai/instagram-scraper").call(run_input={"mode": "user_posts", "urls": ["https://www.instagram.com/natgeo/"], "maxItems": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });const run = await client.actor("openclawai/instagram-scraper").call({"mode": "user_posts", "urls": ["https://www.instagram.com/natgeo/"], "maxItems": 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();
MCP (Claude, ChatGPT, Cursor and other MCP clients): https://mcp.apify.com/?tools=openclawai/instagram-scraper
Works with Zapier, Make, n8n, Google Sheets, Slack, webhooks and scheduled runs.
🛡️ Legal
Collects public data only. You are responsible for complying with Instagram's terms and with privacy laws such as GDPR, CCPA and PIPL when you store personal data.
⭐ Support
Something not working? Check the hint / error rows, then open an issue with the run link. We reply fast.