Instagram Followers & Following Scraper avatar

Instagram Followers & Following Scraper

Pricing

from $0.60 / 1,000 relationship identity exporteds

Go to Apify Store
Instagram Followers & Following Scraper

Instagram Followers & Following Scraper

Export follower and following identities from public Instagram profiles with IDs, usernames, names, profile URLs, privacy flags, pagination, and resumable limits.

Pricing

from $0.60 / 1,000 relationship identity exporteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

This Instagram followers scraper exports follower and following identities from public Instagram profiles to a structured dataset. Use it as an Instagram following scraper: enter one or more public usernames, choose a direction, and receive account IDs, usernames, display names, profile links, pictures, and public status flags. You can also export Instagram followers for downstream analysis.

No customer Instagram login, password, cookie, or browser session is accepted as input.

Why use this Instagram scraper?

Use the Actor when you need relationship-level data rather than follower counts alone.

  • Export followers of public Instagram profiles.
  • Export accounts followed by public Instagram profiles.
  • Process multiple source profiles in one run.
  • Set a separate result limit for every source profile.
  • Resume unfinished exports without duplicating earlier rows.
  • Download results as JSON, CSV, Excel, XML, or RSS.
  • Connect the dataset to Apify API, webhooks, Google Sheets, n8n, Zapier, or your own application.

Example input

{
"usernames": ["nasa", "natgeo"],
"dataToScrape": "followers",
"resultsLimit": 100
}

The Actor exports up to 100 followers for each supplied profile. Change dataToScrape to following to export accounts each source follows.

Example output

{
"sourceUsername": "nasa",
"type": "FOLLOWER",
"userId": "123456789",
"username": "example_user",
"fullName": "Example User",
"profilePicUrl": "https://instagram.example/image.jpg",
"profileUrl": "https://www.instagram.com/example_user/",
"isPrivate": false,
"isVerified": false
}

Each row is one relationship identity. type is relative to sourceUsername.

Input settings

FieldTypeDescription
usernamesstring arrayPublic Instagram usernames or profile URLs.
Accountstring arrayCompatibility alias for usernames. Do not provide both fields.
dataToScrapestringfollowers or following. Legacy capitalization is accepted.
resultsLimitintegerMaximum additional identities exported per source in this run.
continuationTokenstringOptional token from an earlier run's OUTPUT for resuming unfinished work.

The continuation token must be used by the same Apify account with the same normalized profiles, order, and direction. Tokens expire after seven days or when their backing storage is removed.

Input recipes

Export followers from one profile

{
"usernames": ["nasa"],
"dataToScrape": "followers",
"resultsLimit": 50
}

Export followed accounts

{
"usernames": ["natgeo"],
"dataToScrape": "following",
"resultsLimit": 200
}

Process multiple profiles

{
"usernames": ["nasa", "natgeo"],
"dataToScrape": "followers",
"resultsLimit": 25
}

Resume an unfinished export

{
"usernames": ["nasa"],
"dataToScrape": "followers",
"resultsLimit": 100,
"continuationToken": "TOKEN_FROM_PREVIOUS_OUTPUT"
}

Dataset fields

FieldTypeMeaning
sourceUsernamestringRequested and resolved public source profile.
typestringFOLLOWER or FOLLOWING, relative to the source.
userIdstringStable decimal Instagram account ID.
usernamestringCurrent returned Instagram username.
fullNamestringPublic display name; it can be empty.
profilePicUrlstringPublic profile image URL; source URLs can expire.
profileUrlstringCanonical Instagram profile URL.
isPrivatebooleanPublicly returned privacy status.
isVerifiedbooleanPublicly returned verification status.

The Actor does not accept or export passwords, customer cookies, private-profile contents, email addresses, or contact enrichment.

Pricing and limits

This Actor uses pay-per-event pricing:

  • A start event is charged once when a valid run begins.
  • An item event is charged for each relationship identity saved to the dataset.
  • Exact current rates and plan discounts are shown on the Actor Pricing tab.
  • Invalid input is rejected before result charges.
  • The requested limit applies separately to each source profile.

Instagram can limit, reorder, or temporarily withhold relationship data. A requested limit is a maximum, not a promise that every source has that many accessible identities. Large lists can require continuation runs.

Always check the run OUTPUT status:

  • COMPLETE means the available list was exhausted.
  • LIMIT_REACHED means the requested cap was reached.
  • PARTIAL means saved rows are usable but the export stopped early.
  • FAILED means no complete result should be assumed; any already saved rows remain available.

Who is it for?

This Actor is designed for social media analysts, creator partnerships teams, researchers, agencies, growth teams, and developers who need structured public relationship identities instead of counts alone.

Common use cases

  • Audience research: compare public follower communities across creators or brands.
  • Creator discovery: collect public identities for later qualification in your own workflow.
  • Competitive analysis: study which public accounts a brand follows.
  • Community sampling: export a bounded sample for manual review or aggregate analysis.
  • CRM preparation: create a structured source list before permitted enrichment elsewhere.
  • Data pipelines: feed public relationship rows into a warehouse, spreadsheet, or automation.

API usage

Replace <APIFY_TOKEN> with your Apify API token. The examples use the public Actor identifier fetch_cat/instagram-scraper-followers-following-no-cookies-scraper.

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/instagram-scraper-followers-following-no-cookies-scraper').call({
usernames: ['nasa'],
dataToScrape: 'followers',
resultsLimit: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/instagram-scraper-followers-following-no-cookies-scraper').call(run_input={
'usernames': ['nasa'],
'dataToScrape': 'followers',
'resultsLimit': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST \
'https://api.apify.com/v2/acts/fetch_cat~instagram-scraper-followers-following-no-cookies-scraper/runs?token=<APIFY_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"usernames":["nasa"],"dataToScrape":"followers","resultsLimit":50}'

MCP and automation

Use the Actor from an AI client through Apify MCP.

Add the server to Claude Code:

claude mcp add apify --transport http \
'https://mcp.apify.com/?tools=fetch_cat/instagram-scraper-followers-following-no-cookies-scraper'

Generic MCP client configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=fetch_cat/instagram-scraper-followers-following-no-cookies-scraper"
}
}
}

Example prompts:

  • "Export 25 followers of the public Instagram profile nasa."
  • "Get 50 accounts followed by natgeo and return usernames and profile URLs."
  • "Run the Instagram followers scraper for these three public profiles and summarize the dataset."

You can also trigger runs from Apify schedules, connect completion webhooks, or read datasets from n8n and Zapier. For repeat workflows, keep limits bounded and inspect OUTPUT before treating a dataset as a complete relationship list. Continuation tokens resume traversal; they do not provide a chronological new-follower monitor.

Tips for reliable exports

  • Start with one public profile and a low result limit.
  • Use usernames or canonical profile URLs, not post or reel URLs.
  • Do not set both usernames and Account.
  • Keep the same profile order and direction when resuming.
  • Deduplicate downstream by sourceUsername, type, and userId.
  • Store image URLs only as temporary references because they can expire.
  • Treat display names as optional; some accounts intentionally leave them empty.

FAQ

Can I export public Instagram following identities without providing a login?

Yes. Customer passwords, cookies, and sessions are not accepted as Actor inputs. Choose following to export public identities followed by a source profile.

Can it scrape private-profile followers?

No. The product is limited to relationship data available for public source profiles.

Why did I receive fewer rows than requested?

The profile may have fewer accessible relationships, Instagram may temporarily limit the list, or the run may have ended partially. Check OUTPUT for source-level status and continuation information.

Are follower results returned in chronological order?

No. Instagram controls ordering, and it can change between requests.

How can I export Instagram followers from a public profile?

Enter a public username, select followers, and set a result limit. The dataset contains the accessible public relationship identities returned during the run.

How can I resume a large Instagram follower export without duplicate rows?

Copy continuationToken from OUTPUT into a new run using the same Apify account, profiles, order, and direction. The Actor retains deduplication state for the unfinished traversal.

Does resuming return only newly gained followers?

No. Resume continues an unfinished traversal. It is not a follower-change monitoring feed.

Are duplicate rows possible?

The Actor deduplicates identities within its saved state. For long-term storage, use sourceUsername, type, and userId as a stable composite key.

Support

If a run fails or returns unexpected data, open an issue from the Actor's Apify Store page. Include the public source username, selected direction, requested limit, and run ID. Never include passwords, cookies, tokens, or private account information.