# Instagram Follower Profiles Scraper (`receptional_blender/instagram-follower-profiles`) Actor

Scrape the followers of any Instagram account and return each follower's full public profile — bio, links, follower/following/post counts, verification and any public email addresses.

- **URL**: https://apify.com/receptional\_blender/instagram-follower-profiles.md
- **Developed by:** [Assia Fadli](https://apify.com/receptional_blender) (community)
- **Categories:** Social media
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

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/platform/actors/running/actors-in-store#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 Profiles Scraper

**Instagram Follower Profiles Scraper** turns any Instagram account into a rich, structured list of
its followers. Point it at one username and it reads that account's followers, then fetches the
**full public profile** of each one — bio, external links, follower / following / post counts,
verification status, profile pictures and any publicly listed email addresses.

Built for marketers, analysts, agencies and developers who need audience data and leads without
maintaining scraping infrastructure.

### What you get

For every follower it profiles, the actor writes one dataset record containing:

- The full public profile object exactly as Instagram serves it (bio, biography links, category,
  verification, business flags, profile picture URLs, and more).
- Convenience totals flattened onto the record for quick use:
  - `follower_count`
  - `following_count`
  - `media_count`
- `emails` — an array of any email addresses found in the bio / links, or `null`.
- `scrapedUsername` — the follower's handle.
- `followerOf` — the target account whose followers were scraped.

If a follower's full profile can't be read, the actor still writes a row from the basic follower
data with `"fullProfile": false`, so no follower is silently dropped. If a follower can't be
processed at all, a `{ "username": "...", "followerOf": "...", "error": "..." }` row is written
instead.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUsername` | string | ✅ | The account whose followers to scrape — with or without `@`, or a full profile URL. |
| `sessionId` | string (secret) | ✅ | Your Instagram `sessionid` cookie. Required — a follower list cannot be read anonymously. |
| `maxResults` | integer | — | Maximum number of followers to fully profile. Defaults to `50`. |
| `proxyCountryCode` | string | — | Two-letter residential-proxy country code (e.g. `US`, `GB`, `DE`). Defaults to `US`. |
| `paginationToken` | string | — | A `next_max_id` cursor from a previous run to resume a large follower list. |

#### Example input

```json
{
  "startUsername": "nasa",
  "sessionId": "REPLACE_WITH_YOUR_SESSIONID_COOKIE",
  "maxResults": 50,
  "proxyCountryCode": "US"
}
```

#### Getting your session cookie

1. Log in to instagram.com in your browser.
2. Open a cookie viewer (e.g. the Cookie-Editor extension).
3. Copy the **value** of the `sessionid` cookie and paste it into `sessionId`.

### How it works

The actor talks to Instagram's public JSON endpoints directly over HTTP (no headless browser). It
resolves the target account's numeric id via `web_profile_info`, pages through its followers via the
`friendships` endpoint, then fetches each follower's full profile — sending the same application
headers instagram.com's own web client uses. Requests are routed through Apify residential proxies,
and each follower is processed independently so one failure never affects the rest.

### Pricing

This actor uses a **pay-per-event** model: you are billed once per follower profile actually
delivered to the dataset. Error rows are never charged, and the run stops on its own once your
event budget is reached.

### Tech

Written in **TypeScript** on the Apify SDK. HTTP-only, so builds are fast and runs are cheap.

### License

MIT © Assia Fadli

# Actor input Schema

## `startUsername` (type: `string`):

The Instagram account whose followers you want to profile (with or without @, or a full profile URL). The actor reads this account's followers, then fetches the full profile of each one.

## `sessionId` (type: `string`):

Value of your Instagram 'sessionid' cookie. REQUIRED — a follower list cannot be read anonymously. Log in to instagram.com, open a cookie viewer, and copy the value of the `sessionid` cookie.

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

Maximum number of followers to fully profile. Keeps runs bounded and reduces the chance of rate limiting on large accounts.

## `proxyCountryCode` (type: `string`):

Two-letter country code for the residential proxy (e.g. US, GB, DE). Best matched to the country of the Instagram account whose sessionId you use.

## `paginationToken` (type: `string`):

A `next_max_id` cursor from a previous run. Provide it to resume paging through a very large follower list where you left off.

## Actor input object example

```json
{
  "startUsername": "nasa",
  "sessionId": "1234567890%3Aabcdefghijklmno%3A12ljkjkj",
  "maxResults": 50,
  "proxyCountryCode": "US"
}
```

# 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 = {
    "startUsername": "instagram",
    "maxResults": 50,
    "proxyCountryCode": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("receptional_blender/instagram-follower-profiles").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 = {
    "startUsername": "instagram",
    "maxResults": 50,
    "proxyCountryCode": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("receptional_blender/instagram-follower-profiles").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUsername": "instagram",
  "maxResults": 50,
  "proxyCountryCode": "US"
}' |
apify call receptional_blender/instagram-follower-profiles --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=receptional_blender/instagram-follower-profiles",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oQHb6UMa6I6bkTzrJ/builds/jfuaaC5p7huebKz3P/openapi.json
