Instagram Related Profiles Scraper — Instagram Competitors
Pricing
from $0.50 / 1,000 similar profiles
Instagram Related Profiles Scraper — Instagram Competitors
Instagram competitors and lookalikes: the accounts Instagram itself suggests as similar to any handle — username, full name, profile link, verified and private flags, and Instagram's own ranking. No login, no start fee. From $0.50 per 1,000 profiles. An undelivered profile is never charged.
Pricing
from $0.50 / 1,000 similar profiles
Rating
0.0
(0)
Developer
Steadyfetch Team
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Give it an Instagram account and get back the accounts Instagram itself suggests as similar to it: username, full name, profile link, whether they are verified or private, Instagram's own one-line reason for the suggestion, and its place in Instagram's ranking. No login, no cookies, no proxy to configure. Your result limit is exact — set 80 and you get 80, a profile we could not deliver is never charged, and nothing at all is charged for starting a run.
Using an AI agent? Pin this actor in Apify's MCP server with one link: https://mcp.apify.com?tools=steadyfetch/instagram-similar-profiles-scraper
- Actor id:
steadyfetch/instagram-similar-profiles-scraper - Input:
{ "usernames": ["nasa"], "resultsLimit": 80 }— the one field you have to set. A profile link works too. - Cap the bill: set
maxTotalChargeUsdon the run (a run option, not Actor input), e.g.0.50— the run stops when it reaches it. - Price: from $0.50 per 1,000 profiles on Gold and above, $2.00 per 1,000 on the Apify free plan. No start fee, no per-account fee, and a profile we could not deliver is never charged. Full table below.
- How often it changes: the suggestion list drifts as the account’s audience changes rather than hour to hour, so weekly or monthly is the useful re-run and
rankmakes each move visible when you diff it. Daily would mostly hand you the same list back, and you would be charged for it.
What you get
One row per suggested account, with everything the suggestion exposes at one price — there is no second charge for "details":
| Column | What it holds |
|---|---|
username · fullName · profileUrl | the suggested account, and a link straight to it |
similarTo · similarToUserId | which of your accounts this suggestion came from |
rank | its place in Instagram's own ordering of the suggestions, starting at 1 |
isVerified · isPrivate | the blue check, and whether the account is locked |
socialContext | Instagram's own one-line reason for the suggestion, passed through as served |
userId · profilePicUrl | the numeric account id, and the profile picture |
source | always instagram |
charged · status · statusReason | whether this row was billed, and why, so your invoice reconciles from the dataset itself |
Profile pictures are signed and time-limited by Instagram, so download what you need in the same session. The requesting network address is stripped out of every link before it reaches your dataset.
What a row looks like
One delivered row from a real run — the handle nasa, 2026-09-12. Each suggested account is one similar-profile charge, and rank is Instagram's own order, not ours. Profile pictures are signed and time-limited by Instagram, so they are shown here as placeholders.
{"userId": "5951848929","username": "nasahubble","fullName": "Hubble Space Telescope","profileUrl": "https://www.instagram.com/nasahubble/","profilePicUrl": "https://…","isPrivate": false,"isVerified": true,"socialContext": "Hubble Space Telescope","similarTo": "nasa","similarToUserId": "528817151","rank": 2,"source": "instagram","input": "nasa","sourceIndex": 0,"scrapedAt": "2026-09-12T07:18:55.837Z","charged": true,"status": "delivered","retryable": false,"statusReason": null,"#k": "5951848929","#ce": {"similar-profile":1},"#ask": {"delivered":1}}
Price
One charged event, similar-profile, and it lands only on a profile that was actually delivered. There is no start fee, no per-account fee and no search fee.
| Apify plan | Per profile | Per 1,000 profiles |
|---|---|---|
| Free plan | $0.002 | $2.00 |
| Bronze | $0.00117 | $1.17 |
| Silver | $0.00075 | $0.75 |
| Gold and above | $0.0005 | $0.50 per 1,000 |
Platform usage is included in that price — there is no separate compute bill on top. Set maxTotalChargeUsd on the run and it is a hard ceiling: the run stops cleanly under it and the last row says what is left.
Honest rows: what "not charged" actually means
Every run closes its own books. A profile that was not delivered leaves an uncharged row saying which of eight things happened, and none of them is billed:
account_not_found— Instagram has no account under that name. Proved by Instagram's own account lookup answering that it does not exist, not guessed from an empty answer.private_account— the account is private, so Instagram will not say which accounts it treats as similar.no_suggestions— Instagram answered and listed no more similar accounts than were delivered. A definitive answer, not a failure.stopped_at_limit— one of your own limits, or the run clock, stopped it first. The row names which.vendor_unavailable— the read did not go through. Temporary, says nothing about the account, and a re-run is the fix.source_refused— Instagram refused to answer for that account at all, and it refuses the same way every time, so a re-run cannot change it. Check the spelling in a browser; if the account works there, say so on the Issues tab.unsupported_shape— Instagram answered in a shape this actor does not read yet. That is on us, not on your account, and a re-run gets the same answer — tell us on the Issues tab which account it was and support for it will be added.vendor_budget— this actor reached its own monthly collection allowance and stopped rather than collecting more.
The last row of every run is a receipt: delivered, asked for, what stopped it, and the charged-event totals. A time limit ends the collecting, never the delivering — profiles already in hand are always written out.
How often this data changes
Instagram's suggestion list is a ranked recommendation set, not a feed: it is rebuilt from who follows the account and who those people follow, so it drifts as the account's audience changes rather than changing hour to hour. We do not have a measured cadence for it and will not invent one — what we can say is what we measured on 11 September 2026: a very large account returned about 80 suggestions in one read, a five-follower account about 20, and neither list is paginated, so one run gets everything Instagram holds for that account at that moment.
The practical advice that follows from that: for a watchlist, re-run weekly or monthly and diff the username column against your previous dataset — the rows carry rank, so a move up or down Instagram's own ordering is visible without any extra work. Re-running daily will mostly hand you the same list back, and you would be charged for it, so we say so here rather than letting you find out on the invoice. This actor deliberately keeps no memory of what it gave you before: a remembered suggestion list would be a stale one, and the second run is exactly the run where staleness would hurt.
Reliability
The suggestions come from a licensed data feed rather than from scraping Instagram's own web pages, which is why there is nothing to log into and nothing to configure. When that feed cannot answer, the run says so on an uncharged row and finishes successfully — a failed read is never billed and never dressed up as an account with nothing similar.
Related actors
- One account's own posts: Instagram Profile Posts Scraper — https://apify.com/steadyfetch/instagram-profile-posts
- The posts published under a hashtag: Instagram Hashtag Scraper — https://apify.com/steadyfetch/instagram-hashtag-scraper
- The spoken words inside a reel: Instagram Reel Transcript Scraper — https://apify.com/steadyfetch/instagram-reel-transcript-scraper
Limits and good manners
Max profiles and Max run seconds take any number you type: this actor delivers at most 5,000 profiles in one run and runs for at most an hour (and for at least 30 seconds), so a bigger ask runs at the ceiling instead of being refused, and one uncharged row says what was asked for and what was used.
Only Instagram's own public suggestion surface is read, and only for accounts that exist. Some accounts have no suggestion list at all — Instagram simply declines to chain from them — and the run says so on an uncharged row instead of padding. This actor may stop working if Instagram changes how the data is served; if it does, undelivered items are never charged.
Support
Something off, or a column you need that is not here? Open an issue on the Issues tab — we usually reply within a couple of hours.
If it earned its keep, a rating helps other buyers find it, and saving the actor keeps it one click away.