Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Instagram Followers & Following Scraper icon

Instagram Followers & Following Scraper

Get a public Instagram account's followers and following list. Username, full name, profile picture, profile URL, verified and private flags. No login.

5 from 1 review on Apify 343 runs on Apify $0.0006 per follower profile ($0.6 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust profiles, listType, maxItemsPerProfile (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0006 per follower profile = $0.6 per 1,000

You are charged forWhenPrice
Follower profile returnedCharged once per follower profile actually delivered. Sample rows, unresolvable profiles, unsupported list types and early stops are never charged.$0.0006

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-19, and they are what you are actually charged.

Inputs

FieldWhat it doesType
profilesPublic Instagram usernames, @handles, or profile URLs. Empty input emits one labeled, uncharged sample row without using credentials or proxy.array
listTypeExtract followers, following, or both relationship lists.string
maxItemsPerProfileMaximum relationship profiles returned for each source profile and selected list.integer
requestTimeoutSecondsTimeout for each Instagram web API request.integer
maxRunSecondsHard wall-clock bound for profile resolution and relationship pagination.integer
sessionCookiesOptional. Add your own Instagram account cookie here and the run uses your account. In Chrome: F12 -> Application -> Cookies -> https://www.instagram.com, then copy the sessionid value. Pasting the whole cookie string works too. Cookie values are never logged or written to the output. Prefer a throwaway account over your main one. Use an account you own and are authorised to automate.array
maxAttemptsBounded retries across rotating configured accounts and sticky proxy sessions.integer

What you get

A structured dataset — each result includes fields like:

usernamefullNamelistTypesourceUsernameisPrivateisVerifiedprofileUrl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

12 ready-to-run use cases

Instagram Prospecting: Mine a Tool's Follower List

Followers of a marketing tool are usually the people who buy marketing help. Usernames and display names only, so qualifying is still manual.

Compare Instagram Followers Between Two Brands

Two accounts in one run, every row tagged with the account it came from, so a join on username gives the overlap. Ships pointed at @adidas and @puma.

Instagram Competitor Analysis: Export Their Followers

A competitor's follower list as rows: username, display name, profile picture, verified and private flags. Runs on @nike out of the box.

Download Instagram Followers List for a Shop

An e-commerce brand's followers as JSON or CSV: username, display name, picture URL, verified and private flags. Set up on @shopify to start.

Instagram Fitness Influencers: Export Their Followers

The audience behind a coaching account, row per follower. Private accounts are flagged so you can drop the ones you will never reach anyway.

Instagram Following List Export for Any Account

The other direction: who an account follows, not who follows it. Same row shape either way, with a listType field naming which list it came from.

Instagram Influencer Audit: Read the Follower List

Pull the follower list before you sign a deal and look at it yourself. Verified and private flags per account. No follower counts, no engagement rates.

Instagram for Local Business: Pull a Follower List

Followers of a nearby shop or cafe, which is the closest thing to a geo-filtered list here. Rows carry no location field, so filtering is on you.

Instagram Lookalike Audience From a Competitor

Export a rival's follower usernames as the seed for a custom audience. What you get is handles - matching them to ad accounts is a separate job.

Find Micro Influencers Following a Niche Account

Trawl a niche account's followers for smaller creators. The verified flag is here; follower counts are not, so size them in a second pass.

Instagram Lead Generation From a Niche Account

Followers of an account your buyers already follow, as usernames and display names. These are handles, not email addresses - no contact data here.

Scrape Instagram Followers of a SaaS Account

The follower list of a B2B account, one row per profile with username, name and the verified flag. Bios and follower counts are not part of it.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

Instagram Followers & Following Scraper: who follows a public account

Give it a public Instagram handle and get its follower list back as rows. Username, full name, profile picture, profile URL, and whether that account is verified or private. One row per person.

The awkward part, and it is better to know now than on run two: the following list needs your own Instagram cookie. Followers come back without one. Ask for following or both with no cookie and you get the followers plus a labelled row telling you the other half was not available.

InputUp to 5 public handles, @handles or profile URLs
OutputOne row per follower or followed account
Ceiling1,000 rows per profile, per list
Account neededNone for followers. Your own cookie for following
Price$0.60 per 1,000 rows, flat on every plan

🔍 What Instagram Followers & Following Scraper does

It walks the follower list of the handles you name and writes each account it finds as a row. Every row says which of your handles it came from and which list it came from, so you can send several profiles in one run and still tell the results apart afterwards.

Rows arrive in the order Instagram serves them, which is neither alphabetical nor by date. Treat the order as meaningless and sort on your own side.

Nothing to install and no API key. For followers there is nothing to log into either.

A private source account cannot be read at all. Neither can a private account that appears in the list, beyond its name and picture, which is exactly what Instagram shows a stranger.

📥 What you give it

{
  "profiles": ["nasa"],
  "listType": "followers",
  "maxItemsPerProfile": 100
}
FieldDefaultWhat it is
profilesnonenasa, @nasa or a full profile URL. Up to 5 in one run.
listTypefollowersfollowers, following or both. The last two need a cookie.
maxItemsPerProfile100Rows per profile per list, 1 to 1,000. Ask for both at 100 and a profile can return 200.
sessionCookiesnoneYour own Instagram sessionid. Required for following lists, and the run then uses your own account.
maxRunSeconds120Wall-clock ceiling for the whole run, 20 to 180. Raise it for a big pull.
requestTimeoutSeconds15How long one request may take, 5 to 30.
maxAttempts8How many times a refused request is retried before the run gives up on it. 1 to 12.
proxyConfigurationApify defaultLeave it alone. Put servers of your own in proxyUrls inside it if you have them.

Start a run with no profiles at all and you get one labelled sample row showing the output shape. That row is not charged and no credentials are touched.

📤 What you get back

A real row from a real run, with the long picture link cut short:

{
  "ok": true,
  "recordType": "relationship_profile",
  "id": "27736785273",
  "username": "rashiniesansadi",
  "fullName": "Rashinie Sansadi Wijesooriya",
  "isPrivate": true,
  "isVerified": false,
  "profilePicUrl": "https://scontent-iad6-1.cdninstagram.com/v/t51.82787-19/...",
  "sourceUsername": "nasa",
  "sourceProfileId": "528817151",
  "listType": "followers",
  "profileUrl": "https://www.instagram.com/rashiniesansadi/"
}
FieldWhat it is
idInstagram's numeric id for that account. Stable, and the right dedupe key across runs. A username can change, this does not.
sourceUsername, sourceProfileIdWhich of your handles this row came from.
listTypefollowers or following, so a both run stays separable.
isPrivatetrue means you can see the name and picture and nothing else. That is all Instagram shows anyone.
profilePicUrlA signed link that expires within hours. Download what you want to keep.

Nothing is guessed. A field Instagram did not send comes back empty rather than filled in.

🧾 Reading the output

Three kinds of row land in your dataset, and only the first kind is billed.

RowHow to spot itBilled
An accountrecordType: "relationship_profile"yes
The sample row_sample: true, and only on a run with no profilesno
A diagnosticok: false and a codeno

Filter on recordType == "relationship_profile" and you have your list.

The code on a diagnostic row says what happened:

CodeWhat it means
BAD_INPUTNothing in profiles looked like a handle.
NOT_FOUNDNo such account, or it is private, so the list cannot be opened.
NO_RESULTSThe account resolved but the list came back empty.
PROVIDER_UNSUPPORTEDYou asked for a following list without a cookie. Add one in sessionCookies.
PARTIALThe run delivered some rows and then stopped, usually on the time ceiling. What arrived is complete.
RATE_LIMITEDToo many requests too close together. Space the runs out.
PROVIDER_AUTH, SESSION_EXHAUSTEDThat list could not be opened this time. If you supplied a cookie, check it is still valid.
SERVER_ERROR, NETWORKInstagram was unreachable or answered badly. Re-run it.

A diagnostic row never bills you for results, and a bad handle does not stop the other handles in your list.

▶️ How to run it

1. Open Instagram Followers & Following Scraper and click Try for free. 2. Put your handles into Instagram profiles, up to five. 3. Leave List type on Followers unless you have a cookie to paste. 4. Set Maximum rows per profile and list, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.60 per 1,000 rows. Flat on every Apify plan, no volume tiers.

One charge per account written to your dataset. A both run bills each list separately, because it returns two lists. Sample rows and diagnostic rows are not billed, and a profile whose list comes back empty is not billed for results.

💡 What people use it for

  • Checking the overlap between two accounts' followers to see how much of an audience is shared.
  • Pulling the verified accounts out of a follower list as a shortlist of people worth approaching.
  • Watching who a competitor started following this month, with a cookie and a weekly schedule.
  • Measuring how much of a follower list is private accounts, which is a rough tell for bought

growth.

🚧 What it does not do

  • The following list needs your own cookie. Without one you get followers and a labelled row

saying the rest was unavailable.

  • No private source accounts. If the profile you name is private, there is no list to read.
  • No complete list of a large account. 1,000 rows per profile per list is the ceiling, and a

million-follower account gives you the first slice of it.

  • No cursor between runs. Run it twice and it starts from the top again, returning the same

rows.

  • The order is Instagram's, not yours. It is not newest first and it is not alphabetical.
  • No follower counts, bios, emails or posts. Those live in the profile actor.
  • Picture links expire within hours.
  • Five profiles per run. A longer list needs splitting.

🧭 Which Instagram scraper do you need?

If you wantUse
Who follows an account, or who it followsThis one
Follower counts, bio, email and links for an accountInstagram Profile Scraper
Posts and reels from a profileInstagram Scraper
Accounts that mentioned or tagged a handleInstagram Mentions Scraper
A weekly snapshot of rival accountsInstagram Competitor Monitor

❓ Questions people ask

Do I need an Instagram account? Not for followers. For a following list, yes, your own cookie.

Where do I find the cookie? In Chrome, F12, then Application, Cookies, instagram.com, and copy the sessionid value. Use a throwaway account if you would rather not use your main one.

Can I get all 100 million of an account's followers? No. The ceiling is 1,000 per profile per list, and there is no way to page past it on a later run.

Why are the rows in that order? Because that is the order Instagram hands them over. Sort them yourself once they are in your sheet.

Will a wrong handle fail the run? No. It gets an uncharged row of its own and the rest of your profiles carry on.

Is scraping Instagram legal? This reads public profiles only, never private accounts or messages. Follower lists are personal data, which GDPR and similar laws cover, so have a lawful reason for collecting them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the handle you used and the run ID. The code on the diagnostic row usually explains it on its own.