Instagram Similar Profiles Scraper — Lookalike Accounts avatar

Instagram Similar Profiles Scraper — Lookalike Accounts

Pricing

from $4.53 / 1,000 profile analyzeds

Go to Apify Store
Instagram Similar Profiles Scraper — Lookalike Accounts

Instagram Similar Profiles Scraper — Lookalike Accounts

Find Instagram profiles similar to any public account. Get each suggested account's followers, bio, email, phone, website, and category, then filter by contact details, account type, category, keywords, or follower count. No login needed.

Pricing

from $4.53 / 1,000 profile analyzeds

Rating

0.0

(0)

Developer

ToolzerHub

ToolzerHub

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

4 hours ago

Last modified

Share

Instagram Similar Profiles Scraper — Lookalike Accounts, Already Qualified

Find Instagram profiles similar to any public account. Give it one handle and get back the accounts around it, each with an email, a phone number, a website, a category and a follower count — already filtered down to the ones worth contacting.

Instagram builds its "Suggested for You" list from who follows whom. That makes it the best free map of a niche there is: one competitor's handle is usually enough to find the rest of the market. This Actor reads that map, then does the part that actually takes time — fetching every discovered account's full profile and throwing away the ones that don't fit.

No login, no cookie, no session.

Input

FieldTypeDefaultWhat it does
profilesarrayRequired. Seed handles to start from.
searchDepthenum11 stays on accounts suggested for your seeds. 2 also asks about each of those, one level further out.
maxProfilesinteger200Hard ceiling on accounts analyzed this run. 0 removes it.
maxPerLevelinteger10How many accounts each one carries into the next level. Only matters at depth 2.
requireContactenumanyany, email, phone, email_or_phone, website.
accountTypeenumanyany, business, personal.
businessCategorystringExact match against Instagram's own category, e.g. Photographer.
keywordsarrayKeep accounts whose bio, name, or category contains any of these terms.
keywordSearchInenumbio_or_namebio_or_name, bio, name, category.
hasWebsitebooleanfalseKeep only accounts with a bio link.
verifiedOnlybooleanfalseKeep only verified accounts. Free — read from the discovery record.
skipPrivatebooleanfalseDrop private accounts. Free — read from the discovery record.
{
"profiles": ["cristiano"],
"searchDepth": "1",
"maxProfiles": 200,
"requireContact": "email"
}

That returns up to 200 accounts Instagram suggests alongside cristiano, keeping only the ones that publish an email address. At $0.008 per analyzed account, a full 200-profile run costs $1.60.

Output

One row per account, 23 columns. The ones people actually use:

ColumnWhat it holds
username, full_nameWho it is
business_emailPublic contact email, when the account publishes one
business_phone_numberPublic contact phone, when published
external_urlThe link in the bio
business_category_nameInstagram's own category — Photographer, Restaurant, Public Figure…
follower_count, following_count, media_countSize and activity
biographyBio text, as written
is_business_account, is_verified, is_privateAccount type and status
discovered_from, depth, chain_pathWhich account led here, and how far out
matched_byWhich filter kept this row
{
"username": "nike",
"full_name": "Nike",
"business_email": "press@nike.com",
"external_url": "https://nike.com",
"business_category_name": "Sporting Goods",
"follower_count": 302000000,
"is_business_account": true,
"is_verified": true,
"discovered_from": "cristiano",
"depth": 1,
"matched_by": "contact:email"
}

discovered_from is what keeps a wide run readable: every row says which account led to it, so you can always trace a lead back to the handle you started from.

Pricing, and what filters do to your bill

$0.008 per profile analyzed. One event. No Actor start fee, no per-row add-on, no separate charge for the email.

A profile is "analyzed" when it has been discovered, fetched in full, and checked against your filters. It is charged whether or not a filter then keeps it — by the time the filter can run, the profile has already been fetched, and that fetch is the cost.

That matters most when you set a narrow filter:

RunAnalyzedKeptCost
200 profiles, no filters200200$1.60
200 profiles, requireContact: email200~60$1.60
200 profiles, follower band 10k–100k200~40$1.60

So set maxProfiles to your budget: budget ÷ 0.008. $8 is 1000 profiles. It is a hard ceiling — the run stops there.

Two filters are free. verifiedOnly and skipPrivate read fields that are already on the discovery record, so accounts they reject are never fetched and never billed. Use them first when they fit.

Going wider

searchDepth: "1" asks about the handles you entered and returns the accounts Instagram suggests for them. That's the shortlist.

searchDepth: "2" also asks about each account it found, one level further out. This is how a single handle becomes a whole niche — and it multiplies the bill, because every account it reaches is an analyzed profile. maxPerLevel controls how many accounts each one carries into the next level (10 by default), and maxProfiles is still the hard ceiling.

Accounts already seen in the run are never analyzed twice, so the same profile is never billed twice.

Filter recipes

Brands with a funnel, in your niche

{ "profiles": ["allbirds"], "searchDepth": "2", "accountType": "business",
"hasWebsite": true, "requireContact": "email", "maxProfiles": 500 }

Mid-tier creators, not mega-accounts

{ "profiles": ["leomessi"], "accountType": "personal",
"minFollowers": 10000, "maxFollowers": 250000, "maxProfiles": 300 }

One specific trade

{ "profiles": ["thephotographyinstitute"], "businessCategory": "Photographer",
"requireContact": "email_or_phone", "maxProfiles": 300 }

Anyone mentioning a topic in their bio

{ "profiles": ["shopify"], "keywords": ["skincare", "beauty"],
"keywordSearchIn": "bio", "maxProfiles": 400 }

When a run comes back empty

Almost always a filter that's too narrow. In order of likelihood:

  1. A tight minFollowers/maxFollowers band. Widen it — run once with no band, look at the counts you actually get back, then set one.
  2. businessCategory is an exact match. "Photographer" works; "Photo" matches nothing.
  3. requireContact: "email" on a niche where most accounts are personal. Try email_or_phone, or drop to any and filter the spreadsheet afterwards.
  4. verifiedOnly — this excludes the vast majority of accounts by design.

The run log tells you how many accounts were analyzed and how many survived, so you can see which end the problem is at.

Questions

How many accounts come back per handle? Whatever Instagram suggests for it — usually a few dozen at depth 1, not an exhaustive index. Depth 2 is where the volume comes from.

Does the seed account have to be public? Yes. Private accounts have no suggestion list to read. Private accounts can still appear in results; skipPrivate drops them for free.

Are the emails scraped from anywhere shady? No. They're the public contact details a business account chooses to publish on its own profile — the same ones the Contact button shows any visitor.

Why is business_email empty on some rows? Either the account publishes no email, or the row has is_partial: true. Instagram's full-profile source rejects a minority of accounts, and the fallback that answers instead carries no bio link, media count or category. On those rows those columns are unknown, not empty — partial_reason says which case it was.

What happens if a long run gets interrupted? It picks up where it stopped. The Actor checkpoints every account it has analyzed, so when the platform migrates a run to another server it skips those accounts entirely — they are not fetched again, not charged again, and not written to the dataset twice. This matters most on a large depth-2 run, which is exactly the kind that gets migrated.

Is a login or cookie needed? No. Everything here is public data, fetched without an Instagram session.

Other Instagram Actors

ActorUse when
Instagram User SearchYou're looking for accounts by keyword instead of a seed handle
Instagram Followers & FollowingYou want an account's actual audience, not accounts similar to it
Instagram Profile ContentYou want a discovered account's posts and reels

Support

Questions, bugs, or feature requests: contact@toolzerhub.com

Browse the rest: apify.com/toolzerhub