Instagram Followers Scraper | $0.5/1K on Starter avatar

Instagram Followers Scraper | $0.5/1K on Starter

Pricing

from $0.45 / 1,000 followers

Go to Apify Store
Instagram Followers Scraper | $0.5/1K on Starter

Instagram Followers Scraper | $0.5/1K on Starter

Extract available followers from public Instagram profiles. Supports pagination and resumable exports where Instagram allows them. $0.50/1K on Starter. No login or cookies. Export JSON, CSV, or Excel.

Pricing

from $0.45 / 1,000 followers

Rating

0.0

(0)

Developer

Public Signal Labs

Public Signal Labs

Maintained by Community

Actor stats

0

Bookmarked

111

Total users

52

Monthly active users

4.5 hours

Issues response

4 days ago

Last modified

Share

Extract available followers from public Instagram profiles for $0.50 per 1,000 rows on Starter, with lower Scale and Business rates. Supports pagination and resumable exports where Instagram allows them. No login, cookies, browser, or proxy setup. Export to JSON, CSV, or Excel.

Instagram may restrict the available follower list, even for public profiles. Results may be fewer than requested, and complete follower lists are not guaranteed.

What this Actor does

  • Accepts one or more public Instagram account handles
  • Extracts available follower records with pagination and resumable exports where Instagram allows them; request up to 20,000 followers per account in each run. Actual results depend on Instagram's availability and restrictions.
  • Returns structured rows ready for JSON, CSV, Excel, XML, or API workflows
  • Works without Instagram login credentials, cookies, session IDs, browsers, or proxy configuration
  • Returns a continuation token only when Instagram supplies further available results for an unfinished paid extraction, so you can resume it where continuation is available

Use it for public audience research, creator discovery, competitor audience analysis, and repeatable data pipelines.

Quick start

  1. Enter one or more plain Instagram handles without @ or profile URLs.
  2. Choose the maximum number of followers to return per account.
  3. Run the Actor, then open or export the default dataset.
{
"Account": ["mrbeast"],
"resultsLimit": 200
}

Input

FieldRules
AccountRequired list of plain Instagram handles. Do not include @, profile URLs, or numeric IDs. Paying users may submit multiple unique accounts; plan-specific account limits are detailed in Pricing.
resultsLimitRequired maximum requested per account, from 25 through 20,000 for each run, not a guaranteed delivery count. The default and Store prefill are 200. Paid extractions can continue only when OUTPUT supplies a nextContinuationToken; plan-specific effective limits are detailed in Pricing. Actual results depend on Instagram's availability and restrictions.
continuationTokenOptional short-lived secret token returned by a previous paid run. Requires exactly one Account matching the account bound into the token. Use it to continue that extraction from its latest checkpoint only when the previous OUTPUT supplied a nextContinuationToken for that account. Tokens issued before the extraction update are no longer supported; start a fresh run without the token. A fresh run can repeat followers from an earlier dataset and incur new row charges.

Dataset rows

Every charged dataset item has exactly this shape:

{
"username_scrape": "mrbeast",
"id": "123456789",
"full_name": "Example Person",
"is_private": false,
"is_verified": false,
"profile_pic_url": "https://...",
"username": "example_person"
}
FieldMeaning
profile_pic_urlExternal profile-picture URL; it may expire
usernameExtracted follower's Instagram handle
idExtracted follower's Instagram user ID, always represented as a string
full_nameExtracted follower's public display name
is_privateWhether the extracted follower account is private
is_verifiedWhether the extracted follower account is verified
username_scrapeSource account whose follower list was requested

The default dataset contains follower rows only. Follower ordering is controlled by Instagram and may change between runs. Profile-picture URLs are external and can expire.

Pricing

The rate is $0.50 per 1,000 follower rows on Starter, with lower Scale and Business rates. Each run charges for the follower rows it persists; a continuation token and rows skipped by its saved page offset are not billable rows.

Deduplication is per run: repeated follower IDs within one run are skipped. Separate runs, including continuation runs, can repeat followers if Instagram returns overlapping or reordered pages. Deduplicating combined datasets across runs is your responsibility.

Each run also incurs the standard Apify startup event at $0.00005 per billable GB (minimum one event). At the default 4 GB memory this is $0.0002 per run, including runs that deliver zero follower rows.

FREE demo limits

FREE Apify accounts can run this Actor up to 5 times per UTC calendar month. Each admitted FREE run accepts exactly one account, returns up to 1,000 followers, and cannot submit or receive a continuation token. Console, CLI, API, schedules, webhooks, MCP, and other Apify launch methods share the same account allowance. A run counts once admitted even when it is later aborted or unsuccessful, and resurrecting it does not start another extraction. Creating another task or API token does not reset the allowance. Paid Apify users are not subject to these demo limits.

Run summary

Run status, source outcomes with restriction explanations, counts, and continuation tokens are stored in the default key-value store's OUTPUT record rather than mixed into the dataset. Each entry in sources carries a stopReason, a paginationLimited flag (true, false, or null when unknown), and a customer-facing message. A restricted terminal list is a successful best-effort result, not a failure: when every source finished validly and at least one ended restricted, the top-level status is SUCCEEDED with stopReason: instagram_limit. Spending limits, FREE-policy outcomes, and genuine failures keep their existing precedence over the restriction signal.

OUTPUT uses schemaVersion: 2: status is SUCCEEDED for completed work and graceful stops, or FAILED for internal faults (RUNNING denotes a checkpoint). Check outcome (COMPLETED, NO_RESULTS, PARTIAL, INPUT_REJECTED, POLICY_REJECTED, UPSTREAM_UNAVAILABLE, DEPENDENCY_UNAVAILABLE, LIMIT_REACHED, INTERNAL_ERROR) and message/issues; platform success does not guarantee data. Runtime input/policy rejections and external outages finish normally; confirmed rows remain available. Ambiguous writes or charges use reconciliation: "unknown". External reporting outages can leave summaries unavailable; platform-enforced aborts and resource failures remain outside this guarantee.

{
"schemaVersion": 2,
"outcome": "PARTIAL",
"status": "SUCCEEDED",
"stopReason": "instagram_limit",
"isPaying": true,
"requestedAccounts": 1,
"resultsLimitPerAccount": 200,
"deliveredCount": 50,
"chargedCount": 50,
"sources": [
{
"inputIndex": 0,
"account": "mrbeast",
"status": "succeeded",
"stopReason": "instagram_limit",
"paginationLimited": true,
"deliveredCount": 50,
"chargedCount": 50,
"message": "Returned 50 followers. Instagram limits access to further followers for this account and provided no continuation. These results are a partial list, not the account's full follower list."
}
],
"continuations": [
{
"inputIndex": 0,
"account": "mrbeast",
"hasNextPage": false,
"nextContinuationToken": null
}
]
}

outcome distinguishes partial or limited work from the run lifecycle. A source stopReason of results_limit means the requested maximum was reached while more work was available; instagram_limit means the available page was fully consumed and Instagram signalled a restricted list; source_exhausted means Instagram returned no further available followers without an explicit restriction signal. Spending-limit, FREE-policy, and failure reasons keep their existing meanings and are never relabelled as an Instagram restriction. A restricted page that still has unconsumed rows can supply a continuation for its remaining rows; once the restricted page is fully consumed, hasNextPage is false and nextContinuationToken is null. Inspect each source entry even when the run itself completes. A non-PII run and charging summary is stored separately as AUDIT.

Admitted FREE runs include a freeTier object with the UTC month, claimed slot, remaining allowance, effective result limit, and policy version. Rejected FREE runs use stable reasons such as free_monthly_limit, free_run_already_consumed, or free_quota_unavailable. The record never contains an Apify user ID, API token, or internal quota-storage identifier.

Resumable paid exports with continuation tokens

Paid exports can continue only when OUTPUT supplies a nextContinuationToken. Request up to 20,000 followers per account per run, and continue with a continuation token when available. Actual results depend on Instagram's availability and restrictions. To continue the extraction, read nextContinuationToken from the account's entry in OUTPUT.continuations, then start a new run with the same single handle. Resumption is manual; FREE has no continuation.

Use a continuation token to resume the same extraction, not only after reaching 20,000 followers. For large exports, use batches of about 1,000 followers and pass the newest token into each subsequent run. Smaller checkpoints reduce the amount of work that may need to be retried if a run is interrupted. A continuation retrieves remaining available rows; it does not bypass an Instagram restriction.

{
"Account": ["mrbeast"],
"resultsLimit": 1000,
"continuationToken": "<token from OUTPUT>"
}

A continuation may require the current page to be fetched again when the prior segment stopped partway through that page. The saved offset skips the previously consumed prefix, but Instagram can change page contents or ordering. Continuation is not an immutable snapshot or a guarantee against duplicate followers across runs.

Limitations

This Actor:

  • Reads available follower lists from public Instagram accounts only; public visibility does not mean Instagram exposes the complete follower list or permits pagination
  • May return fewer rows than requested when Instagram restricts the available list, even for public profiles; complete follower lists are not guaranteed
  • Does not bypass private-account access controls
  • Does not enrich follower records with emails, phone numbers, posts, or engagement metrics
  • Cannot guarantee follower order or stable profile-picture URLs
  • May return fewer rows when Instagram reports no more followers or when a run reaches its spending limit

API and CLI use

Call the Actor through the standard Apify Actor Runs API. Read follower data from the run's default dataset and reconciliation metadata from the OUTPUT and AUDIT key-value-store records. Dataset rows are the billable unit.

With the current Apify CLI:

apify actors call publicsignallabs/instagram-followers \
--input '{"Account":["mrbeast"],"resultsLimit":200}' \
--output-dataset

The same Actor can be called with the Apify JavaScript or Python clients, REST API, schedules, webhooks, and platform integrations. Plan-specific demo limits are detailed in Pricing.

Responsible use

Only collect and use public data where you have a lawful purpose. Respect privacy, platform rules, and applicable data-protection law. Minimize retained personal data, secure exported datasets, and delete records when they are no longer needed.

This Actor is unofficial and is not affiliated with or endorsed by Instagram or Meta.

FAQ

Does it require an Instagram account?

No. The Actor does not require Instagram login credentials, cookies, or a session ID.

Do I need to configure proxies or manage blocked sessions?

No. The Actor exposes no proxy, cookie, browser, or session configuration. It handles temporary failures with bounded retries and reports each source outcome in OUTPUT.

Are paid follower exports unlimited?

No. Paid exports continue only when OUTPUT supplies a nextContinuationToken for the account. Request up to 20,000 followers in each run, then pass the returned token into a new run for the same single account only when one is available. Instagram may restrict the available list, so complete follower lists are not guaranteed. For large exports, batches of about 1,000 followers are recommended so progress is checkpointed frequently. Always use the newest token returned by the previous run; tokens issued before the extraction update are no longer supported, so start a fresh run without the token.

Can it extract followers from private source accounts?

No. It works with follower lists available from public source accounts and does not bypass access controls.

Can one run process multiple accounts?

Yes for paying users. Plan-specific account limits are detailed in Pricing.

How do I export the results?

Open the run's default dataset in Apify Console and choose JSON, CSV, Excel, XML, or another supported dataset export format. Programmatic workflows can read the same dataset through the API.

Release note — 2026-09-09

Best-effort extraction update: this Actor returns the followers Instagram makes available for each public account and explains restricted results in OUTPUT per source (stopReason, paginationLimited, message). Some accounts expose only a restricted list while others support pagination; resultsLimit remains a requested maximum, not a guaranteed delivery count. Continuation tokens issued before this update are no longer supported; start a fresh run without the token. A fresh run can repeat followers and incur new row charges.

Support

Use the Issues tab on this Actor's Apify Store page. Include the run ID, expected result, and observed result. Never include continuation tokens, API tokens, cookies, or other credentials.