# Instagram Influencer Engagement Scraper (`kindly_accordion/instagram-influencer-engagement-scraper`) Actor

Instagram Influencer Engagement Scraper analyzes public Instagram usernames and returns creator-ready insights from profile, feed, and clips data, including engagement rates, content mix, and coverage quality for faster influencer vetting and campaign decisions.

- **URL**: https://apify.com/kindly\_accordion/instagram-influencer-engagement-scraper.md
- **Developed by:** [neyati](https://apify.com/kindly_accordion) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 7 total users, 6 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $40.00 / 1,000 processed usernames

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Influencer Engagement Scraper

> **Turn Instagram handles into decision-ready creator intelligence — no spreadsheets, no manual work.**

Feed this Actor one or more public Instagram usernames. It returns a clean, structured engagement profile for each creator: follower snapshot, content performance across feed and Reels, engagement rates, and quality coverage signals — all in a single dataset record per creator.

Built for marketing teams, talent agencies, and growth analysts who need **reliable creator data at scale**, not just follower counts.

---

### ✦ What This Actor Actually Delivers

Most scrapers dump raw post data and leave the analysis to you. This Actor does the work upstream.

For every username you submit, it:

1. **Fetches the public profile** — followers, following, post count, verified status, external URL
2. **Collects up to 72 feed posts and 36 Reels/clips** — the two content types Instagram treats differently
3. **Calculates engagement separately for each format** — because mixing feed and Reels into one rate produces meaningless numbers
4. **Reports coverage signals** — so you know how much of the sample had usable view data before trusting the metrics
5. **Packages everything into one clean dataset record** — ready to export, query, or plug into a dashboard

The result is a **creator intelligence snapshot**, not a pile of raw API output.

---

### 🎯 Who This Is For

| Use Case | What You Get |
|---|---|
| **Influencer vetting** | Engagement rates and content skew before you reach out |
| **Campaign planning** | Compare multiple creators side-by-side with consistent metrics |
| **Competitor monitoring** | Track content strategy and engagement trends over time |
| **Creator scorecards** | Build internal benchmarks with standardized output |
| **AI & reporting workflows** | Clean JSON structure that feeds directly into downstream tools |

---

### 📦 Output Structure Explained

Each processed username returns one dataset record with three sections.

#### `creator` — Profile Snapshot

The public account data captured at run time.

```json
"creator": {
  "id": "123456789",
  "username": "creator_handle",
  "fullName": "Creator Name",
  "followersCount": 250000,
  "followsCount": 420,
  "verified": true,
  "postsCount": 812,
  "profilePicUrl": "https://...",
  "external_url": "https://..."
}
````

| Field | What It Tells You |
|---|---|
| `followersCount` | Audience size at time of run |
| `followsCount` | Following count — useful for audience-to-following ratio checks |
| `verified` | Whether the account holds a Meta verification badge |
| `postsCount` | Total lifetime posts on the account |
| `external_url` | Link in bio — often reveals brand affiliations or personal sites |

***

#### `engagement` — Performance Metrics

The core of the dataset. Every metric is computed from the actual content sample retrieved, not estimated.

```json
"engagement": {
  "overall_interactions": 125912,
  "clips_engagement_rate_by_views": 3.28,
  "feed_avg_engagement_rate_by_followers": 0.41,
  "clips_avg_views": 24500.2,
  "feed_avg_engagement": 1015.1,
  "clips_avg_engagement": 2674.5,
  "posts_contribution_pct": 60,
  "clips_contribution_pct": 40,
  "engagement_skew_clips_over_feed": 2.635,
  "avg_interactions_per_content": 1678.826667,
  "interactions_per_1k_followers": 503.648
}
```

##### Metric-by-Metric Breakdown

**`overall_interactions`**
The raw sum of all likes and comments across every feed post and clip in the sample. Think of this as the total engagement volume — a signal of the creator's absolute reach and activity level, before any rate calculations.

**`feed_avg_engagement_rate_by_followers` (%)**
Average engagement per feed post, divided by follower count, expressed as a percentage. This is the industry-standard feed engagement rate. Benchmark it against typical ranges for the creator's tier:

- Nano (< 10K followers): 3–6%
- Micro (10K–100K): 1–3%
- Macro (100K–1M): 0.5–1.5%
- Mega (1M+): 0.1–0.5%

A rate below these ranges can indicate an inflated or disengaged audience.

**`clips_engagement_rate_by_views` (%)**
Average engagement per Reel, divided by view count — not followers. This is the correct denominator for Reels because views are the primary distribution unit on that surface. A rate above 2% is generally considered strong for Reels.

**`clips_avg_views`**
Average views per Reel across the sample. A key reach signal for Reels-first creators. High views with low engagement rate can indicate passive viewers rather than an engaged community.

**`feed_avg_engagement`**
Average raw interactions (likes + comments) per feed post. Useful for understanding content resonance without follower-count distortion, especially when comparing creators with similar follower counts.

**`clips_avg_engagement`**
Average raw interactions per Reel. Compare this against `feed_avg_engagement` to immediately see which format drives more interaction for this creator.

**`posts_contribution_pct` / `clips_contribution_pct`**
The percentage of the content sample made up by feed posts versus Reels. A creator with 80% clips contribution is primarily a Reels-first account — important context for campaign format decisions.

**`engagement_skew_clips_over_feed`**
The ratio of clips average engagement to feed average engagement. A value above 1.0 means Reels outperform feed posts. A value below 1.0 means feed is stronger. In the example above, `2.635` means Reels drive 2.6× more engagement per piece of content than feed posts.

Use this to answer: *"Should I brief this creator for a Reel or a static post?"*

**`avg_interactions_per_content`**
Average interactions across all content types combined — feed and clips pooled. A format-agnostic engagement volume signal useful for quick cross-creator comparisons.

**`interactions_per_1k_followers`**
Total interactions across the sample, normalized per 1,000 followers. This is the most useful single number for comparing creators across different audience sizes. Higher is always better.

***

#### `coverage` — Data Quality Signals

Before trusting any metric, check coverage. It tells you how much of the sample had usable data.

```json
"coverage": {
  "total_items": 111,
  "clips_count": 36,
  "feed_count": 75,
  "clips_view_coverage": 1,
  "feed_view_coverage": 0
}
```

| Field | What It Tells You |
|---|---|
| `total_items` | Total content pieces in the sample (feed + clips) |
| `clips_count` | Number of Reels retrieved |
| `feed_count` | Number of feed posts retrieved |
| `clips_view_coverage` | Share of clips with available view data (0–1). `1` = full coverage, `0` = no views returned |
| `feed_view_coverage` | Share of feed posts with view data. Often 0 — Instagram does not consistently expose feed view counts |

A `clips_view_coverage` of `0` means the clips engagement rate was calculated on a limited sample — treat that metric with more caution. A `feed_view_coverage` of `0` is expected and normal.

***

### 🚀 How to Run It

1. Open the Actor in **Apify Console** and go to the **Input** tab
2. Add one or more Instagram usernames to the `usernames` array — no `@` prefix needed
3. Click **Start**
4. The Actor validates access before scraping begins
5. Open the **Dataset** tab to review and export results

**Input format:**

```json
{
  "usernames": ["natgeo", "nasa", "bulebarbie_official"]
}
```

**Free plan:** 1 username per day, returns 1 engagement result.\
**Paid plan:** Full username list, runs until complete or spending limit is reached.

**Export formats:** JSON · CSV · Excel · XML · HTML

***

### 💡 Tips for Getting the Most Out of Results

- **Compare `feed_avg_engagement` vs `clips_avg_engagement`** side by side to determine the creator's strongest format before deciding on deliverable type
- **Use `interactions_per_1k_followers`** as your primary comparison metric when evaluating creators of different sizes — it removes audience-size bias
- **Check `clips_view_coverage` before citing `clips_engagement_rate_by_views`** — a coverage of `0.3` means only 30% of clips had view data, making the rate less reliable
- **Watch `engagement_skew_clips_over_feed`** — a value above 2.0 signals a Reels-dominant creator; a value below 0.8 signals a feed-first creator
- **Submit your highest-priority usernames first** if you're on the free plan
- **Start small on paid runs** — test with 5–10 accounts, validate the output matches your needs, then scale

***

### 💰 Pricing

Cost scales with the number of usernames and the volume of content each profile has. Free users get one username per day. Paid users can run the full list within their spending limit.

Start small, validate output quality, then scale. The Actor is designed to be cost-efficient by fetching only the content needed to compute reliable engagement metrics.

***

### ⚠️ Disclaimers

- This Actor processes **public Instagram profiles only**. Private accounts are not accessible and will produce a logged failure record in the dataset.
- You are responsible for using output in compliance with applicable laws, Instagram's Terms of Service, and your organization's data policies.
- Metrics are computed from sampled content. Results reflect the sample window, not all-time account performance.
- View data availability on feed posts is limited by Instagram's API — `feed_view_coverage` of `0` is expected behavior, not a bug.

***

### 🛠 Support

For questions, bugs, or feature requests, use the **Apify Actor Issues** tab on this Actor's page.

If you need a custom output shape, different metric definitions, or a tailored workflow built on this Actor, that option is available — reach out via the Issues tab.

# Actor input Schema

## `usernames` (type: `array`):

One or more public Instagram usernames to analyze. Provide handles without @.

## Actor input object example

```json
{
  "usernames": [
    "bulebarbie_official"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `run` (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 = {
    "usernames": [
        "bulebarbie_official"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kindly_accordion/instagram-influencer-engagement-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 = { "usernames": ["bulebarbie_official"] }

# Run the Actor and wait for it to finish
run = client.actor("kindly_accordion/instagram-influencer-engagement-scraper").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 '{
  "usernames": [
    "bulebarbie_official"
  ]
}' |
apify call kindly_accordion/instagram-influencer-engagement-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Influencer Engagement Scraper",
        "description": "Instagram Influencer Engagement Scraper analyzes public Instagram usernames and returns creator-ready insights from profile, feed, and clips data, including engagement rates, content mix, and coverage quality for faster influencer vetting and campaign decisions.",
        "version": "0.0",
        "x-build-id": "0vPDCmkY7QDle35ZU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kindly_accordion~instagram-influencer-engagement-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kindly_accordion-instagram-influencer-engagement-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/kindly_accordion~instagram-influencer-engagement-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kindly_accordion-instagram-influencer-engagement-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/kindly_accordion~instagram-influencer-engagement-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kindly_accordion-instagram-influencer-engagement-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "usernames"
                ],
                "properties": {
                    "usernames": {
                        "title": "Instagram Usernames",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "One or more public Instagram usernames to analyze. Provide handles without @.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
