Instagram Scraper (Profiles, Posts & Reels, No Login)
Pricing
from $0.17 / 1,000 posts
Instagram Scraper (Profiles, Posts & Reels, No Login)
Scrape public Instagram profiles, posts, reels and hashtag pages without logging in. Get followers, bio, links, captions, hashtags, likes, views, comment counts, post dates and image or video links. Paste usernames, post links or keywords. New-only mode for schedules. From $0.50 per 1,000 rows.
Pricing
from $0.17 / 1,000 posts
Rating
0.0
(0)
Developer
locaihost data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get public Instagram profiles, posts and reels as clean JSON, CSV or Excel rows: followers, bio and bio links, captions, hashtags, mentions, likes, views, comment counts, post dates and image or video links. Paste usernames, post links or keywords. No login, no cookies, no Instagram account.
- Influencer and creator research: followers, verified status and the engagement on each creator's latest posts and reels, for a shortlist of handles.
- Competitor tracking: what rival brands post, how often, and which posts and reels get the most likes and views.
- Content and hashtag research: the top public reels Instagram shows for a keyword or hashtag, with views, captions and hashtags.
- Campaign reporting: likes, comments and views for a list of post and reel links, with exact posting times.
- Monitoring on a schedule: turn on Only new posts and pay only for posts published since the last run.
Quick start
Paste this into the JSON tab of the input and click Start:
{"usernames": ["natgeo"], "maxPostsPerProfile": 12}
You get National Geographic's profile row and its 12 latest posts and reels: 13 rows, usually in under 20 seconds.
More examples:
{"usernames": ["nike", "adidas", "puma"], "maxPostsPerProfile": 50, "postDetails": true}
{"postUrls": ["https://www.instagram.com/p/DfK5HEmGlai/", "https://www.instagram.com/reel/DfAWxdIFmVB/"]}
{"keywords": ["#streetfood", "home workout"], "maxPostsPerKeyword": 48}
Usernames, profile links, post and reel links and /explore/tags/ links can be mixed in any list.
What data can I get?
Three kinds of row, set by the type field: profile, post (posts and reels) and unavailable (a free row for a private, missing or unusable entry, saying why).
| Row | Fields |
|---|---|
| Profile | username, fullName, biography, followersCount, followingCount, isVerified, externalUrl, bioLinks (title and link), hasReels, profilePicUrl, id, url |
| Post, every source | shortCode, url, postType (image, video, reel, carousel), ownerUsername, caption, hashtags, mentions, displayUrl, mediaUrls, date, id |
| Post, from a profile | adds likesCount, viewsCount (reels and videos), carouselCount |
| Post, from a keyword | adds viewsCount, videoUrl |
| Detailed post | adds takenAt (exact time), commentsCount, likesCount, every photo and video in mediaUrls, videoUrl, taggedUsers, coauthors, location, audio, width, height |
| Every row | type, details (full, grid or keyword), source, input, scrapedAt |
Detailed posts come from each post's own page. Post and reel links always return them; for posts from profiles and keywords, turn on Full post details ($).
Three real rows from runs on 2026-11-01 (shortened: image links cut, long captions trimmed):
[{"type": "profile","username": "nasa","fullName": "NASA","biography": "Making the seemingly impossible, possible. ✨","followersCount": 104414959,"followingCount": 90,"isVerified": true,"externalUrl": "https://www.nasa.gov","bioLinks": [{"title": "NASA.gov Homepage", "url": "https://www.nasa.gov"}, {"title": "MAX POWER", "url": "https://www.nasa.gov/maxpower"}],"hasReels": true,"profilePicUrl": "https://scontent-dfw5-2.cdninstagram.com/v/t51.2885-19/29090...","id": "17841401474538262","url": "https://www.instagram.com/nasa/","input": "nasa","scrapedAt": "2026-11-01T12:04:56.095Z"},{"type": "post","id": "4004634989362489982","shortCode": "DeTUk4sDSp-","url": "https://www.instagram.com/reel/DeTUk4sDSp-/","postType": "reel","ownerUsername": "nasa","caption": "POV: you're watching the Earth set\n\nWe just released hundreds of new images and hours of new audio from our Artemis II mission around the Mo...","hashtags": ["NASA", "ArtemisII", "Artemis"],"mentions": [],"likesCount": 765683,"commentsCount": null,"viewsCount": 11218359,"takenAt": null,"date": "2026-10-10","displayUrl": "https://scontent-dfw5-1.cdninstagram.com/v/t51.82787-15/8421...","details": "grid","source": "nasa"},{"type": "post","id": "4020388264128348382","shortCode": "DfLSdNGhQDe","url": "https://www.instagram.com/reel/DfLSdNGhQDe/","postType": "reel","ownerUsername": "airbnb","caption": "Come for the castle. Stay because nobody wants to be the first to check what’s making that noise.\n\n📍 Airbnb Luxe | The Castle, Norfolk, UK","likesCount": 441,"commentsCount": 23,"viewsCount": 45105,"takenAt": "2026-10-31T23:00:05.000Z","date": "2026-10-31","videoUrl": "https://scontent-ord5-1.cdninstagram.com/o1/v/t2/f2/m86/AQOf...","audio": "Original audio","width": 1080,"height": 1920,"details": "full","source": "airbnb"}]
How much does it cost?
You pay per row returned. There is no charge for Apify platform usage on top.
| Row | Free and Starter | Scale | Business |
|---|---|---|---|
| Post (from a profile or keyword) | $0.30 per 1,000 | $0.225 per 1,000 | $0.165 per 1,000 |
| Profile | $0.50 per 1,000 | $0.375 per 1,000 | $0.275 per 1,000 |
| Detailed post (post links, or Full post details on) | $0.50 per 1,000 | $0.375 per 1,000 | $0.275 per 1,000 |
A detailed post is charged instead of a post, never on top. Plus $0.00005 per run start. Apify's free $5 monthly credit covers about 16,000 posts. Free-plan runs stop at 1,000 rows each; any paid Apify plan removes the cap.
What's free: private accounts, accounts and posts that don't exist, keywords with no public page and entries that aren't Instagram usernames or links (each comes back as a free unavailable row saying why), and posts skipped by Only new posts. A run that returns nothing because of the input costs nothing. To cap a run's spend, set Maximum cost per run in the run options, or Max rows in the input.
Limits, stated up front
- Public accounts only. The Actor reads what a signed-out visitor can see. Private accounts return a free row and nothing else; so do accounts Instagram protects as a child's.
- Not available to signed-out visitors, so not in the output: the exact post count, business category, contact buttons, follower and following lists, stories and comment text.
- Profile posts come newest first (pinned posts can come first), 12 per request, as many as you ask for. Posts a profile collaborated on appear in its list with the other account as
ownerUsername. - Posts from profiles and keywords carry what the list shows. From a profile: likes, views and the posting date, without comment counts or the exact time. From a keyword: views and the owner, without likes. Turn on Full post details ($) to fill those in from each post's own page.
- Keywords and hashtags: Instagram sends signed-out visitors who open a hashtag (
/explore/tags/travel/) to its public keyword page, which lists top reels for the word, not every post with the tag. Common words have one; rare ones may not (free row). Instagram decides how far each page goes; when it ends before your limit, the run says so. - Likes and views are
nullwhen the owner hides them, never 0. Plays (viewsCount) exist for reels and videos only. - Image and video links are Instagram's signed links and stop working after a few days. Download what you need soon after the run.
- Email addresses and phone numbers are removed from bios and captions (replaced by
[email removed]and[phone removed]), and WhatsApp, phone and email links are left out ofbioLinks.
Only new since last run, and schedules
Turn on Only new posts and schedule the Actor daily or weekly. Each run looks at the same window (for example the latest 12 posts per profile) and returns only the posts in it that earlier runs with the same input haven't returned; skipped posts cost nothing, and the run never digs into older posts to make up the number. Profile rows always come back, so follower counts stay current. Set up a schedule under Schedules in Apify Console.
Integrations: API, n8n, Make and AI agents
API. Run it and get the rows back in one call:
curl -X POST "https://api.apify.com/v2/acts/locaihost~instagram-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["natgeo", "nasa"], "maxPostsPerProfile": 24}'
Apify's API clients for Python and JavaScript work the same way.
n8n, Make, Zapier, Google Sheets, Slack, webhooks. Apify's built-in integrations send each run's dataset wherever you need it, for example a weekly sheet of competitors' new posts with likes and views.
AI agents (MCP). Add this Actor to Claude, Cursor or any MCP client with https://mcp.apify.com/?tools=locaihost/instagram-scraper, then ask something like "Which of Nike's last 30 Instagram reels got the most views?"
FAQ
How much does it cost to scrape Instagram?
$0.30 per 1,000 posts and $0.50 per 1,000 profiles or detailed posts on the Free and Starter plans, less on Scale and Business. Apify's free $5 monthly credit covers about 16,000 posts.
Can I use it through the API or from Python?
Yes. Use the run-sync-get-dataset-items call above, or Apify's Python and JavaScript clients. Every run's data is also available as JSON, CSV or Excel from its dataset.
Can I use it from an AI agent?
Yes. Through the Apify MCP server (https://mcp.apify.com/?tools=locaihost/instagram-scraper) any MCP client can call it with usernames, links or keywords and read the rows back.
Do I need an Instagram account or cookies?
No. The Actor never logs in and never asks for cookies or passwords. It reads only what Instagram shows a signed-out visitor.
Is it legal to scrape Instagram?
The Actor collects only public information a signed-out visitor can see, and never logs in. Instagram's terms restrict automated collection, so check them against your use. Private accounts are skipped, and email addresses and phone numbers are removed from bios and captions. You are responsible for how you use the results, including Instagram's terms and the data-protection law that applies to you (for example GDPR when you process data about people in the EU).
Why are some fields empty?
Each source shows different things: profile lists have no comment counts or exact times, keyword pages have no likes, and only detailed posts carry tagged accounts, location and audio. Turn on Full post details ($) for the most complete rows. Likes and views are null when the owner hides them.
More from locaihost data
- TikTok creator analytics: followers, engagement and posting cadence for TikTok creators.
- Pinterest scraper: pins, boards and profiles from public Pinterest pages.
- YouTube transcripts: what creators say in their videos, as text.
- Google Trends data: search interest in a brand or topic over time.
Did it help?
If this saved you time, a quick rating on the Store helps other people find it.
Support
Something not working, or a field you need? Open an issue on the Issues tab: we answer issues within 24 hours.