# Instagram Auto Follow (`synk/instagram-auto-follow`) Actor

Automatically follow Instagram accounts in bulk with smart pacing and per-run limits that minimize action-block risk. You pay only for follows actually delivered — $0.005 each — with no monthly rental fee.

- **URL**: https://apify.com/synk/instagram-auto-follow.md
- **Developed by:** [Synk Automations](https://apify.com/synk) (community)
- **Categories:** Social media, Automation, Agents
- **Stats:** 33 total users, 1 monthly users, 100.0% runs succeeded, 5 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.40 / 1,000 account followeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 Auto Follow Actor

Automatically follow Instagram accounts with smart pacing to avoid action blocks. Uses session cookies for authentication (no password storage required!).

### Features

- **Cookie-Based Authentication**: No need to store passwords - just paste your session cookie
- **Smart Pacing**: Configurable delays between follows with random variation to mimic human behavior
- **Account Type Support**: Different limits for new/high-activity accounts vs. mature accounts
- **Rate Limit Detection**: Automatically stops when Instagram rate limits are detected
- **Multi-Language Support**: Works with Instagram in 20+ languages
- **Proxy Support**: Residential proxy configuration for better success rates
- **Detailed Logging**: Track every action and get a comprehensive summary

### How to Get Your Instagram Session Cookie

1. **Open Instagram in your browser** and log in

2. **Open Developer Tools**:
   - Chrome/Edge: Press `F12` or `Ctrl+Shift+I` (Windows) / `Cmd+Option+I` (Mac)
   - Firefox: Press `F12` or `Ctrl+Shift+I` (Windows) / `Cmd+Option+I` (Mac)

3. **Navigate to the Cookies section**:
   - Chrome/Edge: Go to `Application` tab -> `Storage` -> `Cookies` -> `https://www.instagram.com`
   - Firefox: Go to `Storage` tab -> `Cookies` -> `https://www.instagram.com`

4. **Find the `sessionid` cookie** and copy its value (long string of letters and numbers)

5. **Paste it into the input** when running the actor

**Important**: Keep your session cookie private! It gives full access to your Instagram account.

### Recommended Settings

#### New or High-Activity Accounts

- **Max follows per day**: 10-20
- **Delay between follows**: 45-60 seconds

#### Mature Accounts

- **Max follows per day**: 20-40
- **Delay between follows**: 30-45 seconds

### Input Parameters

- **sessionCookie** (required): Your Instagram session cookie (sessionid value from browser cookies)
- **usersToFollow** (required): Array of Instagram usernames to follow
- **maxFollowsPerRun** (optional, default: 20): Maximum number of accounts to follow in this run
- **delayBetweenFollows** (optional, default: 15): Time to wait between each follow action in seconds
- **randomDelayVariation** (optional, default: 5): Random variation added to delays (+-seconds)
- **accountType** (optional, default: mature): Either "new" (10-20/day) or "mature" (20-40/day)
- **proxyConfiguration** (optional): Proxy settings - residential proxies recommended

### Quick Start

1. **Get your session cookie** (see instructions above)
2. **Input your data**:
   - Paste your session cookie
   - Add Instagram usernames to follow
   - Adjust delays if needed (default is safe)
3. **Run the actor** and monitor the logs
4. **Check results** in the dataset

### Batch Processing

Want to follow 500 accounts but only do 20 at a time? Here's the easy way:

1. **First Run**:
   - Paste all 500 usernames in the input
   - Run the actor (will process first 20)

2. **Subsequent Runs**:
   - Check the "Use Cleaned Input from Previous Run" option
   - Run again (will automatically process the next 20 from remaining 480)
   - Repeat until done!

The actor automatically tracks which accounts have been followed and removes them from future runs.

### Safety Tips

1. **Start Slow**: Begin with lower daily limits and gradually increase
2. **Space Out Runs**: Don't run the actor multiple times in quick succession
3. **Mix Activities**: Use your account normally between runs
4. **Watch for Warnings**: If you see "Try again later" messages, stop immediately and wait 24-48 hours
5. **Schedule Runs**: Run during your typical active hours to appear more natural

### Output

#### Dataset (successful follows only)

The dataset contains one item per **successful** follow or follow request — you are only charged for actual follows delivered, not for accounts you already follow or for failures:

- **username**: Instagram username
- **status**: `followed` or `requested` (follow request sent to a private account)
- **success**: Boolean flag (always `true` in the dataset)
- **reason**: Explanation of the result
- **timestamp**: When the action was performed

#### Full run report (key-value store)

A complete report is saved to the key-value store under the `RUN_REPORT` key, including **every** processed user (including `already_following` and `failed`) plus a summary:

- **totalProcessed**: Total users attempted
- **successCount**: Successfully followed
- **requestedCount**: Follow requests sent (private accounts)
- **alreadyFollowingCount**: Users already being followed
- **failedCount**: Failed attempts
- **remainingUsers**: Number of users still left to follow

### Troubleshooting

#### "Session cookie is expired or invalid"

- Your session cookie may have expired
- Get a fresh cookie from your browser

#### "Rate limited - stopping actor"

- Instagram detected unusual activity
- Wait 24-48 hours before running again
- Try increasing delays in your next run

#### "Profile not found"

- The username may not exist
- Check the spelling of the username

# Actor input Schema

## `sessionCookie` (type: `string`):

Your Instagram session cookie (sessionid). Get it from browser DevTools > Application > Cookies > instagram.com > sessionid

## `usersToFollow` (type: `array`):

List of Instagram usernames to follow

## `maxFollowsPerRun` (type: `integer`):

Maximum number of accounts to follow in this run (recommended: 10-40 depending on account age)

## `delayBetweenFollows` (type: `integer`):

Time to wait between each follow action (recommended: 10-30 seconds)

## `randomDelayVariation` (type: `integer`):

Random variation added to delay (±seconds) to make activity look more human

## `accountType` (type: `string`):

Type of your Instagram account (affects daily limits)

## `proxyConfiguration` (type: `object`):

Select proxies to be used. Residential proxies are recommended for Instagram to avoid blocks.

## Actor input object example

```json
{
  "maxFollowsPerRun": 20,
  "delayBetweenFollows": 15,
  "randomDelayVariation": 5,
  "accountType": "mature"
}
```

# Actor output Schema

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

No description

## `runReport` (type: `string`):

No description

# 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 = {
    "maxFollowsPerRun": 20,
    "delayBetweenFollows": 15,
    "randomDelayVariation": 5,
    "accountType": "mature"
};

// Run the Actor and wait for it to finish
const run = await client.actor("synk/instagram-auto-follow").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 = {
    "maxFollowsPerRun": 20,
    "delayBetweenFollows": 15,
    "randomDelayVariation": 5,
    "accountType": "mature",
}

# Run the Actor and wait for it to finish
run = client.actor("synk/instagram-auto-follow").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 '{
  "maxFollowsPerRun": 20,
  "delayBetweenFollows": 15,
  "randomDelayVariation": 5,
  "accountType": "mature"
}' |
apify call synk/instagram-auto-follow --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,synk/instagram-auto-follow"
        }
    }
}

```

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/vq4oIJJsbEpO0tmGE/builds/hTWmcvmv9XetdKfo7/openapi.json
