Instagram Related Profiles Scraper
Pricing
from $5.00 / 1,000 related profile founds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
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
externalUrlinto 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
- Normalize seed usernames and profile URLs.
- Fetch each public seed via ScrapeCreators
/v1/instagram/profile(primary) and unwrapedge_related_profiles. - If that seed is empty or blocked, retry SociaVault
/v1/scrape/instagram/profile. - Apply
maxRelatedPerSeed,maxTotalResults, optional private/follower filters, and cross-seed dedupe. - Charge
related-profile-foundonly 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
| Field | Type | Default | Description |
|---|---|---|---|
usernames | array (required) | ["gymshark"] | Public handles, @handles, or profile URLs |
maxRelatedPerSeed | integer | 20 | Cap per seed (quality prefill is 3) |
maxTotalResults | integer | 500 | Hard cap across the run |
deduplicateAcrossSeeds | boolean | true | Keep each related username once |
skipPrivateProfiles | boolean | false | Drop private related accounts |
minFollowers | integer | 0 | Keep rows at or above this follower count when the stub includes it |
providerOrder | enum | scrapecreators-first | Public-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"}
| Field | What it answers |
|---|---|
username + profileUrl | Which related public profile Instagram surfaced |
fullName + isVerified + isPrivate | Display identity and visibility |
followersCount / businessCategory / externalUrl | Lead-gen fields when the related stub includes them |
seedUsername | Which seed produced this lookalike |
provider | scrapecreators 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.
| Event | Price | Charged when |
|---|---|---|
| Actor start | $0.00005 | Once per run (scaled by memory) |
related-profile-found | $0.005 | Each saved related-profile row |
| Run | Related rows | Event cost (approx.) |
|---|---|---|
| 1 seed × 3 related | 3 | ~$0.015 |
| 10 seeds × 20 related | 200 | ~$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-scraperInput:{"usernames":["gymshark"],"maxRelatedPerSeed":3}Read dataset rows forusername,profileUrl,seedUsername, andexternalUrl. Then optionally enrich with Instagram Profile Scraper. Cost is $0.005 per related row plus platform usage. Empty related lists areVALID_EMPTY, not billed.
Best results
- Seed with niche or brand accounts. Mega-publishers sometimes expose few related profiles.
- Keep
maxRelatedPerSeedat 3–20; Instagram rarely returns more than it already shows on the profile. - Turn on
skipPrivateProfileswhen you need contactable public accounts. - When
externalUrlis 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.