Instagram Lookalike & Related Profiles - Emails
Pricing
from $2.10 / 1,000 similar profiles
Instagram Lookalike & Related Profiles - Emails
Find Instagram lookalikes of one account or a whole set, with emails, phones, bio links and median engagement. Rank by shared seeds, chain up to 5 levels, filter by followers, engagement rate or contact type. No login.
Pricing
from $2.10 / 1,000 similar profiles
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
2
Bookmarked
228
Total users
87
Monthly active users
20 hours ago
Last modified
Categories
Share
Find the accounts most like any public Instagram profile, with emails, phones, bio links and median engagement already on the row. Paste a handle and get Instagram's own "Suggested for you" graph - or turn on chain discovery and map an entire niche up to 5 levels deep, every profile deduplicated and charged once. Enrichment is on by default.
Why Use This Scraper?
- Instagram's own suggestion graph - up to roughly 78 lookalikes per account
- Lookalikes of a whole set of accounts - give several seeds and every row says which of them it sits next to (
matchedSeeds,seedOverlap). Shared profiles come first, andminSeedOverlapkeeps only the accounts close to several of your seeds - Chain discovery up to 5 levels deep - also fetch the lookalikes of every discovered profile, mapping the whole network around your seeds in one run
- Every profile deduplicated across the entire run and charged at most once, with a global
maxTotalProfilessafety cap - Optional same-category business and creator recommendations, about 21 more per account
- Enrichment on by default: follower counts, bio, emails from the contact button and the bio, phones, bio links, and median engagement
- Filter by contact type (
emailOnly), verified status, a follower band or an engagement-rate band. Rows a filter drops never pay the per-profile fee - Exclude list: creators you already work with never come back, and are never charged
- Many source accounts per run, processed in parallel
- Flattened rows that drop straight into CSV, Excel, or a CRM import
- No login, no cookies, no session tokens - nothing to get your account flagged
Switching from another related-users scraper?
The complaints users file against related-profile scrapers, and how this one is built to avoid them:
| The complaint elsewhere | What this Actor does instead |
|---|---|
| "Failed but still deducted my money" | The per-profile fee is billed only for rows delivered to your dataset. A failed account produces an uncharged error row, and a run that can't fetch data at all fails loudly with no per-profile charges. Enrichment is billed per profile looked up, so profiles your filters drop still count as enrichments. |
| "Charged for duplicate results" | Every profile is deduplicated across the entire run - including across chain-discovery levels - and charged at most once, no matter how many accounts suggest it. |
| "My username input was silently changed" | Input is never rewritten behind your back. Handles, @handles, and profile URLs normalize by a strict rule; anything unrecognizable comes back as an invalid_username error row quoting exactly what you sent. |
| "Client error 400 on some accounts / broken actor" | Accounts Instagram won't chain (common on very large brands) return an explanatory no_suggestions_available row and the run continues. Upstream requests retry with automatic failover before anything is skipped. |
| "Full profile details marked unstable" | Enrichment here is a first-class, stable path: follower/following/post counts, bio, category, public contact fields, plus the account's registration month, country, and former-username count. |
| "Can I get the connection graph?" | Every row already is an edge: sourceUsername → username, tagged with rootUsername and depthLevel. Export the dataset and you have the full network, ready for any graph tool. |
Overview
The Instagram Similar Profiles & Lookalike Finder is built for lead generation teams, influencer marketers, competitive analysts, and agencies who need to expand from one known account to a list of comparable ones.
The output is profile-shaped rows. Each row is one lookalike account, tagged with the source account it was found from. Scrape three source accounts and you get one flat dataset of all their lookalikes, each row carrying sourceUsername so you can group or filter by origin.
Two independent graphs feed the results, and each row records which one it came from in its source field:
suggested- Instagram's "Suggested for you" chaining graph, the larger and more directly similar setbusiness-category- recommended business and creator accounts in the same category, enabled with a toggle. This is the only source that carries each account's Instagram category without enrichment.
Supported Inputs
Input types
| Input type | Pattern | Example |
|---|---|---|
| Bare handle | username | natgeo |
| @-prefixed handle | @username | @nasa |
| Profile URL | instagram.com/<username> | https://www.instagram.com/nike |
All three forms can be mixed in the same run.
Copy-pasteable input
{"usernames": ["natgeo", "@nasa", "https://www.instagram.com/nike"],"maxSimilarPerAccount": 50,"includeBusinessSuggestions": true,"contactInfoType": "emailOnly"}
Unsupported inputs
- Private accounts - Instagram exposes no suggestion graph for them
- Post, reel, or hashtag URLs - this actor takes account handles only
- Accounts Instagram considers ineligible - some very large brand accounts have no suggestion graph at all. You get an explanatory error row rather than silence. See the FAQ.
Use Cases
| Audience | What they use it for |
|---|---|
| Lead generation teams | Expand one ideal customer into a list of comparable accounts, with public contact details |
| Influencer marketers | Find creators similar to one who already performed well |
| Competitive analysts | Map the account neighbourhood a competitor sits in |
| Agencies | Build prospect lists in a client's exact niche |
| Brand teams | Discover adjacent accounts and partnership candidates |
| Market researchers | Study category clustering and account adjacency on Instagram |
How It Works

- Normalise the input - bare handles,
@handles, and profile URLs all resolve to a clean username. Invalid input becomes an error row instead of a wasted request. - Resolve the account - the handle is looked up to get its numeric ID. A missing account returns a clear error row.
- Pull the suggestion graph - Instagram's "Suggested for you" accounts for that profile.
- Optionally add category recommendations - same-category business and creator accounts, deduplicated against the suggestions.
- Optionally chain outward - with
depthabove 1, every discovered profile becomes a new source and its own lookalikes are fetched, level by level, up to 5 hops from your seeds. A run-wide dedup set guarantees each unique profile appears (and is charged) only once, cycles in the graph are never re-fetched, and themaxTotalProfilescap stops the run cleanly at your budget. - Enrich by default - each lookalike is looked up individually to add emails (contact button + bio), phones, bio links, median engagement, follower counts, biography and category. Enrichment happens before the follower, business, post-count and contact filters, so they can use the enriched fields. A row a filter drops is never charged the per-profile fee, but its enrichment lookup is still billed.
Input Configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
usernames | array | Yes | - | Source accounts. Handles, @handles, or profile URLs. |
minSeedOverlap | integer | No | 1 | Keep only profiles Instagram suggests for at least this many of your usernames. 2+ finds the lookalikes of the whole set. Turns chain discovery off. |
excludeUsernames | array | No | - | Accounts never to return, such as your own brand or creators you already work with. Dropped before any lookup, never charged. |
maxSimilarPerAccount | integer | No | unlimited | Cap on lookalikes returned per source account. Profiles shared by more seeds are kept first. |
depth | integer | No | 1 | Chain discovery: follow the suggestion graph 1-5 levels deep. Level 2 also fetches the lookalikes of every discovered profile, and so on. Paid Apify plans only. |
maxTotalProfiles | integer | No | none | Hard cap on profiles returned (and charged) across the whole run - the safety brake for chain discovery. |
includeBusinessSuggestions | boolean | No | false | Also include same-category business and creator recommendations. |
enrichProfiles | boolean | No | true | Add emails, phones, bio links, median engagement, follower counts, bio, category, and the account's registration month and country. Paid Apify plans only. |
contactInfoType | string | No | any | Keep only profiles with email, phone, either, or both. Turns enrichment on. |
onlyVerified | boolean | No | false | Return only accounts with a verification badge. |
minFollowers | integer | No | none | Drop lookalikes below this follower count. Automatically enables enrichProfiles. |
maxFollowers | integer | No | none | Drop lookalikes above this follower count - keeps results to micro/mid-tier accounts. Automatically enables enrichProfiles. |
minEngagementRate / maxEngagementRate | number | No | none | Median engagement-rate band in percent, e.g. 1 to 15. A profile whose rate can't be measured is dropped. Enables enrichment. |
onlyBusiness | boolean | No | false | Keep only business / creator accounts. Enables enrichment. |
excludePrivate | boolean | No | false | Drop private lookalikes from the output (they never seed the next depth either). |
minPosts / maxPosts | integer | No | none | Post-count floor / ceiling. Enables enrichment. |
includeLatestPosts | boolean | No | false | Attach a 3-post preview on each enriched lookalike. |
scrapeFacebookProfile | boolean | No | false | If the bio or a bio link points at Facebook, put that URL on facebookProfileUrl. Does not fetch Facebook. |
Example - map a whole niche with chain discovery
{"usernames": ["gymshark"],"depth": 3,"maxSimilarPerAccount": 30,"maxTotalProfiles": 1000}
One seed account, three levels out: Gymshark's lookalikes, their lookalikes, and theirs again - up to 1,000 unique fitness-brand profiles, each row tagged with rootUsername, depthLevel, and the sourceUsername it was discovered from, so the network is fully reconstructable.
Example - lookalikes of several accounts at once
{"usernames": ["bonappetitmag", "nytcooking", "epicurious"],"minSeedOverlap": 2,"excludeUsernames": ["thefeedfeed"],"minEngagementRate": 0.5}
Only the profiles Instagram puts next to at least two of the three food publishers, with your excluded accounts left out. Measured on 2026-10-02 with the first three seeds and no other filters: 20 profiles were suggested for both Bon Appétit and NYT Cooking, among them Half Baked Harvest, Love and Lemons, Alison Roman and Eater.
Example - lookalike list without enrichment
{"usernames": ["natgeo"],"maxSimilarPerAccount": 50,"enrichProfiles": false}
Example - lead generation with contact details
{"usernames": ["nasa", "natgeo"],"maxSimilarPerAccount": 100,"includeBusinessSuggestions": true,"contactInfoType": "emailOnly","minFollowers": 10000}
Output Overview
One dataset row per lookalike account. Every row identifies the source account it was found from and which graph produced it, then carries the account's public identity fields.
Enrichment fields (followerCount, followingCount, postCount, biography, externalUrl, publicEmail, publicPhone, email, emails, emailSource, phone, phones, medianEngagementRate, isBusiness, accountCreated, accountCountry, formerUsernameCount, bioLinks) are null / empty unless enrichProfiles is on (it is, by default). The last three about-panel fields separate an established account from one spun up last month, which a follower count alone never tells you. category is populated for business-category rows even without enrichment. latestPosts and facebookProfileUrl appear only when those toggles are on.
Accounts that could not be processed are returned as error rows carrying sourceUsername, error, and message - these are never charged.
Output Samples
Real row, produced from usernames: ["natgeo"] with enrichProfiles: true (CDN URL shortened):
{"sourceUsername": "natgeo","sourceUserId": "787132","source": "suggested","username": "instagram","userId": "25025320","fullName": "Instagram","profileUrl": "https://www.instagram.com/instagram/","isVerified": true,"isPrivate": false,"profilePicUrl": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-19/...","socialContext": "Instagram","category": null,"followerCount": 685857490,"followingCount": 264,"postCount": 8535,"biography": "Discover what's new on Instagram 🔎✨","externalUrl": "https://www.youtube.com/watch?v=H6G9PcvHjj4","publicEmail": null,"publicPhone": null,"isBusiness": false}
Error row for an account with no suggestion graph:
{"sourceUsername": "someverylargebrand","error": "no_suggestions_available","message": "Instagram returns no \"suggested for you\" accounts for @someverylargebrand. This happens on some very large or restricted accounts - try a smaller or more niche account."}
Key Output Fields
Source
sourceUsername, sourceUserId, source
Chain discovery
rootUsername (the seed account this chain started from), depthLevel (how many hops out it was found - 1 = direct lookalike of a seed)
Seed match
matchedSeeds (the input accounts Instagram suggests this profile for), seedOverlap (how many). Deeper chain-discovery rows that no seed suggests directly read [] and 0
Account identity
username, userId, fullName, profileUrl, profilePicUrl
Status
isVerified, isPrivate, isBusiness, category, socialContext
Audience (enrichment only)
followerCount, followingCount, postCount
Profile detail (enrichment only)
biography, externalUrl
Public contact (enrichment only)
email, emails, emailSource, phone, phones, publicEmail, publicPhone
Engagement (enrichment only)
medianEngagementRate
Free Apify plan
On the free Apify plan a run covers 1 account, up to 20 lookalikes, without enrichment or chain discovery. The first 3 profiles of each run come back in full, so you can check the data. After that, rows keep the username, user id, full name, profile URL, verified and private flags, category, Instagram's suggestion reason and the source fields, while the profile picture is left empty and a freePlanNote field marks those rows. Enrichment fields (counts, biography, links, emails, phones, engagement rate) are paid-plan only. Any paid Apify plan returns every field in full. Category recommendations (includeBusinessSuggestions), profile enrichment (enrichProfiles), the latest-posts preview (includeLatestPosts) and chain discovery (depth above 1) are available on paid Apify plans only.
FAQ
How many lookalikes do I get per account?
Instagram serves up to roughly 78 suggestions per account, plus about 21 more if includeBusinessSuggestions is on. The exact number varies by account.
Why did one of my accounts return no results?
Instagram does not expose a suggestion graph for every profile. Very large brand accounts in particular often return nothing - Instagram considers them ineligible for chaining. You get an explanatory error row and are not charged. Smaller, more niche accounts almost always work. Turning on includeBusinessSuggestions frequently produces results even when the suggestion graph is empty.
Do I need enrichment to get follower counts and emails?
Yes - and it is on by default. The suggestion graph returns identity fields only. Follower counts, emails, phones, bio links and median engagement each require an additional lookup per profile, which is why enrichment is billed separately. Set enrichProfiles: false to skip it.
Does minFollowers work without enrichment?
It cannot filter on data that was never fetched, so switching it on automatically enables enrichProfiles. The threshold is applied after enrichment and before the per-profile charge: a dropped row is not billed as a similar profile, but its enrichment lookup is.
How many accounts publish a public email?
Only a minority - roughly one in five in testing, and only for business or creator accounts that chose to display contact details. publicEmail is null for the rest. This is an Instagram limitation, not a scraping gap.
How does chain discovery decide what to expand? Only profiles that were actually delivered to your dataset are expanded at the next level - anything dropped by your filters or caps is not. Private accounts are never expanded (their graphs are unreachable), cycles are detected so no account is fetched twice, and every unique profile is charged at most once per run no matter how many accounts suggest it.
Can a deep run explode in cost?
The graph grows exponentially with depth, but three independent brakes bound every run: maxTotalProfiles stops it at an exact row count, your run's charge limit stops it at an exact dollar amount, and the timeout stops it in time. The run finishes cleanly at whichever it hits first - with everything found so far already in the dataset.
Is this the same as scraping followers? No. Followers are people who follow an account. Lookalikes are accounts similar to it, per Instagram's own recommendation graph. For follower lists see the Instagram Followers & Following Scraper.
Do I need an Instagram account, login, or cookies? No. Nothing is authenticated and no session is used, so there is no account to get flagged.
Support
Found a bug or need a field that is not there? Open an issue on the actor's Issues tab and it will be looked at.
Email: muhamed.didovic@gmail.com
Additional Services
Need a custom scraper, a tailored export format, or an integration into your own pipeline? Custom builds are available - get in touch at muhamed.didovic@gmail.com.
Explore More Scrapers
- Instagram Profile Scraper - profiles, posts and comments from any public account
- Instagram Followers & Following Scraper - full follower and following lists
- Instagram Hashtag Scraper - top posts and reels from any hashtag
- Instagram Stories & Highlights Scraper - active stories and permanent highlights
- Instagram Post Likers Scraper - who liked any public post or reel
- Instagram Comments Scraper - full comment threads with replies
- Instagram Reels Search & Viral Finder - find trending reels by keyword
Browse the full collection at apify.com/memo23.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/instagram-similar-profiles-scraper).
Purpose: Expands a public Instagram handle into similar accounts using Instagram's own suggestion graph, with optional per-profile enrichment.
Minimal input:
{ "usernames": ["natgeo"], "maxSimilarPerAccount": 20 }
Output: one dataset row per lookalike - sourceUsername, sourceUserId, source, rootUsername, depthLevel, matchedSeeds, seedOverlap, username, userId, fullName, profileUrl, isVerified, isPrivate, profilePicUrl, socialContext, category, and (enrichment only) followerCount, followingCount, postCount, biography, externalUrl, publicEmail, publicPhone, email, emails, emailSource, phone, phones, medianEngagementRate, bioLinks, isBusiness, accountCreated, accountCountry, formerUsernameCount. Failed accounts return {sourceUsername, error, message} instead.
Behaviors an agent should know:
- Yield is capped by Instagram at roughly 78 suggestions per account, plus about 21 with
includeBusinessSuggestions. To go beyond that, raisedepth(1-5) - each level also fetches the lookalikes of everything discovered so far, deduplicated run-wide. Always pairdepthabove 2 withmaxTotalProfiles, since growth is exponential. - Some accounts - especially very large brands - have no suggestion graph and return
no_suggestions_available. Retrying will not help; use a smaller account or enableincludeBusinessSuggestions. - Enrichment is on by default. Set
enrichProfiles: falseto skip emails, ER and follower counts.contactInfoTypefilters after enrichment: rows that fail it are not charged assimilar-profile, but theirenriched-profileevent is. - With several
usernames,seedOverlapcounts how many of them Instagram suggests a profile for;minSeedOverlap: 2returns the lookalikes of the whole set. It turns chain discovery off.excludeUsernamesremoves accounts before any charge. minEngagementRate/maxEngagementRateare percents and enable enrichment; a profile whose rate can't be measured is dropped.minFollowersandmaxFollowersimplicitly enableenrichProfiles, because they filter on enriched data; a profile whose count can't be fetched is dropped, never passed through unverified. UsemaxFollowersto keep results to micro/mid-tier accounts.- Billing: one
similar-profileevent per row delivered, plus oneenriched-profileevent per successfully enriched profile, whether or not a later filter (followers, engagement, business, post count, contact type, private) removes it. Error rows are never charged, and neither are rows removed byonlyVerified,minSeedOverlap,excludeUsernamesormaxSimilarPerAccount, which apply before enrichment. - A run whose filters remove every profile ends SUCCEEDED with an empty dataset and a status message naming the cause. Retrying will not change it; loosen the filters instead.
- No login is used, so private accounts and authenticated-only fields are unavailable.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available Instagram profile data - no authenticated endpoints, paid features, or content behind the instagram.com login wall. Users are responsible for ensuring their use complies with instagram.com's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
instagram similar profiles scraper, instagram lookalike finder, instagram lookalike search, find similar instagram influencers, lookalike audience instagram, scrape instagram suggested accounts, instagram related profiles API, instagram related users scraper, instagram chain discovery, instagram network mapping, instagram.com scraper, Apify instagram, similar accounts scraper, instagram profile discovery, competitor account finder, influencer discovery data, instagram lead generation, b2b prospecting data, instagram audience research, creator sourcing tool, instagram contact email scraper, social media prospecting, instagram niche research, brand partnership discovery, no login instagram scraper