Instagram Following Scraper & Suggested Similar Accounts avatar

Instagram Following Scraper & Suggested Similar Accounts

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Following Scraper & Suggested Similar Accounts

Instagram Following Scraper & Suggested Similar Accounts

📸 Instagram Following Scraper & Suggested Similar Accounts extracts public following lists—usernames, names, bios, profile URLs & IDs—with filters, pagination & CSV/JSON export. 🔎 Ideal for influencer research, competitor analysis, lead gen & growth campaigns. ⚖️ Public data only.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeBase

ScrapeBase

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

1

Monthly active users

5 days ago

Last modified

Share

An Apify Actor that scrapes the Instagram following list of one or more public profiles — and, for each followed account, also pulls the suggested / similar accounts Instagram itself offers for it. Built for influencer-marketing and partnerships research: instead of only cataloguing who a profile already follows, you also get the accounts Instagram's own recommender puts next to each one, so you can find the next creators to approach instead of only the ones already taken.

What it scrapes

  1. Following list — every account a given Instagram profile follows (
    GET /api/v1/friendships/{user_id}/following/
    ), paginated, pushed to the dataset live as it's collected.
  2. Suggested / similar accounts (optional, on by default) — for each followed account, Instagram's own "Suggested for you / Similar accounts" list (GET /api/v1/discover/chaining/?target_id={pk}), attached to that row as suggested_accounts.

Input

FieldTypeDefaultNotes
urlsarray (required)prefill ["https://www.instagram.com/mrbeast/"]Full profile URLs, @handle, or bare handle. Any number of profiles for a bulk run.
maxItemsinteger10Max accounts to collect per profile from the following list. 0 = no cap.
sessionIdstringYour Instagram sessionid cookie. The following list (and the suggested-accounts call) return HTTP 401 without it — effectively required even though the field is marked optional.
proxyConfigurationobject{"useApifyProxy": false}Optional Apify Proxy settings. The actor falls back direct → datacenter → residential automatically when Instagram pushes back.
includeSuggestedAccountsbooleantrueFor every followed account collected, also fetch Instagram's suggested/similar accounts for it. Costs one extra request per followed row.
maxSuggestedPerAccountinteger10How many suggested accounts to keep per followed account. 0 = keep everything Instagram returns (Instagram typically hands back roughly 30–80 per account in one response, with no further pages).
hideAlreadyFollowedSuggestionsbooleantrueDrop any suggested account that the profile already follows (compared against the following list collected in the same run only — nothing is stored between runs).

Example input:

{
"urls": ["https://www.instagram.com/nasa/"],
"maxItems": 10,
"sessionId": "YOUR_SESSIONID_COOKIE_VALUE",
"proxyConfiguration": { "useApifyProxy": false },
"includeSuggestedAccounts": true,
"maxSuggestedPerAccount": 10,
"hideAlreadyFollowedSuggestions": true
}

Output

Each dataset item is one followed account, with the base 17 fields plus suggested_accounts:

{
"pk": "19511341806",
"pk_id": "19511341806",
"id": "19511341806",
"full_name": "Jonny Kim",
"is_private": false,
"fbid_v2": "17841419614188917",
"third_party_downloads_enabled": 1,
"strong_id__": "19511341806",
"profile_pic_id": "3600032490686429836_19511341806",
"profile_pic_url": "https://instagram.f<cdn-node>.fna.fbcdn.net/v/t51.2885-19/...",
"is_verified": true,
"username": "jonnykimusa",
"has_anonymous_profile_picture": false,
"account_badges": [],
"latest_reel_media": 0,
"is_favorite": false,
"followed_by": "nasa",
"suggested_accounts": [
{
"pk": "1506607755",
"pk_id": "1506607755",
"id": "1506607755",
"strong_id__": "1506607755",
"username": "leonardodicaprio",
"full_name": "Leonardo DiCaprio",
"is_private": false,
"is_verified": true,
"profile_pic_id": "..._1506607755",
"profile_pic_url": "https://instagram.f<cdn-node>.fna.fbcdn.net/v/t51.2885-19/...",
"social_context": "Leonardo DiCaprio",
"chaining_info": { "sources": "", "algorithm": null }
}
]
}

suggested_accounts is only present on the row when includeSuggestedAccounts is true. It is an empty array [] when Instagram doesn't offer suggestions for that particular account, or when every suggestion was filtered out by hideAlreadyFollowedSuggestions — never a fabricated value.

How it works

  1. Resolves each seed profile's numeric user id from its logged-out profile HTML.
  2. Pages the following/ API (12 accounts per request) and pushes each row to the dataset immediately.
  3. If includeSuggestedAccounts is on, calls discover/chaining/?target_id={pk} for the account just collected, drops any suggestion that's the seed profile itself or (optionally) already followed by the seed, keeps up to maxSuggestedPerAccount, and attaches the result to that same row before pushing.
  4. Falls back automatically from a direct connection to an Apify datacenter proxy, then to a sticky residential proxy, if Instagram starts rejecting requests.

Notes / honest limits

  • The actor scrapes only publicly available data reachable through Instagram's own web API with a logged-in session cookie you provide.
  • Suggested accounts are offered by Instagram for most, not necessarily every, followed account — accounts Instagram doesn't consider eligible come back with an empty suggested_accounts list, logged as such, and never fail the run.
  • Neither the following list nor the suggested-accounts list has a documented stable order between identical calls — treat both as "N of the list", not "the top/most-recent N".
  • chaining_info and social_context are passed through exactly as Instagram returns them; on the accounts measured during development, chaining_info came back empty and social_context often matched the account's own display name, so neither should be relied on as a distinct label.
  • The end user is responsible for compliance with applicable laws and platform rules.