Instagram Profile Scraper - email, phone, socials
Pricing
from $7.00 / 1,000 results
Instagram Profile Scraper - email, phone, socials
$2/1000 profiles. Scrape detailed Instagram user profile information including contact details, social links, and business information.
Pricing
from $7.00 / 1,000 results
Rating
5.0
(3)
Developer
Goldmine
Maintained by CommunityActor stats
21
Bookmarked
2.1K
Total users
141
Monthly active users
0.5 hours
Issues response
8 days ago
Last modified
Categories
Share
Instagram Profile Scraper โ scrape Instagram profiles into followers, bio and contact data

An Instagram scraper for public profiles on instagram.com. Give the Instagram profile scraper a list of usernames, @handles or profile URLs and it returns each account's display name, bio, Instagram followers count, following count, post count, verification and privacy flags, profile picture and bio links as structured data. Teams use it to scrape Instagram profiles for influencer discovery, lead enrichment, competitor monitoring and audience research.
The Actor also reads every email address, phone number, social link and website it finds in the bio, so a batch of usernames comes back as a contact list you can export to JSON, CSV or Excel.
๐ Key Features
- ๐ Flexible input โ plain usernames,
@handlesor full profile URLs, mixed freely in one list - ๐งพ Profile data โ name, bio, followers, following, posts, verified, private, profile picture, bio links, homepage
- ๐ง Contact extraction โ emails, phone numbers, social links and websites parsed out of the bio text and the bio-link buttons
- ๐ณ Link-in-bio expansion (optional) โ opens Linktree and lnk.bio pages found in the bio and returns every link and contact email listed there
- ๐ก๏ธ No login needed โ public profiles only; no cookies, session or Instagram account required
- ๐งญ Honest failure records โ a username that does not exist or could not be fetched comes back as an item with
success: falseand anerrorcode, and a run in which nothing could be fetched fails instead of finishing empty - ๐ค Multiple export formats โ JSON, CSV, Excel, XML via the Apify dataset
- ๐ Schedulable runs โ re-run the same list daily or weekly to track follower growth
๐ฅ Who Is This Actor For?
- Influencer marketers โ vet creators by audience size and find a contact email before outreach
- Sales and growth teams โ enrich a list of Instagram handles with names, bios and contact details
- Brand and competitor analysts โ track follower and post counts across a set of accounts over time
- ๐ค AI builders โ feed structured profile data to an agent or enrichment pipeline via the Apify API or MCP server
๐ก Common Use Cases
- Scrape Instagram profiles for a list of 500 creators and export the ones with an email in the bio
- Check the Instagram followers count of competitor accounts every Monday
- Turn a spreadsheet of @handles into names, bios and websites for a CRM import
- Verify which accounts in a list are private, verified or no longer exist
๐ฅ Input
| Field | Type | Description | Default |
|---|---|---|---|
usernames | Array | List of Instagram usernames or profile URLs to scrape (e.g. bigfootvlog, @bigfootvlog, or https://www.instagram.com/bigfootvlog/). | Required |
expandBioLinks | Boolean | Also open Linktree and lnk.bio pages found in the bio and return the links and email addresses listed there. Adds one request per page and is charged per expanded profile. | false |
proxyConfiguration | Object | Select proxies to be used by the scraper. Residential proxies recommended. | Apify residential proxy |
One dataset item is produced per username, so the number of usernames is the number of results.
Example Input
{"usernames": ["bigfootvlog", "@instagram", "https://www.instagram.com/cristiano/"],"expandBioLinks": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
๐ค Output
Each dataset item includes:
| Field | Type | Description |
|---|---|---|
username | string | Instagram username |
name | string | Display name |
id | string | Instagram user ID |
facebookId | string | Meta-scoped account ID |
bio | string | Biography text |
bioLinks | array | Links from the bio (title, url, linkType) |
homepage | string | First external link from the bio |
followers | number | Followers count |
follows | number | Following count |
imageCount | number | Number of posts |
isPrivate | boolean | Whether the account is private |
isVerified | boolean | Whether the account is verified |
hasClips | boolean | Whether the account has reels |
pronouns | array | Pronouns shown on the profile |
profileImage | string | Profile picture URL |
profileImageStandard | string | Profile picture URL |
allEmails | array | Email addresses found in the bio, plus contact emails from expanded link-in-bio pages |
allPhoneNumbers | array | Phone numbers found in the bio |
socialLinks | array | Social media links from the bio text, bio-link buttons and expanded pages |
websiteLinks | array | Non-social website links from the same sources |
expandedLinks | array | With expandBioLinks: every link found on the profile's Linktree or lnk.bio pages (source, platform, title, url). null when expansion is off |
hasContacts | boolean | Whether any email, phone or link was found |
success | boolean | true when the profile was scraped |
error | string | null on success; profile_not_found or blocked_or_unavailable on failed items |
Every item, including a failed one, carries the same set of fields so exports and integrations always see the same columns. Unavailable values are null.
Fields that Instagram shows only to logged-in viewers โ category, businessCategory, overallCategory, categoryEnum, businessContactMethod, businessEmail, businessPhone, isBusinessAccount, isProfessionalAccount, hasGuides, hasChannel, highlightReelCount, pinnedChannelsListCount, videoCount, videos, images, savedCount, collectionsCount, relatedProfiles, biographyWithEntities โ are kept in the output for a stable shape but are returned empty (null, "" or []). Emails and phones in the bio are still extracted into allEmails and allPhoneNumbers.
Example Output
{"name": "Instagram","username": "instagram","id": "25025320","category": null,"businessCategory": null,"overallCategory": null,"categoryEnum": null,"bio": "Discover what's new on Instagram ๐โจ","bioLinks": [{ "title": "", "url": "http://help.instagram.com", "linkType": "external" },{ "title": "Carversations with Salma Hayek", "url": "https://youtu.be/ac_qIXO0zlY", "linkType": "external" }],"homepage": "http://help.instagram.com","followers": 686392464,"follows": 286,"facebookId": "17841400039600391","isPrivate": false,"isVerified": true,"isBusinessAccount": null,"isProfessionalAccount": null,"hasClips": true,"hasGuides": null,"hasChannel": null,"highlightReelCount": null,"pinnedChannelsListCount": null,"pronouns": [],"businessContactMethod": null,"profileImage": "https://scontent.cdninstagram.com/v/t51.82787-19/550891366_18667771684...","profileImageStandard": "https://scontent.cdninstagram.com/v/t51.82787-19/550891366_18667771684...","videoCount": null,"videos": [],"imageCount": 8578,"images": [],"savedCount": null,"collectionsCount": null,"relatedProfiles": [],"biographyWithEntities": null,"businessEmail": "","businessPhone": "","allEmails": [],"allPhoneNumbers": [],"socialLinks": [],"websiteLinks": ["http://help.instagram.com", "https://youtu.be/ac_qIXO0zlY"],"expandedLinks": null,"hasContacts": true,"success": true,"error": null}
A username that does not exist returns the same fields with "success": false, "error": "profile_not_found" and everything else null.
With expandBioLinks on, a profile whose bio points at a Linktree returns entries like:
"expandedLinks": [{ "source": "https://linktr.ee/garyvee", "platform": "linktree", "title": "Spotify", "url": "https://open.spotify.com/show/6SZVsPIxPfVs6aavqM1peY" }]
You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML from the Apify Console or via the Apify API.
๐ฐ Pricing
This Actor is pay per event (you pay per result): $0.01 per profile, so 1,000 profiles cost $10 plus Apify platform usage. Paid Apify plans get a lower per-result price. A free Apify account is enough to try it.
Link-in-bio expansion (expandBioLinks) is a separate event, charged once per profile whose Linktree or lnk.bio page was expanded; the current price is on the Actor's Pricing tab. Profiles with no link-in-bio page are not charged for it.
โ FAQ
What is the Instagram Profile Scraper?
An Instagram scraper that turns a list of usernames into structured profile records: name, bio, Instagram followers count, following and post counts, verification, profile picture and any contact details found in the bio. It is built to scrape Instagram profiles in bulk without logging in.
Do I need an account, cookies or an API key?
No. The Actor reads public profiles only and needs no Instagram login, cookies or API key. Because it is not logged in, fields Instagram shows only to signed-in users (business category, business email and phone, recent posts) are returned empty; see the Output section.
Do I need a proxy?
Instagram limits anonymous traffic per IP, so the input defaults to Apify residential proxy and that is the recommended setting. Datacenter proxies are blocked far more often.
How many results can I get per run?
One result per username. There is no hard cap on the list length; split very large lists across runs if you want partial results sooner.
What happens when a profile cannot be fetched?
The item is still written with success: false and an error of profile_not_found (the username does not exist) or blocked_or_unavailable (Instagram refused the request). If nothing at all could be fetched, the run fails with a status message instead of finishing with an empty dataset. Failed items are not charged.
What does link-in-bio expansion do?
Many creators keep their real contact links on a Linktree or lnk.bio page rather than in the bio. With expandBioLinks on, the Actor opens those pages (one hop, up to three per profile) and adds every link and contact email it finds to expandedLinks, socialLinks, websiteLinks and allEmails. Other link-in-bio services and ordinary websites are not opened.
Can I schedule it or integrate it with my app?
Yes โ every Apify Actor exposes a REST API, webhooks, and integrations with Zapier, Make, Google Sheets and Slack, and can be called from an AI agent via the Apify MCP server.
Is it legal to scrape Instagram?
This Actor accesses only publicly available pages. You are responsible for making sure your use complies with Instagram's terms of service and the laws in your jurisdiction.
What if the site changes and the Actor breaks?
Open an issue on the Actor's Issues tab. Instagram changes its public pages regularly and this Actor is actively maintained.
๐งฉ Part of the Instagram Scraper Suite
Profiles, followings and more from Instagram, from one account. Also try:
- Instagram Followings Scraper โ the accounts a given profile follows
See every Goldmine Actor at apify.com/logical_scrapers.
๐ท Image Credit
Image credit: instagram.com
๐ฌ Contact & Support
- Issues & feature requests: use the Issues tab on this Actor's page โ that is the most direct route to a fix.
- Email:
coredev.dan@gmail.com - If this Actor saved you time, please leave a โญ rating on the Apify Store. Ratings are the main signal Apify uses to recommend Actors, and every one helps us keep this maintained.