Instagram Related Profiles Scraper — Similar Accounts & Leads avatar

Instagram Related Profiles Scraper — Similar Accounts & Leads

Pricing

from $4.53 / 1,000 profile analyzeds

Go to Apify Store
Instagram Related Profiles Scraper — Similar Accounts & Leads

Instagram Related Profiles Scraper — Similar Accounts & Leads

Turn one Instagram handle into a qualified list of the accounts around it. Reads Instagram's own Suggested for You graph, fetches each discovered account's full profile, and returns email, phone, website, category and followers. Filter by contact details, category or follower band. 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

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Instagram Related Profiles Scraper — Similar Accounts, Already Qualified

Give it one Instagram handle. 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.

Quick start

{
"profiles": ["nasa"],
"searchDepth": "1",
"maxProfiles": 200,
"requireContact": "email"
}

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

What you get

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": "esa",
"full_name": "European Space Agency",
"business_email": "contact@esa.int",
"external_url": "https://esa.int",
"business_category_name": "Science Museum",
"follower_count": 5000000,
"is_business_account": true,
"is_verified": true,
"discovered_from": "nasa",
"depth": 1,
"matched_by": "keyword:space"
}

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": ["natgeo"], "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.

FAQ

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.

Support

Questions, bugs, or a filter you wish existed: contact@toolzerhub.com. More Instagram Actors: https://apify.com/toolzerhub