Instagram Scraper — Profiles, Posts & Hashtags
Pricing
Pay per usage
Instagram Scraper — Profiles, Posts & Hashtags
Scrape Instagram public profiles, posts, reels, and hashtags. Extract follower counts, bios, engagement metrics, captions, likes, comments, and media URLs. Ideal for influencer marketing research, brand monitoring, competitor analysis, social listening, and trend tracking. Supports bulk username and
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Extract data from public Instagram profiles, posts, and hashtags at scale. Built for influencer marketing, brand monitoring, competitor analysis, and social listening.
What does this scraper do?
This actor scrapes publicly available Instagram data including:
- Profile information — username, full name, bio, follower count, following count, post count, verification status, profile picture URL, external links
- Post data — shortcode, caption, likes, comments, timestamp, image/video URLs, location, accessibility text
- Hashtag data — total post count, top posts with engagement metrics
Use cases
Influencer Marketing
- Build lists of influencers by follower count and engagement rate
- Track influencer growth over time
- Compare engagement metrics across potential brand partners
- Identify micro-influencers (10K-100K followers) in specific niches
Brand Monitoring
- Track mentions of your brand's hashtag
- Monitor competitor profiles and their posting frequency
- Analyze engagement trends for your industry
- Detect viral content early
Social Listening & Market Research
- Track trending hashtags in your industry
- Analyze post captions for sentiment and keyword patterns
- Monitor product launch reactions
- Research audience demographics through follower data
Competitive Intelligence
- Compare follower growth rates across competitors
- Analyze posting cadence and content strategies
- Track which content types get the most engagement
- Monitor new product announcements
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
usernames | string[] | [] | Instagram usernames to scrape (without @) |
hashtags | string[] | [] | Hashtags to scrape (without #) |
maxPosts | integer | 12 | Max posts to extract per profile/hashtag |
includeComments | boolean | false | Attempt to extract top comments |
sessionCookie | string | "" | Optional session cookie for authenticated access |
maxConcurrency | integer | 1 | Max concurrent requests (keep low!) |
proxyConfiguration | object | — | Proxy settings (residential strongly recommended) |
Example input
{"usernames": ["natgeo", "nike", "cristiano"],"hashtags": ["photography", "travel"],"maxPosts": 12,"includeComments": false,"maxConcurrency": 1,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output format
Profile data
{"type": "profile","username": "natgeo","fullName": "National Geographic","bio": "Experience the world through the eyes of National Geographic photographers.","followerCount": 284000000,"followingCount": 156,"postCount": 28547,"isVerified": true,"isPrivate": false,"profilePicUrl": "https://...","externalUrl": "https://natgeo.com","dataSource": "shared_data","scrapedAt": "2026-03-01T12:00:00.000Z","url": "https://www.instagram.com/natgeo/"}
Post data
{"type": "post","ownerUsername": "natgeo","shortcode": "ABC123def","caption": "A stunning view of the Northern Lights...","likesCount": 1250000,"commentsCount": 4523,"timestamp": "2026-02-28T18:30:00.000Z","imageUrl": "https://...","videoUrl": null,"isVideo": false,"videoViewCount": null,"location": "Iceland","postUrl": "https://www.instagram.com/p/ABC123def/"}
Hashtag data
{"type": "hashtag","hashtag": "photography","postCount": 912000000,"topPostCount": 12,"scrapedAt": "2026-03-01T12:00:00.000Z","url": "https://www.instagram.com/explore/tags/photography/"}
Important notes about Instagram scraping
Proxy requirements (CRITICAL)
Instagram is one of the most aggressive platforms when it comes to anti-bot detection. Residential proxies are essentially mandatory for reliable operation:
- Datacenter IPs are blocked immediately by Instagram
- Residential proxies work but may still face rate limits
- Use Apify's residential proxy group:
RESIDENTIAL - Keep concurrency at 1 (maximum 2-3 with proxies)
Without authentication
Without a session cookie, the scraper uses multiple extraction strategies:
- JSON-LD structured data in
<script type="application/ld+json"> - window._sharedData / window.__additionalDataLoaded embedded JSON
- Meta tags (og:title, og:description) for basic profile data
- Script regex fallback for data embedded in React hydration
Even without authentication, you can typically extract:
- Profile name, bio, follower/following/post counts
- Profile picture URL
- Verification and privacy status
- Up to 12 recent posts (when available)
With authentication (session cookie)
Providing a valid session cookie unlocks:
- More reliable data extraction
- GraphQL API access for paginating through posts
- Comment data
- More detailed post metadata
How to get a session cookie:
- Log into Instagram in your browser (use a burner account)
- Open DevTools (F12) > Application > Cookies > instagram.com
- Copy the values of
ds_user_idandsessionid - Format as:
ds_user_id=YOUR_ID; sessionid=YOUR_SESSION
Warning: Using session cookies risks the account being suspended by Instagram. Always use a burner account, never your main account.
Rate limiting
Instagram imposes strict rate limits:
- Without proxy: ~5-10 requests before block
- With datacenter proxy: ~10-30 requests before block
- With residential proxy: ~50-200 requests before block
- With session cookie + residential proxy: ~200-500 requests
The scraper automatically:
- Rotates through 10 User-Agent strings (desktop + mobile)
- Adds random delays (3-8 seconds) between requests
- Detects login walls, challenges, and rate limits
- Falls back to meta tag extraction when blocked
Data freshness
Instagram frequently changes their page structure and API endpoints. The scraper uses multiple extraction strategies to maximize resilience, but some strategies may stop working when Instagram updates their frontend.
Pricing
This actor uses pay-per-event (PPE) pricing:
- Profile scraped: charged per profile
- Post scraped: charged per post
- Hashtag scraped: charged per hashtag
Integration examples
Export to Google Sheets
Use Apify's Google Sheets integration to automatically push scraped data to a spreadsheet for team collaboration.
Webhook notifications
Set up webhooks to get notified when scraping is complete. Useful for monitoring dashboards and alerting pipelines.
Scheduled runs
Run this actor on a schedule (daily/weekly) to track profile growth and engagement trends over time.
FAQ
Q: Why am I getting no results? A: Instagram blocks datacenter IPs aggressively. Use residential proxies and keep concurrency at 1. If still blocked, provide a session cookie.
Q: Can I scrape private profiles? A: No. This actor only scrapes publicly available data. Private profiles will be detected and skipped.
Q: How many profiles can I scrape per run? A: With residential proxies, typically 10-50 profiles per run reliably. For larger volumes, split across multiple runs with different proxy sessions.
Q: Why do some profiles only have follower counts but no posts? A: Instagram often shows a login wall before displaying post data. The scraper extracts what it can from meta tags. Provide a session cookie for full access.
Q: Is this legal? A: This actor scrapes publicly available data only. Users are responsible for compliance with Instagram's Terms of Service and applicable laws in their jurisdiction.
Changelog
v1.0 (2026-03-01)
- Initial release
- Multi-strategy extraction (JSON-LD, shared data, meta tags, script regex)
- Profile, post, and hashtag scraping
- Login wall detection and graceful degradation
- 10 rotating User-Agent strings with mobile variants
- GraphQL pagination support (with session cookie)
- PPE pricing via Actor.charge()
Related Actors
- Instagram Hashtag Scraper — Track Instagram hashtags
- Twitter Scraper — Cross-platform social data
- TikTok Scraper — TikTok posts and profiles
- Facebook Scraper — Facebook page and post data
- YouTube Scraper — YouTube video and channel data