Instagram Bot Detector avatar

Instagram Bot Detector

Pricing

Pay per event

Go to Apify Store
Instagram Bot Detector

Instagram Bot Detector

๐Ÿค– Audit Instagram profiles for fake-follower and bot-like risk with transparent scores, engagement signals, and reason tags.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

4 days ago

Last modified

Share

Audit Instagram profiles for fake-follower and bot-risk signals with transparent, CSV-friendly heuristics.

What does Instagram Bot Detector do?

Instagram Bot Detector checks public Instagram profiles and returns one audit row per profile.

It calculates profile-level signals such as follower/following balance, post count, recent engagement, and unusual activity patterns.

It then produces a botScore from 0 to 1, a riskLevel, a confidence value, and machine-readable reasonTags.

The actor is designed for influencer vetting, creator screening, and repeat portfolio monitoring.

Who is it for?

Influencer marketing agencies can screen creator shortlists before outreach.

Brand partnerships teams can compare sponsorship candidates before committing budget.

Creator platforms can run lightweight account-quality checks during onboarding.

Marketplaces can add a transparent review step before sending profiles to human reviewers.

Analysts can export audit rows to spreadsheets, BI tools, or CRM workflows.

Why use this actor?

๐Ÿค– It focuses on bot-risk analysis, not raw Instagram scraping.

๐Ÿ“Š It returns flat rows that are easy to filter and export.

๐Ÿง  It includes reason tags instead of an opaque score only.

๐Ÿ” It supports bulk usernames and profile URLs.

โš ๏ธ It keeps unavailable/private results visible instead of silently hiding them.

What data can I extract?

FieldDescription
usernameInstagram handle that was audited
profileUrlCanonical Instagram profile URL
statusok, private, unavailable, or error
displayNamePublic display name when available
bioPublic biography text when available
followersPublic follower count
followingPublic following count
postsCountPublic media count
isPrivateWhether Instagram marks the account private
isVerifiedWhether Instagram marks the account verified
recentPostsSampledNumber of recent posts used for engagement signals
avgLikesAverage likes across sampled recent posts
avgCommentsAverage comments across sampled recent posts
engagementRate(avgLikes + avgComments) / followers
followerFollowingRatioFollowers divided by following
postFrequencySignalsPosting cadence flags
botScoreHeuristic bot-risk score from 0 to 1
riskLevellow, medium, high, or unknown
confidenceConfidence in the available evidence
reasonTagsTransparent reasons behind the score
sampledAtAudit timestamp

How much does it cost to detect Instagram bots?

The actor uses pay-per-event pricing.

There is a small run start event and a per-profile audit event.

The target price is about $0.50 per 1,000 audited profiles before subscription-tier discounts.

Large runs are usually cheaper per profile because the fixed start event is spread across more audits.

Always check the Apify pricing panel for the live tiered price before running large batches.

How to use Instagram Bot Detector

  1. Open the actor on Apify.

  2. Add Instagram usernames such as instagram, natgeo, or @creatorname.

  3. Optionally add profile URLs such as https://www.instagram.com/instagram/.

  4. Keep the default profile limit low for your first test.

  5. Run the actor.

  6. Open the dataset and review botScore, riskLevel, confidence, and reasonTags.

  7. Export the dataset to CSV, JSON, Excel, or your preferred integration.

Input options

Instagram usernames

Use this field for plain handles.

The actor accepts usernames with or without the @ prefix.

Duplicate usernames are removed automatically.

Instagram profile URLs

Use this field when your source data already stores full profile URLs.

The actor extracts the username from standard Instagram profile URLs.

Post, reel, TV, and story URLs are not profile audits and are ignored.

Maximum profiles

This caps the number of unique profiles processed in a run.

Use a small number for testing and increase the limit after checking output quality.

Recent posts to sample

This controls how many recent public post edges are used for engagement calculations.

Higher values can improve confidence when the profile data includes recent post edges.

Private or restricted profiles may return zero sampled posts.

Proxy mode

Instagram can block anonymous data-center traffic.

The recommended setting uses Apify Residential Proxy when available.

You can disable proxy mode for local testing or when your own session cookie is enough.

Optional Instagram session

You can provide your own Instagram sessionid cookie if public requests are blocked.

Use only accounts and cookies you are authorized to use.

The cookie is marked secret in the input schema.

Example input

{
"usernames": ["instagram", "natgeo"],
"profileUrls": [{ "url": "https://www.instagram.com/instagram/" }],
"maxProfiles": 10,
"maxRecentPosts": 12,
"proxyGroup": "AUTO",
"countryCode": "US"
}

Example output

{
"username": "instagram",
"profileUrl": "https://www.instagram.com/instagram/",
"status": "ok",
"followers": 600000000,
"following": 100,
"postsCount": 8000,
"recentPostsSampled": 12,
"engagementRate": 0.0032,
"botScore": 0.12,
"riskLevel": "low",
"confidence": 0.82,
"reasonTags": ["verified_account", "established_post_history"],
"sampledAt": "2026-06-20T12:00:00.000Z"
}

How is the bot score calculated?

The score is a transparent heuristic, not a legal or identity claim.

The actor adds risk when it sees patterns that often deserve manual review.

Examples include following far more accounts than follow back, very low engagement for a large audience, very few posts for a high follower count, or likes without comments.

The actor reduces risk when it sees verified status, established post history, or healthy engagement.

The exact reason tags are included so your team can decide whether the score makes sense for the profile.

Confidence and limitations

confidence measures how much evidence was available.

Public profiles with followers, following, media count, and sampled posts usually receive higher confidence.

Private profiles, unavailable profiles, and login-restricted responses receive lower confidence.

Instagram changes access rules often, so some profiles may need a session cookie or may return an unavailable row.

Use the actor as a screening tool, not as the only decision source.

Tips for better results

Run a small test batch first.

Review profiles with medium or high risk manually.

Use reasonTags to build your own review rules.

Compare repeated runs over time for sudden follower or engagement changes.

Keep maxRecentPosts at 12 for a balanced first audit.

Use a session cookie only when you understand Instagram's terms and your own compliance requirements.

Integrations

Send the dataset to Google Sheets for quick influencer shortlists.

Connect results to a CRM and mark high-risk creators for manual review.

Trigger a webhook when a monitored creator crosses a risk threshold.

Export CSV files for agency campaign planning.

Combine the actor with other automation-lab Instagram actors when you need raw posts, comments, or media after the risk screen.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/instagram-bot-detector').call({
usernames: ['instagram', 'natgeo'],
maxProfiles: 10,
maxRecentPosts: 12,
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/instagram-bot-detector').call(run_input={
'usernames': ['instagram', 'natgeo'],
'maxProfiles': 10,
'maxRecentPosts': 12,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~instagram-bot-detector/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"usernames":["instagram","natgeo"],"maxProfiles":10,"maxRecentPosts":12}'

MCP usage

Use this actor from Claude Desktop, Claude Code, or any MCP-compatible client through Apify MCP.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/instagram-bot-detector

Claude Code setup:

$claude mcp add apify-instagram-bot-detector https://mcp.apify.com/?tools=automation-lab/instagram-bot-detector

Claude Desktop JSON config:

{
"mcpServers": {
"apify-instagram-bot-detector": {
"url": "https://mcp.apify.com/?tools=automation-lab/instagram-bot-detector"
}
}
}

Example prompts:

  • "Audit these Instagram usernames for bot-risk signals and return high-risk profiles only."

  • "Run Instagram Bot Detector for this creator shortlist and summarize the reason tags."

  • "Compare the bot scores from this week's run with last week's exported dataset."

Error handling

If a profile cannot be fetched, the actor returns a dataset row with status: unavailable or status: error.

This keeps bulk audits easy to reconcile because every requested profile can still appear in the export.

Check errorMessage for profile-specific details.

FAQ

Can this prove that an account is a bot?

No. It is a transparent risk screen for manual review, not a definitive identity judgment.

Does it require login?

Many public profiles work without a cookie when proxy access is available, but Instagram can require login for some requests.

Troubleshooting

Why did I get unavailable profiles?

Instagram may require login, block a request, rate-limit traffic, or hide a private/suspended profile.

Try a smaller batch, use Residential Proxy, or provide an authorized sessionid cookie.

Why is recentPostsSampled zero?

The profile may be private, Instagram may omit recent media edges, or the request may have been limited.

The actor can still calculate ratio-based signals when follower/following data is available.

Is a high bot score proof of fraud?

No.

A high score means the profile deserves manual review based on transparent public signals.

Do not use the score as the sole basis for enforcement or contractual decisions.

Legality and compliance

This actor works with public profile information and optional user-provided access credentials.

You are responsible for using the actor in compliance with Instagram's terms, privacy laws, and your organization's policies.

Avoid collecting or processing personal data you do not need.

Use the output for legitimate screening, analytics, and fraud-prevention workflows.

Changelog

Initial version audits bulk Instagram usernames and profile URLs with public-profile heuristics.

Support

If a profile consistently fails, include the username, run ID, and whether you used a session cookie when contacting support.

Summary

Instagram Bot Detector helps teams prioritize manual review by turning public Instagram profile signals into explainable risk rows.