Instagram Related Profiles Scraper avatar

Instagram Related Profiles Scraper

Pricing

from $5.00 / 1,000 related profile founds

Go to Apify Store
Instagram Related Profiles Scraper

Instagram Related Profiles Scraper

Discover lookalike and related Instagram profiles from seed accounts — ideal for B2B lead-gen, influencer discovery, and competitor mapping. Provider-backed, cookieless, no login.

Pricing

from $5.00 / 1,000 related profile founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Find lookalike and related Instagram profiles from public seed accounts. Agencies, brand teams, and lead-gen workflows get one dataset row per related handle with username, follower count when exposed, verification, business category, website, and the seed that surfaced it. The Actor is cookieless, needs no Instagram login, and is built for Console, API, and AI agents on Apify.

Designed for competitor mapping, influencer prospecting, and B2B lookalike lists that start from one or more public Instagram handles.

Best fit

  • You have public Instagram handles or profile URLs and want the accounts Instagram publicly clusters as related / suggested.
  • You want structured lookalike rows (username, followersCount, businessCategory, externalUrl, seedUsername) instead of a screenshot of the Suggestions rail.
  • After a handle shortlist, start here, then enrich bios and contacts with Instagram Profile Scraper when you need full profile details, or pass externalUrl into Bulk Website Contact Extractor for emails. This Actor stays focused on related-profile discovery.

Workflow: from a competitor seed to a lookalike list

A fitness brand starts with one public competitor, gymshark. It runs this Actor with usernames: ["gymshark"] and maxRelatedPerSeed: 20. Next it exports the overview view, keeps rows with a website and a public account, and feeds those handles to profile or contact enrichment. The same flow works for a batch of niche seeds when deduplicateAcrossSeeds is on, so overlapping lookalikes appear once.

How it works

  1. Normalize seed usernames and profile URLs.
  2. Fetch each public seed via ScrapeCreators /v1/instagram/profile (primary) and unwrap edge_related_profiles.
  3. If that seed is empty or blocked, retry SociaVault /v1/scrape/instagram/profile.
  4. Apply maxRelatedPerSeed, maxTotalResults, optional private/follower filters, and cross-seed dedupe.
  5. Charge related-profile-found only after a real related row is saved.

Unknown or empty seeds finish as VALID_EMPTY. Missing provider keys finish as CONFIG_ERROR. Required upstream outages with no rows finish as UPSTREAM_FAILED.

Input

FieldTypeDefaultDescription
usernamesarray (required)["gymshark"]Public handles, @handles, or profile URLs
maxRelatedPerSeedinteger20Cap per seed (quality prefill is 3)
maxTotalResultsinteger500Hard cap across the run
deduplicateAcrossSeedsbooleantrueKeep each related username once
skipPrivateProfilesbooleanfalseDrop private related accounts
minFollowersinteger0Keep rows at or above this follower count when the stub includes it
providerOrderenumscrapecreators-firstPublic-data provider priority

Quick start input

{
"usernames": ["gymshark"],
"maxRelatedPerSeed": 3,
"maxTotalResults": 10,
"deduplicateAcrossSeeds": true,
"skipPrivateProfiles": false,
"minFollowers": 0,
"providerOrder": "scrapecreators-first"
}

That input is the quality-test sample: one public brand seed, a few related rows, and a short run.

Output

One dataset item is one related Instagram profile. Download JSON, CSV, Excel, or HTML from the dataset tab. Every run also writes OUTPUT and RUN_SUMMARY with the outcome, row counts, and charged events.

{
"username": "gymsharkwomen",
"fullName": "Gymshark Women",
"biography": null,
"profileUrl": "https://www.instagram.com/gymsharkwomen/",
"followersCount": null,
"isVerified": true,
"isPrivate": false,
"businessCategory": null,
"externalUrl": null,
"seedUsername": "gymshark",
"seedProfileUrl": "https://www.instagram.com/gymshark/",
"provider": "scrapecreators",
"scrapedAt": "2026-08-18T13:00:00.000Z"
}
FieldWhat it answers
username + profileUrlWhich related public profile Instagram surfaced
fullName + isVerified + isPrivateDisplay identity and visibility
followersCount / businessCategory / externalUrlLead-gen fields when the related stub includes them
seedUsernameWhich seed produced this lookalike
providerscrapecreators or sociavault
outcome (in OUTPUT)COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, or CONFIG_ERROR

Pricing

This Actor uses Pay per event plus Apify platform usage. Open the live Pricing tab for current event details, and use Apify's run cost controls to keep the workflow aligned with your budget.

EventPriceCharged when
Actor start$0.00005Once per run (scaled by memory)
related-profile-found$0.005Each saved related-profile row
RunRelated rowsEvent cost (approx.)
1 seed × 3 related3~$0.015
10 seeds × 20 related200~$1.00

VALID_EMPTY and INVALID_INPUT runs are not billed for related rows. Platform usage is billed on top at Apify's rates — the live Pricing tab is the current source of truth.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~find-instagram-related-profiles-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames":["gymshark"],"maxRelatedPerSeed":3}'

Then read the dataset and the OUTPUT record for outcome, row counts, and charged events.

AI agent usage

Find Instagram lookalike accounts from a public seed handle. Tool: khadinakbar/find-instagram-related-profiles-scraper Input: {"usernames":["gymshark"],"maxRelatedPerSeed":3} Read dataset rows for username, profileUrl, seedUsername, and externalUrl. Then optionally enrich with Instagram Profile Scraper. Cost is $0.005 per related row plus platform usage. Empty related lists are VALID_EMPTY, not billed.

Best results

  • Seed with niche or brand accounts. Mega-publishers sometimes expose few related profiles.
  • Keep maxRelatedPerSeed at 3–20; Instagram rarely returns more than it already shows on the profile.
  • Turn on skipPrivateProfiles when you need contactable public accounts.
  • When externalUrl is present, pass it to contact extraction instead of guessing emails from the handle.

Builder's note

I built this after live probes of native web_profile_info and two public-data vendors. Native Instagram often 429s without a residential crawler, while ScrapeCreators /v1/instagram/profile returned edge_related_profiles.edges (49 related handles for gymshark in the probe). SociaVault exposes the same nested user object. The first deploy stored the provider envelope instead of the user node, so related arrays looked empty even when the vendor had them — unwrapping data.user (and SociaVault data.data.user) is the contract that actually yields lookalike rows. I billed per saved related profile because empty seeds are a valid Instagram outcome, not a product failure.

Responsible use

Use this Actor on public Instagram profiles you are authorized to research for legitimate competitor mapping, influencer discovery, or lead generation. It reads public related-profile suggestions only. Follow Instagram's terms of service, GDPR, CCPA, and applicable laws. Users are responsible for how they use the exported list.

Changelog

  • 0.1.11–0.1.12 — Recursive related-profile unwrap, flat OUTPUT/RUN_SUMMARY contract, gymshark quality prefill, 512 MB defaults.
  • 0.1 — Initial private related-profiles actor.