# Instagram Fake Follower Check - Audience Quality Score (`benthepythondev/instagram-audience-quality-score`) Actor

Audience quality score for any public Instagram account: samples 100 people from its audience, looks up each profile and returns the share of likely fake or bot accounts, a 0-100 score, an A-F grade and the reasons, plus every sampled account. $0.30 per audit, no login needed.

- **URL**: https://apify.com/benthepythondev/instagram-audience-quality-score.md
- **Developed by:** [Ben](https://apify.com/benthepythondev) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $255.00 / 1,000 audience audits

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?

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 Fake Follower Check: Audience Quality Score

This Actor tells you how much of an Instagram account's audience looks real. Give it a username and it samples 100 people from that account's audience, looks up each of their profiles, and returns one report: the share of likely fake or bot accounts, a 0 to 100 audience quality score, an A to F grade, the three most common reasons, and every sampled account with the signals it showed. One audit costs $0.30 and needs no login.

### Who is it for?

Brands and agencies checking an influencer before they pay for a post, creators who want proof their audience is real, and analysts comparing accounts in a niche.

### What does one audit return?

One row per audited account, for example (humansofny, 100 commenters sampled, 2026-10-30):

| Field | Example |
|---|---|
| audience_quality_score | 75.0 |
| grade | B |
| suspicious_share_pct | 25.0 |
| top_reasons | "29 of 100 has fewer than 10 followers", "25 of 100 follows 1,000+ accounts but has under a tenth as many followers", "23 of 100 username carries a run of 4+ digits" |
| generic_comment_share_pct | 58.1 (emoji-only or stock praise comments) |
| private_share_pct | 25.0 |
| sample | 100 accounts with followers, following, has_posts, private, verified, signals and suspicion points |

The same run scored natgeo 99.0 (grade A, 1 of 100 suspicious). Missing, private or unreadable accounts produce no row and cost nothing.

### How is the score worked out?

Each sampled account collects points for signals that bought followers and bots tend to share:

| Signal | Points |
|---|---|
| Account no longer exists or is hidden | 60 |
| Has never posted | 30 |
| Follows 1,000+ accounts but has under a tenth as many followers | 30 |
| No profile picture | 25 |
| Fewer than 10 followers | 20 |
| No name and no bio | 15 |
| Username with a run of 4 or more digits | 15 |

An account with 50 or more points counts as suspicious. Verified accounts are never flagged, and a private account is not judged on posts it hides. The quality score is 100 minus the suspicious share; grades are A from 85, B from 70, C from 55, D from 40, F below. Every row shows which signals fired, so you can check any flag yourself. It is a heuristic screen, not proof that an account is fake.

### Which audience is sampled?

Without a login, the sample is the people who comment on the account's latest 12 posts, because Instagram shows comments to visitors but not follower lists. That measures the engaged audience, which is where bought engagement and bot comments show up. If you add your own Instagram `sessionid` cookie (optional, stored as a secret input), the sample is the account's newest followers instead, and the report adds an estimated real follower count. Use a spare account for that: Instagram may limit accounts that read many follower lists.

### How much does it cost?

$0.30 per audited account on the free plan (down to $0.255 on higher Apify plans), whatever the sample size up to 200. Auditing 10 influencers costs $3.00. There is no charge per sampled follower.

### How does it compare?

Follower list scrapers such as the Instagram Followers/Following Scraper export raw lists and leave the scoring to you. Other fake follower checkers on Apify charge per scored follower on top of a report fee (for example $0.99 per report plus $0.005 per follower, or $0.05 per account plus $0.005 per follower). This Actor charges one flat price per audit, scores the people who actually engage when there is no login, and shows the reason behind every flag.

### Input

```json
{ "usernames": ["humansofny", "https://www.instagram.com/natgeo/"], "sampleSize": 100, "includeSample": true }
```

### Limits

Instagram does not show visitors the follower list or post count, so without a session the sample is commenters and "has never posted" is read from the account's post grid. Accounts with few public comments give a smaller sample; the row then carries a note. A private account can only be audited with a session cookie.

# Actor input Schema

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

Usernames, @handles or profile links, such as humansofny or https://www.instagram.com/natgeo/. One audit (one charge) per account.

## `sampleSize` (type: `integer`):

How many audience accounts are looked up and scored. 100 gives a score within about 10 points; the price per audit is the same.

## `includeSample` (type: `boolean`):

Adds every sampled account with its signals to the report row, so each flag can be checked by hand.

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

Leave empty to sample the people who comment on the latest posts (no login). With your own sessionid cookie the sample is the account's newest followers and the report adds an estimated real follower count. Use a spare account: Instagram may limit accounts that read many follower lists.

## Actor input object example

```json
{
  "usernames": [
    "humansofny"
  ],
  "sampleSize": 100,
  "includeSample": true
}
```

# Actor output Schema

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

No description

## `summary` (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": [
        "humansofny"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/instagram-audience-quality-score").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": ["humansofny"] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,benthepythondev/instagram-audience-quality-score"
        }
    }
}
```

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/yeJnWSjGO88chKUau/builds/AtnehpapunSLxnwbU/openapi.json
