# Instagram Followers Scraper - Export & Search, No Login (`zaver.api/instagram-followers-scraper`) Actor

Export the followers or following list of any public Instagram account - no login, no cookies. Search inside a follower list, filter by verified or bio, and enrich results with email and follower count. Export to CSV, Excel or JSON, run via API or schedule. For lead gen & influencer research.

- **URL**: https://apify.com/zaver.api/instagram-followers-scraper.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Features:** Limited permissions
- **Stats:** 839 total users, 57 monthly users, 99.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 followers lists

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Instagram Followers Scraper 🚀

**Instagram Followers Scraper** exports the full **followers** or **following** list of any public **Instagram** account — **no login, no cookies, no password**. Pull thousands of followers, **look up followers by name**, filter to the accounts you want, and **enrich each result with email, bio and follower count**. Download everything as **CSV, Excel or JSON**, or pull it straight from the **API**.

Built for **lead generation, influencer marketing, competitor research and audience analysis** — get a clean, structured Instagram followers list in minutes.

- ✅ **No login / no cookies** — your Instagram account is never touched or put at risk
- ✅ **Followers *and* following** export for any public profile
- ✅ **Quick name lookup** inside a follower list — only genuine matches are billed
- ✅ **Email & profile enrichment** for ready-to-use lead lists
- ✅ **Verified / private / bio filters** built in
- ✅ **CSV, Excel, JSON, XML** export + full API, scheduler and integrations
- ✅ **Resumes automatically** if a large run is interrupted — you never pay twice

***

### What does the Instagram Followers Scraper do?

Give it one or more Instagram usernames or profile URLs, choose **followers** or **following**, and it returns one clean row per account. Optionally turn on **enrichment** to add each account's bio, follower counts and public business email — turning a raw follower list into a qualified lead list or an influencer-audience report.

### What data does it extract?

Every row is one follower (or followed account):

| Field | Description | Example |
|---|---|---|
| `username` | Account handle | `spacefan_42` |
| `full_name` | Display name | `Alex Rivera` |
| `user_id` | Numeric Instagram ID | `18428658` |
| `verified` | Blue-check status | `false` |
| `private` | Private account flag | `false` |
| `profile_url` | Direct profile link | `https://www.instagram.com/spacefan_42/` |
| `profile_pic_url` | Avatar image URL | `https://…jpg` |
| `source_username` | Profile this row was scraped from | `nasa` |
| `list_type` | `followers` or `following` | `followers` |

With **profile enrichment** switched on, each row also includes:

| Field | Description | Example |
|---|---|---|
| `followers` | Follower count | `12400` |
| `following` | Following count | `310` |
| `posts` | Number of posts | `98` |
| `biography` | Profile bio | `Founder @ Orbit Labs · space + coffee` |
| `external_url` | Link in bio | `https://orbitlabs.io` |
| `category` | Business / creator category | `Entrepreneur` |
| `is_business` | Business account flag | `true` |
| `public_email` | Public business email (where exposed) | `hello@orbitlabs.io` |
| `public_phone` | Public business phone (where exposed) | `+1 555 0100` |

### Why choose this Instagram Followers Scraper?

- **No login, no cookies, no risk.** You never hand over an Instagram session or password. Nothing here can get *your* account flagged, rate-limited or banned.
- **Honest results, clearly explained.** Every row is checked before it is billed: duplicates are removed, search results that don't actually match are dropped, and if Instagram limits what it shows for an account, the run tells you why the list is shorter than requested.
- **Resumes where it stopped.** Long exports checkpoint their progress after every batch. If a run is aborted, times out or is migrated, restarting it continues from the last page — you are **never billed twice** for the same rows.
- **Partial results always survive.** Rows are saved page by page, not at the very end, so an interrupted run still leaves you everything scraped so far.
- **Built-in lead-gen filters.** Verified-only, exclude-private, and bio-keyword filters (e.g. keep only accounts whose bio contains `coach` or `shop`). Filtered-out rows are **never billed**.

### How to scrape Instagram followers (step by step)

1. Enter one or more **usernames or profile URLs** (`nasa` or `https://www.instagram.com/nasa/`).
2. Choose **Followers** or **Following**.
3. Set **max results per profile** (up to 100,000 per target). Some very large accounts only expose their most recent followers — see [the FAQ](#why-did-i-get-only-about-50-followers-for-a-big-account).
4. *(Optional)* Add a **search query**, turn on **enrichment**, or set **verified / private / bio** filters.
5. Click **Start**, then download from the **Storage → Dataset** tab as **CSV, Excel, JSON or XML** — or read it via the API.

#### Example input

```json
{
  "targets": ["nasa", "natgeo"],
  "scrapeType": "followers",
  "maxResults": 5000,
  "excludePrivate": true,
  "enrichProfiles": true,
  "bioKeywords": ["founder", "ceo"]
}
```

This exports up to 5,000 followers each of **@nasa** and **@natgeo**, drops private accounts, enriches every row with full profile data, and keeps only accounts whose bio mentions *founder* or *ceo* — a ready-made B2B lead list.

#### Example output

```json
{
  "source_username": "nasa",
  "list_type": "followers",
  "username": "orbitlabs",
  "user_id": "18428658",
  "full_name": "Alex Rivera",
  "verified": false,
  "private": false,
  "profile_url": "https://www.instagram.com/orbitlabs/",
  "followers": 12400,
  "following": 310,
  "posts": 98,
  "biography": "Founder @ Orbit Labs · space + coffee",
  "external_url": "https://orbitlabs.io",
  "category": "Entrepreneur",
  "is_business": true,
  "public_email": "hello@orbitlabs.io"
}
```

#### Quick name lookup inside a follower list

```json
{
  "targets": ["yourcompetitor"],
  "scrapeType": "followers",
  "searchQuery": "coach",
  "maxResults": 500
}
```

Asks Instagram's in-list search for followers of **@yourcompetitor** whose username or name contains *coach*. It takes a single request, but Instagram's answer is **best-effort and often partial**, so the scraper keeps only accounts that genuinely match, bills only those, and reports how many matched in the run status. Treat it as a fast spot-check. For a **complete** filtered list, leave `searchQuery` empty and use `bioKeywords` on a normal export instead.

#### Run it via the Apify API

```bash
curl "https://api.apify.com/v2/acts/YOUR~ACTOR/runs?token=YOUR_TOKEN" \
  -X POST -H "Content-Type: application/json" \
  -d '{"targets": ["nasa"], "scrapeType": "followers", "maxResults": 1000}'
```

Works with the **Apify SDK** (JavaScript & Python), **scheduled runs**, **webhooks**, and native integrations for **Make, Zapier, n8n, Google Sheets, Slack and LangChain**.

### Pricing — pay only for results

You are billed **per result delivered** to your dataset. Failed lookups, filtered-out rows and private-profile errors cost **nothing**.

| Result type | Price |
|---|---|
| Follower / following record | **$1.99 per 1,000** |
| Enriched record (full profile + email) | **$4.99 per 1,000** |

A 10,000-follower export costs about **$20**, or **$50** fully enriched.

### What can I use an Instagram followers list for?

- **Competitor audience research & lead generation** — export a competitor's followers, filter to business accounts with a public email, and feed your outreach or CRM tool.
- **Influencer marketing & vetting** — pull a creator's followers and confirm the audience is real and relevant before paying for a campaign.
- **Lookalike audience building** — export followers of accounts your customers love and upload them as a custom-audience seed for ads.
- **Community & network mapping** — the `following` export reveals an account's interests, partners and network.
- **Follower growth tracking** — schedule a weekly export and diff snapshots to see who followed and unfollowed over time.

### Frequently asked questions

#### Do I need an Instagram account or login to scrape followers?

No. This Instagram Followers Scraper uses its own managed data infrastructure — **no login, no cookies, no password**. You never provide credentials, so your account is never at risk.

#### Can it scrape followers of a private Instagram account?

No. Followers of private accounts are not publicly accessible. Private targets return a clear error row and are **not billed**.

#### How many followers can I export?

Up to **100,000 per profile** and up to 100 profiles per run by default (both raised on request). Larger lists paginate automatically and resume if interrupted. Most creator, business and personal accounts export in full; a small number of very large accounts are limited by Instagram (see below).

#### Why did I get only about 50 followers for a big account?

For some very large accounts, Instagram itself only shows the **most recent ~50 followers** to anyone other than the account owner — no tool without that account's login can page further. When this happens the run finishes normally, you are billed only for the rows delivered, and the run status and log say *"Instagram limits this account's follower list"*. What you can do instead:

- Export the **following** list of that account — following lists are not limited.
- Export followers of **smaller accounts in the same niche** (creators, partners, local brands); their audiences usually overlap and export in full.
- Use the [Instagram Likers & Commenters Scraper](https://apify.com/zaver.api/instagram-engagers-scraper) on the big account's posts to reach its most active audience.

#### Why does the follower search return few or no results?

`searchQuery` relies on Instagram's in-list search, which is best-effort: it often returns only part of the matching followers, and sometimes accounts that don't match at all. The scraper removes non-matching accounts so you never pay for them, and the run status tells you how many matched. For complete results, run a normal export and filter with **Bio must contain** (`bioKeywords`), or filter the exported username and name columns in your spreadsheet.

#### Will I ever pay for duplicate rows?

No. Each follower appears once per profile in your dataset, even when Instagram repeats accounts across pages.

#### Can I export the accounts a profile is following?

Yes. Set `scrapeType` to **following** to export the list of accounts a profile follows, with the same fields and filters.

#### Does it get email addresses?

Yes, where available. Turn on **enrichment** and `public_email` is filled for business/creator accounts that expose a public contact email — typically 5–15% of a general audience, and much higher in B2B niches.

#### What export formats are supported?

**CSV, Excel (XLSX), JSON, JSONL and XML**, plus direct API access and integrations with Make, Zapier, n8n and Google Sheets.

#### What happens if a large run is interrupted?

Everything already scraped is safe in the dataset, and the run's resume cursor is saved. Restarting the run continues from the last page — you are never billed twice.

#### Is scraping Instagram followers legal?

This scraper collects only **publicly available** data. You are responsible for using the data in compliance with the laws that apply to you (including **GDPR** and **CCPA**) and Instagram's terms. Do not use exports for spam or harassment.

### Support & roadmap

Found a bug or want a feature? Open an issue on the Actor's **Issues** tab and we'll respond quickly. On the roadmap: **post & comment likers export**, **followers email finder+**, and **fake-follower / account-audit scoring**.

### 🔌 Use this Actor from Claude, ChatGPT or Cursor (MCP)

Add it as a tool in any MCP client - Claude Code, Claude Desktop, Cursor, VS Code or ChatGPT - through Apify's hosted MCP server. The client runs the Actor for you and reads the results back, so you never leave the chat.

**Actor-specific server URL**

```
https://mcp.apify.com/?tools=actors,docs,zaver.api/instagram-followers-scraper
```

**Claude Code** - one command:

```bash
claude mcp add --transport http igfollowers "https://mcp.apify.com/?tools=actors,docs,zaver.api/instagram-followers-scraper"
```

**Claude Desktop, Cursor or any client with a JSON config:**

```json
{
  "mcpServers": {
    "igfollowers": {
      "url": "https://mcp.apify.com/?tools=actors,docs,zaver.api/instagram-followers-scraper"
    }
  }
}
```

The first connection opens a browser to sign in to Apify, so no API token sits in your config. If your client cannot do OAuth, send `Authorization: Bearer <YOUR_APIFY_TOKEN>` instead.

Then simply ask:

> Export the followers of @nasa and keep the ones with a public email

### Related actors

- [Instagram Profile Scraper](https://apify.com/zaver.api/instagram-profile-scraper) — bio, followers, email and category in bulk
- [Instagram Likers & Commenters Scraper](https://apify.com/zaver.api/instagram-engagers-scraper) — the accounts that liked or commented, as profiles
- [Instagram Email Scraper](https://apify.com/zaver.api/instagram-email-contact-extractor) — contact-first: email, phone and links per profile
- [Instagram Stories & Highlights Scraper](https://apify.com/zaver.api/instagram-stories-highlights-scraper) — stories and highlight media with download URLs
- [TikTok Followers & Following Scraper](https://apify.com/zaver.api/tiktok-followers-scraper) — follower and following lists with bios and emails

# Actor input Schema

## `targets` (type: `array`):

Usernames or profile URLs of the accounts whose followers (or following) you want. One per line, e.g. <code>nasa</code> or <code>https://www.instagram.com/nasa/</code>. Private accounts cannot be scraped.

## `scrapeType` (type: `string`):

Followers = accounts that follow the target. Following = accounts the target follows.

## `maxResults` (type: `integer`):

How many followers/following to export per target profile. You are billed only for results delivered. Large lists are paginated automatically and the run resumes where it stopped if interrupted. Note: for some very large accounts Instagram shows only the most recent followers (around 50); the run tells you when this happens.

## `searchQuery` (type: `string`):

Quick lookup: return followers whose username or name contains this query, using Instagram's search inside the follower list (one request). Instagram's answer is best-effort and often partial, so only genuine matches are delivered and billed, and the run tells you how many matched. For complete results, leave this empty and use <b>Bio must contain</b> on a normal export. Example: <code>founder</code>, a brand name.

## `onlyVerified` (type: `boolean`):

Keep only verified (blue-check) accounts.

## `excludePrivate` (type: `boolean`):

Drop private accounts from the export — useful for outreach lists, since private accounts can't be messaged from content.

## `enrichProfiles` (type: `boolean`):

Adds follower count, following count, posts, biography, external link, category, business flag and — where the account exposes them — public email and phone. One extra lookup per result, billed at the enriched rate (see pricing).

## `bioKeywords` (type: `array`):

Keep only accounts whose biography contains at least one of these keywords (case-insensitive). Requires enrichment — it is switched on automatically when this is set. Example: <code>founder</code>, <code>coach</code>, <code>shop</code>.

## Actor input object example

```json
{
  "targets": [
    "nasa"
  ],
  "scrapeType": "followers",
  "maxResults": 200,
  "onlyVerified": false,
  "excludePrivate": false,
  "enrichProfiles": false,
  "bioKeywords": []
}
```

# Actor output Schema

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

Every follower/following record produced by this run. One dataset item per account.

## `resultsCsv` (type: `string`):

The same records as a CSV download, ready for Excel or Sheets.

## `runSummary` (type: `string`):

Counts for the run: requests made, results returned, errors, and per-target progress.

# 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 = {
    "targets": [
        "nasa"
    ],
    "bioKeywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/instagram-followers-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 = {
    "targets": ["nasa"],
    "bioKeywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("zaver.api/instagram-followers-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 '{
  "targets": [
    "nasa"
  ],
  "bioKeywords": []
}' |
apify call zaver.api/instagram-followers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/instagram-followers-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/gk7gt2uW03dhakvqb/builds/5o99Pm0zMRBQcwJeL/openapi.json
