> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-engagement>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-profiles-profile-engagement.mdx>

---

# Instagram Engagement Rate API

An engagement-rate audit of a public profile's latest posts, with each post as the shared media object, for a handle, a profile URL or a numeric user id.

`GET /v2/instagram/profiles/{profile}/engagement` takes a handle (with or without `@`), a profile URL or a numeric user id. It reads the profile and its latest 12 posts and returns `data.lookupStatus` (`found`, `private` or `not_found`), `data.profile` (the profile summary, `null` when not found) and `data.audit`.

The audit holds `metrics` (average and median engagement rate as (likes + comments) ÷ followers × 100, average likes and comments, comment-to-like ratio, volatility, best and worst post and a directional quality label), `posts` (each sampled post as the shared media object beside its rate, outlier flags and the reason it was skipped, if it was), `contentSegments` (the average rate by `image`, `video` and `carousel`), `sampleCoverage`, the formula used and a note on the dates covered. `audit.insight` is a written summary of the numbers, or `null` if it couldn't be generated; the rest of the audit never depends on it. `canCalculateEngagement` is false for private and missing profiles. An audited profile costs 5 credits; a private or missing one has nothing to audit and costs 1 credit, with no written summary. Bill from `meta.creditsCharged`.

## Request

- **Endpoint:** `GET /v2/instagram/profiles/{profile}/engagement`
- **Credits:** 5 credits for an audited profile
1 credit when the profile is private or not found
- **Input:** by handle or user id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v2/instagram/profiles/profile/engagement/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I get an Instagram engagement rate via API?

Call `GET /v2/instagram/profiles/{profile}/engagement` with your Social Fetch API key (`x-api-key`) and a handle, profile URL or numeric user id in the path. Read `data.lookupStatus`, then `data.audit.metrics` for the rates and `data.audit.posts` for the sampled posts.

### How much does the Instagram engagement audit cost?

5 credits when the profile is found and audited. 1 credit when it is private or doesn't exist, because there is nothing to audit (and no written summary). Confirm every response with `meta.creditsCharged`, the billing source of truth.

### How is the engagement rate calculated?

For each of the latest posts with visible counts, (likes + comments) ÷ followers × 100; the audit averages them and reports the median too. Posts where Instagram hides likes or comments are listed with a `skipReason` and left out of the averages. `audit.formulaDescription` repeats the formula.

### What does a private or missing account return?

A private account returns `lookupStatus: private` with the profile Instagram shows, and an unknown one returns `not_found` with a `null` profile. In both, `audit.canCalculateEngagement` is false, `posts` is empty and the rates are `null`. Both are a normal `200` response, cost 1 credit instead of 5, and have no written summary (`audit.insight` is `null`).

### Is the written summary always there?

No. `audit.insight` is `null` for a private or missing profile, and when it couldn't be generated; a found profile's price is the same either way. The numbers don't depend on it.
