Instagram Profile Scraper + Emails & Contacts
Pricing
from $4.00 / 1,000 profile scrapeds
Instagram Profile Scraper + Emails & Contacts
Scrape public Instagram profiles by username or URL: name, bio, followers, following, verification, website, recent posts, plus public email and phone. No login required. Works with Apify MCP and the API.
Pricing
from $4.00 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
106
Total users
20
Monthly active users
3 days ago
Last modified
Categories
Share
What is Instagram Profile Scraper?
Instagram Profile Scraper turns Instagram usernames or profile URLs into one clean row per profile. Each row has the display name, bio, follower and following counts, verification, business flag, external link, bio links, profile picture, and any email or phone the account publishes. It also includes up to 12 recent posts with caption, comment count, media type and date. Brand teams, influencer marketers, researchers and AI agents use it to size up and enrich Instagram accounts in bulk, with no Instagram login.
Why marketers use it for profile research
- The numbers that matter first.
followersCount,followingCountandisVerifiedsit at the top of every row for quick ranking. - Contacts when they are public.
emailandphonecome from the contact button or the bio when the account publishes them. - Recent activity at a glance.
recentPostsshows up to 12 latest posts with caption, comments, date and media type. - Handles or URLs, deduplicated. Paste
natgeo,@nasaor a full profile URL; repeats are skipped. - Pay only for real profiles. Unknown usernames are listed in the run summary and are free.
How to use it
Look up a list of creators with their recent posts:
{"usernames": ["natgeo", "@nasa", "https://www.instagram.com/humansofny/"],"scrapeRecentPosts": true,"maxRecentPosts": 12}
Profile details only, smallest rows:
{"usernames": ["nike", "adidas", "puma"],"scrapeRecentPosts": false}
| Input | What it controls |
|---|---|
usernames | Instagram usernames, @handles or profile URLs. Required. |
scrapeRecentPosts | Add the profile's latest posts (default on) |
maxRecentPosts | Posts per profile, up to 12 (default 12) |
proxyConfiguration | Apify Proxy settings; Residential by default |
Need more than 12 posts per account? Continue with Instagram Posts Scraper linked below.
Output: Instagram profile data you receive
A real row for a public brand account (recentPosts shortened to one post, image URLs left out):
{"username": "natgeo","fullName": "National Geographic","userId": "787132","biography": "Step into wonder and find your inner explorer with National Geographic 🌎","followersCount": 268480203,"followingCount": 194,"isVerified": true,"isPrivate": false,"isBusinessAccount": false,"externalUrl": "http://visitstore.bio/natgeo","bioLinks": ["http://visitstore.bio/natgeo"],"highlightReelCount": 0,"igtvVideoCount": 1,"recentPosts": [{"postId": "3983118388705688735","shortCode": "DdG4RIxIPyf","postUrl": "https://www.instagram.com/p/DdG4RIxIPyf/","caption": "Presented by @Rolex. Welcome to Africa 🌍 ...","commentCount": 509,"isVideo": true,"postedAt": "2026-09-10T13:00:14.000Z"}],"profileUrl": "https://www.instagram.com/natgeo/","scrapedAt": "2026-10-01T02:46:03.173Z"}
| Field | What it contains |
|---|---|
username, fullName, userId, biography, profileUrl | Who the account is |
followersCount, followingCount | Audience size |
isVerified, isPrivate, isBusinessAccount | Account status flags |
email, phone | Public contact details, included when the account publishes them |
externalUrl, bioLinks | The website and links in the bio |
recentPosts | Up to 12 latest posts with URL, caption, comment count, media type and date |
postsCount | Total posts when Instagram's public data reports it, mostly for smaller accounts |
profilePicUrl, profilePicUrlHd | Profile picture links |
Fields without a value are left out of the row. OUTPUT in the default key-value store reports the run outcome and lists any usernames that were not found.
Example workflow: shortlisting creators for a campaign
An outdoor brand has 50 creator handles from a hashtag search. They run them with maxRecentPosts set to 6, sort by followersCount, and read recentPosts to confirm each creator posted in the last month. They keep creators whose email is filled for direct outreach. Then they pass the rest to Instagram Contact Scraper to look for a contact in the bio and contact button.
Pricing
This Actor uses Pay per event. Apify platform usage is included in the event price, so you pay one event per profile scraped plus one start event per run. Unknown usernames are free. The live Pricing tab on this page shows the current price.
- 50 profiles = 50 profile events + 1 start event.
- Recent posts come at no extra charge.
- The size of your
usernameslist sets the ceiling for each run.
Profile research with AI agents (MCP)
Connect this Actor to an AI agent through Apify MCP and ask in plain language:
Look up these 10 Instagram accounts and rank them by followers. For each, tell me if it is verified, its website, any public email, and the date of its latest post.
Agent checklist:
- Pass handles or URLs in
usernames. - Set
scrapeRecentPosts: falsewhen only profile numbers matter, to keep rows short. - Read rows with
get-dataset-items; readOUTPUTfor usernames that were not found. - Use
profileUrlas the stable ID when joining with other data.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~instagram-profile-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["natgeo", "nasa"], "scrapeRecentPosts": false}'
Related Instagram tools from the same developer
| Your next step | Use | Why |
|---|---|---|
| When you still need to find accounts by keyword | Instagram User Search Scraper | Profiles for any niche or keyword |
| When you want more than 12 posts per account | Instagram Posts Scraper | Full post lists by profile, hashtag or URL |
| When you then want contact details | Instagram Contact Scraper | Emails and phones from bio and contact button |
| When you want to check audience quality | Instagram Fake Follower Auditor | Audience-quality score per profile |
| When you want to know how old an account is | Instagram Account Age Checker | Estimated creation date per account |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Ranking a long list of accounts | Turn off scrapeRecentPosts | Shorter rows with all the profile numbers |
| Checking how active an account is | Keep maxRecentPosts at 6 to 12 | Recent captions and dates |
| Mixed handles and URLs | Paste them as they are | One row per account, duplicates skipped |
| Needing the full post history | Use Instagram Posts Scraper | Every post, beyond the latest 12 |
Builder's note
I found that most people want a quick read on an account before deciding anything else, so each row starts with followers, verification and the website, followed by the latest posts. I learned that Instagram's public profile data reports a reliable total post count mainly for smaller accounts, so the Actor includes postsCount only when that number is the true total.
FAQ
Do I need an Instagram account?
No. The Actor reads public profile data and needs no login or cookies.
Why is postsCount missing for some accounts?
Instagram's public profile data reports the total post count mainly for smaller accounts. For larger ones the Actor leaves the field out so every number you get is the real one.
Does it return emails?
When an account publishes an email or phone on its contact button or in its bio, it appears in email and phone.
What happens with an unknown username?
It is listed in OUTPUT.notFound and is free.
Can I get more than 12 posts?
Each profile row carries up to 12 recent posts. For complete post lists, use Instagram Posts Scraper.
Responsible use
This Actor collects public Instagram profile data, which can include personal data protected by laws such as the GDPR and CCPA. Use it only with a lawful basis, honor opt-outs, and respect Instagram's terms. Read Apify's guide on whether web scraping is legal for more context. Instagram is a trademark of Meta Platforms, Inc. This independent Actor is not affiliated with, associated with, or endorsed by Instagram or Meta. For questions or bugs, open a ticket in the Issues tab.