# Instagram Followers List Scraper (`coderx/instagram-followers-list-scraper`) Actor

Easily scrape followers from public Instagram profiles. This tool automatically collects the full list of followers from any public Instagram account. Ideal for marketers, researchers, and data analysts who need follower data for public accounts.

- **URL**: https://apify.com/coderx/instagram-followers-list-scraper.md
- **Developed by:** [CoderX](https://apify.com/coderx) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 3,123 total users, 32 monthly users, 100.0% runs succeeded, 23 bookmarks
- **User rating**: 4.81 out of 5 stars

## Pricing

from $1.10 / 1,000 price per profile scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram Follower List Scraper

Extract the complete follower list of any **public** Instagram profile — with **no login, no password, and no session cookies**. Hand the actor a username, and it returns a tidy JSON record for every follower, page after page, ready to drop straight into a spreadsheet, CRM, or analytics pipeline.

This actor is purpose-built for **one job — followers** — so there are no extra toggles to configure and no ambiguity about what you're getting back.

***

### Why go cookieless?

Most follower scrapers ask you to paste in a session cookie or log in with a real Instagram account. That approach is fragile and risky:

- **No account at risk.** You never expose your own credentials, so there's nothing to get flagged, restricted, or banned.
- **Nothing expires.** Session cookies rot within hours or days. This actor doesn't use them, so a saved run configuration keeps working.
- **Zero setup.** Skip the browser extensions and copy-paste rituals. Type a username and press start.

Everything this actor reads is data any logged-out visitor can already see on the public web.

***

### Quick start

1. Type in a **public** Instagram username (the account whose followers you want).
2. Optionally set a **result limit** — how many follower records to pull.
3. Run it. The actor walks through Instagram's follower pages and writes each account to your dataset.
4. Export the results as JSON, CSV, or Excel from the Apify console, or grab them via the API.

***

### Input

This actor takes a minimal input because it does exactly one thing.

| Field         | Type    | Required | Default | What it's for                                   |
|---------------|---------|----------|---------|-------------------------------------------------|
| `username`    | String  | Yes      | —       | The public account whose followers to collect   |
| `max_items`   | Integer | No       | `100`   | Cap on how many follower records to return       |

#### Sample input

```json
{
  "username": "natgeo",
  "max_items": 500
}
```

***

### What you get back

Every dataset item is a single follower account. The core fields you'll actually use day to day:

| Field              | Meaning                                                        |
|--------------------|---------------------------------------------------------------|
| `username`         | The follower's Instagram handle                               |
| `full_name`        | Display name shown on their profile (can be blank)            |
| `pk` / `id`        | Instagram's internal numeric account identifier              |
| `is_private`       | `true` when the follower's own account is locked down         |
| `is_verified`      | `true` when the account carries a blue check                  |
| `profile_pic_url`  | Direct link to their 150×150 avatar                           |
| `latest_reel_media`| Timestamp of their most recent public story, when available  |
| `reel`             | Nested object with story/reel metadata and owner details     |

#### Sample output item

```json
{
  "pk": "7170190972",
  "id": "7170190972",
  "username": "cehjeyson",
  "full_name": "Jeyson Ceh Alcocer",
  "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/459215396_515611037714158_5599926235233254176_n.jpg",
  "is_private": true,
  "is_verified": false,
  "latest_reel_media": null,
  "reel": {
    "id": "7170190972",
    "expiring_at": 1773621738,
    "has_pride_media": false,
    "owner": {
      "id": "7170190972",
      "username": "cehjeyson"
    }
  }
}
```

Fields Instagram doesn't expose for a given account come back as `null` rather than being dropped, so your schema stays consistent across every row.

***

### Plans

| What you get               | Free        | Paid                     |
|----------------------------|-------------|--------------------------|
| Followers per run          | Around 50   | Up to your `max_items`   |
| Pagination cursor returned | —           | Included                 |
| Resume an interrupted run  | —           | Supported                |

Free runs let you validate the output format before committing. When a free run hits its ceiling, you'll see:

> `🔒 Upgrade your subscription to scrape more followers.`

***

### Picking up where you left off

On paid runs, the final record in the dataset carries a pagination **cursor** plus a running count:

```json
{
  "cursor": "QVFDZjJmUTdQcGQ4VUluUFZMa3NLZ...",
  "total_scraped": 500
}
```

To continue a large scrape later, start a new run against the **same username** and supply that cursor. The actor resumes from that point instead of starting over — handy for accounts with tens or hundreds of thousands of followers.

***

### FAQ

**Do I need an Instagram account or cookie?**
No. The actor works entirely from publicly visible data, so there's nothing to log into.

**Can it scrape a private account's followers?**
No. If the target profile is private, its follower list isn't publicly visible and can't be collected.

**What about the *following* list?**
This actor is followers-only by design. If you need who an account *follows*, that's a separate job.

**Will a huge account finish in one run?**
Very large lists may be split across runs due to Instagram's rate limits. Use the cursor to resume — see above.

**What export formats are available?**
JSON, CSV, Excel, and HTML table via the Apify console, plus programmatic access through the dataset API.

***

### Limitations to keep in mind

- **Public profiles only.** Private accounts are off-limits by nature.
- **Rate limits happen.** On big lists Instagram may throttle requests; failed requests are retried automatically (up to 3 times) before the actor moves on.
- **`max_items` defaults to `100`** if you leave it blank.

***

### Where people use this

- Mapping an audience for research or reporting
- Profiling a creator or influencer's follower base
- Sizing up a competitor's audience
- Assembling outreach and prospecting lists
- Ongoing social-account monitoring

***

### Responsible use

This actor collects **only publicly available information** — the same data any signed-out person could view in a browser. You are responsible for using the output in line with applicable laws, privacy regulations, and Instagram's Terms of Service. The developer accepts no liability for how the data is used.

***

**Ready to build your follower list? Enter a username and run it — no cookies, no login, no fuss.**

# Actor input Schema

## `username` (type: `string`):

The public Instagram account whose follower list you want to export.

## `max_items` (type: `integer`):

Maximum number of follower records to return. Defaults to 100.

## `cursor` (type: `string`):

Pagination cursor from a previous run. Paste the cursor value from the last dataset record to continue where you left off. Leave empty to start from the beginning.

## Actor input object example

```json
{
  "username": "natgeo",
  "max_items": 50
}
```

# Actor output Schema

## `results` (type: `string`):

Follower profiles collected from the target account, stored in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "username": "natgeo",
    "max_items": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("coderx/instagram-followers-list-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "username": "natgeo",
    "max_items": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("coderx/instagram-followers-list-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "username": "natgeo",
  "max_items": 50
}' |
apify call coderx/instagram-followers-list-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,coderx/instagram-followers-list-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/37pAZUQqLLRIasAbq/builds/qTv3dwx51TpqWP49N/openapi.json
