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
| Field | Type | Description |
|---|---|---|
usernames |
string array | Public Instagram usernames or profile URLs. |
Account |
string array | Compatibility alias for usernames. Do not provide both fields. |
dataToScrape |
string | followers or following. Legacy capitalization is accepted. |
resultsLimit |
integer | Maximum additional identities exported per source in this run. |
continuationToken |
string | Optional 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.
Dataset fields
| Field | Type | Meaning |
|---|---|---|
sourceUsername |
string | Requested and resolved public source profile. |
type |
string | FOLLOWER or FOLLOWING, relative to the source. |
userId |
string | Stable decimal Instagram account ID. |
username |
string | Current returned Instagram username. |
fullName |
string | Public display name; it can be empty. |
profilePicUrl |
string | Public profile image URL; source URLs can expire. |
profileUrl |
string | Canonical Instagram profile URL. |
isPrivate |
boolean | Publicly returned privacy status. |
isVerified |
boolean | Publicly returned verification status. |
The Actor does not accept or export passwords, customer cookies, private-profile contents, email addresses, or contact enrichment.
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
usernamesandAccount. - Keep the same profile order and direction when resuming.
- Deduplicate downstream by
sourceUsername,type, anduserId. - Store image URLs only as temporary references because they can expire.
- Treat display names as optional; some accounts intentionally leave them empty.
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.