Instagram Profile Scraper - Followers, Bio & Business Info
Pricing
from $2.40 / 1,000 profile results
Instagram Profile Scraper - Followers, Bio & Business Info
Scrape Instagram profiles in bulk: followers, following, posts, bio, verified & business status, category, external link, engagement rate and recent posts with likes & comments. Paste usernames or URLs. Clean JSON/CSV for influencer & competitor research. No login.
Pricing
from $2.40 / 1,000 profile results
Rating
5.0
(1)
Developer
Santhej Kallada
Maintained by CommunityActor stats
0
Bookmarked
122
Total users
25
Monthly active users
22 days ago
Last modified
Categories
Share
Instagram Profile Scraper — Followers, Bio & Engagement Rate
Scrape public Instagram profiles in bulk: followers, following, post count, bio, verified status, website link, recent posts and engagement rate. Paste usernames or profile URLs — no Instagram login, no cookies. You only pay for profiles that were actually scraped.
Built for influencer discovery, competitor benchmarking and social analytics. Clean, structured output ready for spreadsheets, dashboards and AI agents.
What does Instagram Profile Scraper do?
For every public Instagram username or profile URL you give it, the Actor returns one row with:
- 👥 Followers, following and post count
- 📝 Full name and bio
- ✅ Verified badge
- 🔗 External link / website from the bio
- 🖼️ Profile picture (standard, plus HD when available)
- 📈 Recent posts — shortcode, caption, likes, comments, video views, thumbnail, timestamp and post URL
- 🔥 Engagement rate — average (likes + comments) per recent post ÷ followers, as a percentage
- 🏷️ Business account flag and category (e.g. "Sportswear Store", "Government Agencies") when Instagram provides them
- ⭐ Highlight reel count and related profiles when Instagram provides them
Every row also carries partial_data and, for profiles that could not be scraped, an error explaining why.
Full vs partial rows
For most profiles you get the full record above with the 12 most recent posts. For some business accounts (for example adidas, Puma, National Geographic) Instagram refuses to serve its full profile data to logged-out visitors. For those the Actor falls back to the public profile page and returns "partial_data": true: followers, following, post count, bio, link, verified status, profile picture, ~6 recent posts with likes and comments, and the engagement rate are still filled; business flag, category, HD picture, highlight count and related profiles are empty.
Use cases
- Competitor benchmarking — compare followers, posting volume and engagement rate across brands in your niche.
- Influencer marketing — vet creators by reach and real engagement before you partner with them.
- Social analytics — track follower counts and engagement of many accounts over time (schedule the Actor daily or weekly).
- Media and PR research — monitor the audience size of news, media and public-sector accounts.
- AI agents — feed structured profile data into automated workflows, n8n, Make or MCP tools.
How to use Instagram Profile Scraper
- Open the Actor and go to the Input tab.
- Paste Instagram usernames or profile URLs, one per line (up to 500 per run).
nike,@nikeandhttps://www.instagram.com/nike/all work. - Leave Include recent posts + engagement rate on to get the post list and engagement rate, or switch it off if you only need profile stats.
- Click Start and wait for the run to finish (profiles are scraped 3 at a time; a batch of 100 usually takes a few minutes).
- Open the Output tab to see the table, or export the results as JSON, CSV or Excel, or fetch them via the Apify API.
Example input
{"profiles": ["nike", "adidas", "https://www.instagram.com/natgeo/"],"includeRecentPosts": true}
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
profiles | array of strings | — (required) | Instagram usernames or profile URLs, e.g. nike or https://www.instagram.com/nike/. 1–500 per run; duplicates are removed. |
includeRecentPosts | boolean | true | Also return the most recent posts (up to 12) with likes, comments and captions, and compute the engagement rate. Adds the small posts-parsed charge per profile that has posts. |
Example output
One row per profile (real output for nike, recent posts shortened to one):
{"username": "nike","full_name": "Nike","bio": "Just Do It.","followers": 291160656,"following": 266,"posts": 1667,"verified": true,"is_business": true,"category": "Sportswear Store","external_url": "http://empli.fi/nike","business_email": null,"business_phone": null,"profile_pic_url": "https://scontent-lax3-1.cdninstagram.com/v/t51.82787-19/...","profile_pic_url_hd": "https://scontent-lax3-1.cdninstagram.com/v/t51.82787-19/...","highlight_reel_count": 5,"engagement_rate": 0.034,"recent_posts": [{"shortcode": "Ddl5eH-u4le","caption": "*Just a normal day for @caitlinclark22.\n\nWake up. Eat cereal ...","like_count": 46220,"comment_count": 683,"is_video": true,"video_view_count": 275062,"thumbnail_url": "https://scontent-lax3-1.cdninstagram.com/v/t51.82787-15/...","timestamp": 1790085604,"post_url": "https://www.instagram.com/p/Ddl5eH-u4le/"}],"related_profiles": [],"profile_url": "https://www.instagram.com/nike/","partial_data": false}
engagement_rate is a percentage: 0.034 means 0.034 %. timestamp is a Unix timestamp (seconds). A profile that could not be scraped has all data fields empty and an error, for example "Profile not found: the username does not exist, was renamed, or the account was removed."
The run's key-value store also contains an OUTPUT summary: {"requested": 6, "scraped_ok": 6, "partial_data": 3, "failed": 0, "posts_parsed": 6}.
How much does it cost to scrape Instagram profiles?
Pay per event — no monthly fee for the Actor, no minimum.
| Event | Price | When it is charged |
|---|---|---|
| Actor start | $0.001 | Once per run |
| Profile result | $0.003 | Per profile successfully scraped (full or partial). Failed and not-found profiles are not charged. |
| Recent posts + engagement | $0.002 | Per profile for which the recent-posts list and engagement rate are returned (only when includeRecentPosts is on and the profile has public posts) |
Worked examples:
- 10 brand profiles with recent posts: $0.001 + 10 × $0.003 + 10 × $0.002 = $0.051
- 100 profiles, stats only (
includeRecentPosts: false): $0.001 + 100 × $0.003 = $0.301 - 500 profiles with recent posts: $0.001 + 500 × $0.003 + 500 × $0.002 = $2.501
If 3 of those 500 profiles fail, they are not charged: $0.001 + 497 × $0.003 + 497 × $0.002 = $2.486.
FAQ
Do I need an Instagram login or cookies? No. The Actor reads only data Instagram shows to logged-out visitors of public profiles.
Why are category, business flag or HD picture empty for some profiles? Those rows have "partial_data": true: Instagram would not serve its full profile data for that account without a login, so the Actor used the public profile page instead. Core stats, bio, link and engagement are still there.
Do you return business emails and phone numbers? The business_email and business_phone fields are filled only when Instagram shows them to logged-out visitors. Instagram currently hides them from logged-out visitors for virtually every account, so expect them to be empty.
What happens if a profile fails? Its row has an error explaining why (not found, or Instagram kept blocking the request after several retries on fresh IPs), it is not charged, and the run's status message says how many profiles failed. If every profile in a run fails, the run is marked Failed so it never looks like a success.
What about private accounts? You get the public profile stats (followers, following, post count, bio). Posts of private accounts are not visible, so no posts, no engagement rate and no posts charge.
How is the engagement rate calculated? Average (likes + comments) across the recent posts returned (12 for full rows, about 6 for partial rows), divided by followers, × 100.
Can I scrape many profiles at once? Yes, up to 500 profiles per run. For more, split them across runs or schedule several runs.
Good for AI agents? Yes — clean JSON with stable field names, ideal for MCP servers, n8n, Make and LLM agents.