Instagram Following Scraper avatar

Instagram Following Scraper

Pricing

from $1.50 / 1,000 profile scrapeds

Go to Apify Store
Instagram Following Scraper

Instagram Following Scraper

Export the full following and followers list of any Instagram profile as structured JSON — username, full name, verified/private flags, and profile URL. MCP-ready.

Pricing

from $1.50 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

1

Monthly active users

6 days ago

Last modified

Share

Instagram Following Scraper exports the following and followers list of any Instagram profile as structured JSON. It accepts Instagram usernames or profile URLs and returns one record per connected account. Each record includes the source profile, list type, username, full name, verified and private flags, profile URL, and scrape timestamp. With enrichProfiles enabled, each record can also include biography, email, phone, website, counts, category, and business flag. The Actor is available on Apify and usable through Apify MCP.

Best fit and connected workflows

Use this Actor when your starting point is an Instagram profile and you want a clean list of connected accounts for analysis, routing, or downstream enrichment.

Common workflow fits include:

  • Audience mapping from a brand, creator, or competitor profile.
  • Lead collection from a following list with optional profile enrichment.
  • Private vs. verified account review in a follower base.
  • Social graph expansion before sending profile records to a downstream Instagram tool.

When you want reactions, comments, or review data for a profile discovered here, pass that profile into Instagram Comments Scraper. That workflow starts from a returned Instagram account and continues into engagement data for the same profile.

Practical scenario

A growth analyst starts with nasa and wants the accounts NASA follows. They enter the username, keep listType on following, and set a result cap that matches the size of the review. The Actor returns records with username, fullName, isVerified, isPrivate, profileUrl, and scrapedAt. The analyst sees that one returned account is verified and has a clear profile URL, then opens that profile in a separate workflow or sends it to a comments review step.

Input

FieldTypeDescription
usernamesarray of stringsInstagram usernames or profile URLs to scrape, such as nasa or https://www.instagram.com/natgeo/. Accepts bare handles, @handles, and full profile URLs. Targets user profiles only.
listTypestringWhich list to export: following, followers, or both. Defaults to following.
maxResultsintegerMaximum profiles returned per target per list. Used as a hard cost cap.
enrichProfilesbooleanAdds profile bio, email, phone, website, counts, category, and business flag to each returned record.
proxyConfigurationobjectProxy settings for Instagram requests. The default uses Apify Residential proxy.

Example input

{
"usernames": [
"nasa",
"https://www.instagram.com/natgeo/"
],
"listType": "following",
"maxResults": 100,
"enrichProfiles": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Output

Each dataset item represents one account from the selected following or followers list.

FieldTypeDescription
sourceUsernamestringThe Instagram profile whose list this record came from.
listTypestringfollowing or followers.
usernamestringHandle of the connected account.
fullNamestringDisplay name, if set.
userIdstringInstagram numeric user ID.
isPrivatebooleanWhether the account is private.
isVerifiedbooleanWhether the account has a verified badge.
profilePicUrlstringProfile picture URL.
profileUrlstringCanonical Instagram profile URL.
scrapedAtstringISO 8601 timestamp of when the record was scraped.
biographystringProfile bio text, with enrichment enabled.
emailstringBusiness email or an email parsed from bio, with enrichment enabled.
phonestringPublic business phone, with enrichment enabled.
externalUrlstringLinked website, with enrichment enabled.
followerCountintegerFollower count, with enrichment enabled.
followingCountintegerFollowing count, with enrichment enabled.
mediaCountintegerPost count, with enrichment enabled.
categorystringAccount category, with enrichment enabled.
isBusinessbooleanBusiness or professional account flag, with enrichment enabled.

Example output record

{
"sourceUsername": "nasa",
"listType": "following",
"username": "spacex",
"fullName": "SpaceX",
"userId": "12345678",
"isPrivate": false,
"isVerified": true,
"profilePicUrl": "https://instagram.fxxx.cdn.com/v/pic.jpg",
"profileUrl": "https://www.instagram.com/spacex/",
"scrapedAt": "2026-06-02T07:24:00.000Z"
}

How it works

This Actor uses Instagram's private list endpoints with a managed rotating session pool and a residential proxy. It paginates the selected list until it reaches the requested maxResults cap for each target profile. Each returned profile is written as one dataset record. The implementation also includes per-session scoring and retirement, polite request pacing, and a stop-on-exhaustion session policy.

Pricing

This Actor uses Pay per event pricing. The primary event is Profile scraped, and Apify platform usage is charged separately. Open the live Pricing tab in Apify Console for the current pricing details.

A simple example: if a run returns one hundred profiles, billing is based on one hundred Profile scraped events, plus the relevant Apify platform usage for the run. If enrichProfiles is enabled, each enriched profile adds one more request and one more charge for that profile.

Use with AI agents (MCP)

This Actor is exposed through Apify MCP and can be called by AI agents that need structured Instagram connection lists. The tool identity is khadinakbar/instagram-following-scraper.

Use it when an agent needs a source Instagram username or profile URL and should receive normalized records for following or followers connections. The output provenance is the dataset items produced by the run, so each record keeps the source profile and scrape timestamp.

Fetch the following list for nasa, return verified and private flags, and include profileUrl and scrapedAt. If enrichment is enabled, also surface email, biography, and externalUrl.

Output interpretation is straightforward: each item is one connected profile. listType tells you which relationship was exported, and sourceUsername preserves the original source profile. Pagination is handled by the Actor, and maxResults acts as a hard cap on the number of returned profiles per source and per list. Cost follows the same cap because billing is based on returned profile events. If you work with a larger profile set, the dataset is still the main place to read the full result list back.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/instagram-following-scraper').call({
usernames: ['nasa'],
listType: 'following',
maxResults: 10,
enrichProfiles: false,
});
const dataset = client.dataset(run.defaultDatasetId);
const { items } = await dataset.listItems();
console.log('Dataset items:', items);

Best results and outcome guidance

Start with a small maxResults value when you are validating a profile, list type, or enrichment setting. Use following for accounts a profile follows, followers for accounts that follow the profile, and both when you want both directions in one run. If you need lead-style records, turn on enrichProfiles so each returned profile can include bio, email, website, counts, category, and business flag. Keep the proxy configuration on the default residential setting unless your Apify environment already provides a residential provider.

Design note

I found that the dataset contract always requires sourceUsername, listType, username, profileUrl, and scrapedAt, which makes every record traceable back to the original Instagram profile and scrape time.

  • Instagram Comments Scraper - use after this Actor when you want comments, reactions, or review data for one of the returned Instagram profiles.

FAQ

What input can I use for usernames?

You can provide bare handles, @handles, or full Instagram profile URLs. The input schema is scoped to user profiles, which keeps the workflow centered on account connection lists.

When should I use following, followers, or both?

Use following to export accounts the profile follows, followers to export accounts that follow the profile, and both when you want both relationships tagged in the output.

What does enrichProfiles add?

It adds biography, email, phone, website, follower count, following count, post count, category, and business flag to each returned profile record.

How does the result cap work?

maxResults sets the maximum number of returned profiles per target profile per list. For both, the cap applies to following and followers separately.

Can I use this Actor through Apify MCP?

Yes. The Actor is MCP-ready and usable through Apify MCP as khadinakbar/instagram-following-scraper.

Which Actor is a natural next step after this one?

If you want comments for a returned Instagram profile, use Instagram Comments Scraper. It fits when you have a profile from this Actor and want engagement context for that same account.

Responsible use

Use the output in ways that respect Instagram's terms, applicable privacy and data-protection laws, and the context in which the profiles were collected. Review your own compliance requirements before storing, sharing, or enriching personal data.