Instagram Scraper API guides

How to Calculate Instagram Engagement Rate (Formula + Free Tool)

The real engagement-rate formula, what counts as a good rate by follower size, and how to compute it for any public account from its recent posts - by hand, with a free calculator, or in a few lines against the API.

Engagement rate is the single number people use to judge whether an account's audience actually pays attention. It needs two things: the follower count and the likes and comments on recent posts. For one account, the free Instagram engagement rate calculator does it in your browser; to run it across many accounts, the API returns the same numbers as JSON.

Get your API key on RapidAPI

The formula

Engagement rate = average (likes + comments) per recent post ÷ followers × 100. Average over the last 10-12 posts so a viral outlier or a quiet week doesn't skew it. Saves and shares aren't public, so likes and comments are what any outside tool can actually measure.

What counts as a good rate

It falls as accounts grow. Roughly: nano (1-10k) often 3-8%, mid-tier (10-100k) 1.5-4%, large (500k+) frequently under 1%. Compare an account to others of its size, not to a flat benchmark.

Pull the numbers via the API

/v1/profile/about gives the follower count and /v1/profile/posts gives recent posts with like_count and comment_count. Average the engagement, divide by followers, and you have the rate.

Why recent posts, not lifetime

Lifetime averages bury current performance under years of old posts and a smaller past audience. Recent posts measure the audience the account has now - which is also why buying followers tanks the rate.

Full example (Python)

import statistics, requests
# Get an API key: https://rapidapi.com/goodstobkal-goodstobkal-default/api/instagram-scraper57
HOST = "YOUR-API-HOST.p.rapidapi.com"
HEADERS = {"x-rapidapi-key": "YOUR_RAPIDAPI_KEY", "x-rapidapi-host": HOST}
BASE = f"https://{HOST}"
USER = "nasa"

about = requests.get(f"{BASE}/v1/profile/about", headers=HEADERS,
                     params={"username_or_url": USER}).json()
followers = about["follower_count"]

posts = requests.get(f"{BASE}/v1/profile/posts", headers=HEADERS,
                     params={"username_or_url": USER, "count": 12}).json()["posts"]

eng = [p["like_count"] + p["comment_count"] for p in posts]
rate = statistics.mean(eng) / followers * 100
print(f"{USER}: {rate:.2f}% engagement over {len(posts)} posts")

Replace YOUR-API-HOST and YOUR_RAPIDAPI_KEY with the values from the listing's Endpoints tab on RapidAPI.

Frequently asked questions

What is a good engagement rate on Instagram?

Roughly over 6% excellent, 3-6% strong, 1-3% average, under 1% low - but it drops as follower count rises, so compare like-for-like sizes.

How do I calculate it without coding?

Paste the profile into the free engagement rate calculator; it reads recent posts and returns the rate, a benchmark and a rough sponsored-post price.

Does engagement rate include views?

The standard rate uses likes and comments only. Views exist for reels and video and can be tracked separately, but aren't part of the usual formula.

More guides