Get Instagram profile engagement audit Get an engagement audit of an Instagram profile's recent posts by handle, profile URL or user id.
GET /v2/instagram/profiles/{profile}/engagement
x-api-key* string header
API key (`sfk_...`)
profile* string required path
Handle, profile URL or numeric user id.
Response fields 146 Expand all Collapse all Collapse all Endpoint-specific response payload.
`found` (an audited profile, 5 credits); `private` or `not_found` (nothing to audit, 1 credit).
one of: found, private, not_found
The profile. Null when not found.
data . profile . id
string nullable
Instagram user id.
data . profile . handle
string nullable
Username, without @.
data . profile . displayName
string nullable
Display name.
data . profile . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . profile . verified
boolean nullable
Whether the account is verified.
data . profile . privateAccount
boolean nullable
Whether the account is private.
The engagement-rate audit.
data . audit . canCalculateEngagement
boolean
False for a private or missing profile, and when the follower count isn't available.
data . audit . metrics . followers
number nullable
data . audit . metrics . averageEngagementRatePercent
number nullable
data . audit . metrics . medianEngagementRatePercent
number nullable
data . audit . metrics . averageLikesPerPost
number nullable
data . audit . metrics . averageCommentsPerPost
number nullable
data . audit . metrics . commentToLikeRatio
number nullable
data . audit . metrics . engagementVolatilityPercent
number nullable
data . audit . metrics . bestPostShortcode
string nullable
data . audit . metrics . worstPostShortcode
string nullable
data . audit . metrics . qualityLabel
string nullable
Rough directional band by follower size — not an industry benchmark.
one of: excellent, strong, moderate, low, directional, null
data . audit . metrics . qualityLabelNote
string nullable
The latest posts the audit sampled (up to 12), newest first. Empty when engagement can't be calculated.
The post. Its like, comment and play counts are the ones the rate is computed from.
data . audit . posts [] . media . id
string
Media id.
data . audit . posts [] . media . shortcode
string nullable
Shortcode used in the media URL. Null for stories.
data . audit . posts [] . media . url
string nullable
Public URL: `/reel/` for Reels, `/p/` otherwise. Null for stories.
data . audit . posts [] . media . kind
string
`post`, `reel` or `story`.
one of: post, reel, story
data . audit . posts [] . media . mediaType
string nullable
`image`, `video` or `carousel`. Null when unknown.
one of: image, video, carousel, null
data . audit . posts [] . media . caption
string nullable
Caption text.
data . audit . posts [] . media . altText
string nullable
Alt text Instagram generated or the owner wrote. Null when none or not reported.
data . audit . posts [] . media . createdAt
string nullable
When it was posted.
data . audit . posts [] . media . owner object nullable
The account that posted it. Null when unknown.
data . audit . posts [] . media . owner . id
string nullable
Instagram user id.
data . audit . posts [] . media . owner . handle
string nullable
Username, without @.
data . audit . posts [] . media . owner . displayName
string nullable
Display name.
data . audit . posts [] . media . owner . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . owner . verified
boolean nullable
Whether the account is verified.
data . audit . posts [] . media . owner . privateAccount
boolean nullable
Whether the account is private.
data . audit . posts [] . media . metrics object
Engagement counts. Null when this view doesn't report one.
data . audit . posts [] . media . metrics . likeCount
integer nullable
Likes. Null when hidden or not reported.
data . audit . posts [] . media . metrics . commentCount
integer nullable
Comments.
data . audit . posts [] . media . metrics . playCount
integer nullable
Plays, for videos. Counts Instagram plays only, not plays of a cross-posted copy on other apps.
data . audit . posts [] . media . metrics . shareCount
integer nullable
Shares.
data . audit . posts [] . media . metrics . saveCount
integer nullable
Saves.
data . audit . posts [] . media . metrics . likesHidden
boolean nullable
Whether the owner hides the like count.
data . audit . posts [] . media . imageUrl
string nullable
Image, or a video's cover image. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . thumbnailUrl
string nullable
Small preview image. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . videoUrl
string nullable
Video file. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . durationSec
number nullable
Video length in seconds, to the millisecond.
data . audit . posts [] . media . dimensions object nullable
Pixel size. Null when unknown.
data . audit . posts [] . media . dimensions . width
integer
Width in pixels.
data . audit . posts [] . media . dimensions . height
integer
Height in pixels.
data . audit . posts [] . media . carousel array nullable
Every item of a carousel, in order. Null when not a carousel.
data . audit . posts [] . media . carousel [] . id
string nullable
Media id of this item.
data . audit . posts [] . media . carousel [] . mediaType
string nullable
`image` or `video`. Null when unknown.
one of: image, video, null
data . audit . posts [] . media . carousel [] . imageUrl
string nullable
Image, or a video's cover. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . carousel [] . videoUrl
string nullable
Video file. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . carousel [] . durationSec
number nullable
Video length in seconds, to the millisecond. Null for images.
data . audit . posts [] . media . carousel [] . dimensions object nullable
Pixel size. Null when unknown.
data . audit . posts [] . media . carousel [] . dimensions . width
integer
Width in pixels.
data . audit . posts [] . media . carousel [] . dimensions . height
integer
Height in pixels.
data . audit . posts [] . media . carousel [] . altText
string nullable
Alt text Instagram generated or the owner wrote. Null when none or not reported.
data . audit . posts [] . media . audio object nullable
Music or original audio. On a story, the music sticker. Null when none.
data . audit . posts [] . media . audio . id
string nullable
Audio id.
data . audit . posts [] . media . audio . title
string nullable
Song or sound title.
data . audit . posts [] . media . audio . artist
string nullable
Artist name.
data . audit . posts [] . media . audio . isOriginal
boolean nullable
Whether it is original audio rather than licensed music.
data . audit . posts [] . media . audio . artistHandle
string nullable
Username of the account behind original audio.
data . audit . posts [] . media . coauthors array
Collab co-authors. Empty when none.
data . audit . posts [] . media . coauthors [] . id
string nullable
Instagram user id.
data . audit . posts [] . media . coauthors [] . handle
string nullable
Username, without @.
data . audit . posts [] . media . coauthors [] . displayName
string nullable
Display name.
data . audit . posts [] . media . coauthors [] . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . coauthors [] . verified
boolean nullable
Whether the account is verified.
data . audit . posts [] . media . coauthors [] . privateAccount
boolean nullable
Whether the account is private.
data . audit . posts [] . media . taggedUsers array nullable
Accounts tagged in the media. Empty when none. Null when this view doesn't carry tags.
data . audit . posts [] . media . taggedUsers [] . id
string nullable
Instagram user id.
data . audit . posts [] . media . taggedUsers [] . handle
string nullable
Username, without @.
data . audit . posts [] . media . taggedUsers [] . displayName
string nullable
Display name.
data . audit . posts [] . media . taggedUsers [] . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . taggedUsers [] . verified
boolean nullable
Whether the account is verified.
data . audit . posts [] . media . taggedUsers [] . privateAccount
boolean nullable
Whether the account is private.
data . audit . posts [] . media . location object nullable
Tagged location. Null when none.
data . audit . posts [] . media . location . id
string nullable
Location id.
data . audit . posts [] . media . location . name
string nullable
Place name.
data . audit . posts [] . media . location . lat
number nullable
Latitude.
data . audit . posts [] . media . location . lng
number nullable
Longitude.
data . audit . posts [] . media . isPaidPartnership
boolean nullable
Whether it is labelled as a paid partnership.
data . audit . posts [] . media . sponsors array nullable
Brands named in the paid-partnership label. Empty when it is not a partnership. Null when this view doesn't say.
data . audit . posts [] . media . sponsors [] . id
string nullable
Instagram user id.
data . audit . posts [] . media . sponsors [] . handle
string nullable
Username, without @.
data . audit . posts [] . media . sponsors [] . displayName
string nullable
Display name.
data . audit . posts [] . media . sponsors [] . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . sponsors [] . verified
boolean nullable
Whether the account is verified.
data . audit . posts [] . media . sponsors [] . privateAccount
boolean nullable
Whether the account is private.
data . audit . posts [] . media . commentsDisabled
boolean nullable
Whether the owner turned comments off. Null when this view doesn't say.
data . audit . posts [] . media . isPinned
boolean nullable
Whether the owner pinned it to their profile (to the Reels tab, when listed there). Null when this view doesn't say.
data . audit . posts [] . media . story object nullable
Story-only details. Null for posts and Reels.
data . audit . posts [] . media . story . expiresAt
string nullable
When the story expires, or expired for a story kept in a highlight.
data . audit . posts [] . media . story . linkStickers array
Link stickers.
data . audit . posts [] . media . story . linkStickers [] . url
string
Link destination: the address the sticker opens, not Instagram's redirect.
data . audit . posts [] . media . story . linkStickers [] . displayUrl
string nullable
Text shown on the sticker. Can be null on a profile's first lookup.
data . audit . posts [] . media . story . mentions array
Accounts mentioned. On a profile's first lookup, an account's `id`, `avatarUrl` and `verified` can be null.
data . audit . posts [] . media . story . mentions [] . id
string nullable
Instagram user id.
data . audit . posts [] . media . story . mentions [] . handle
string nullable
Username, without @.
data . audit . posts [] . media . story . mentions [] . displayName
string nullable
Display name.
data . audit . posts [] . media . story . mentions [] . avatarUrl
string nullable
Profile picture. Instagram CDN URL; it expires after a while.
data . audit . posts [] . media . story . mentions [] . verified
boolean nullable
Whether the account is verified.
data . audit . posts [] . media . story . mentions [] . privateAccount
boolean nullable
Whether the account is private.
data . audit . posts [] . media . story . sharedMedia object nullable
The post or Reel the story re-shares. Null when none.
data . audit . posts [] . media . story . sharedMedia . id
string
Media id of the shared post or Reel.
data . audit . posts [] . media . story . sharedMedia . shortcode
string
Shortcode of the shared post or Reel.
data . audit . posts [] . engagementRatePercent
number nullable
(likes + comments) / followers * 100. Null when the post is skipped.
data . audit . posts [] . isOutlierHigh
boolean
Whether the rate is far above the sample's average.
data . audit . posts [] . isOutlierLow
boolean
Whether the rate is far below the sample's average.
data . audit . posts [] . skipReason
string nullable
Why the post is left out of the averages: `likes_hidden`, `comments_hidden` or `likes_and_comments_hidden`. Null when it is counted.
data . audit . contentSegments array
Average rate by post type. Empty when engagement can't be calculated.
data . audit . contentSegments [] . mediaType
string nullable
`image`, `video` or `carousel`. Null groups posts of unknown type.
one of: image, video, carousel, null
data . audit . contentSegments [] . postCount
integer
Counted posts of this type.
data . audit . contentSegments [] . averageEngagementRatePercent
number nullable
data . audit . sampleCoverage object
How many of the recent posts had usable engagement counts.
data . audit . sampleCoverage . totalRecentPosts
integer
data . audit . sampleCoverage . usablePosts
integer
data . audit . sampleCoverage . skippedPosts
integer
data . audit . sampleCoverage . skippedReasons object
data . audit . sampleCoverage . skippedReasons . missingLikes
integer
data . audit . sampleCoverage . skippedReasons . missingComments
integer
data . audit . sampleCoverage . skippedReasons . missingBoth
integer
data . audit . formulaDescription
string
How the rate is computed.
data . audit . dataFreshnessNote
string nullable
The dates the sample covers. Null without posts.
Best-effort AI narrative over the audit. Null for a private or missing profile, and when generation was unavailable or failed; it never blocks or fails the request.
data . audit . insight . headlineInsight
string
data . audit . insight . engagementAssessment
string
data . audit . insight . contentPatternObservations array
data . audit . insight . contentPatternObservations []
string optional
data . audit . insight . risksAndCaveats array
data . audit . insight . risksAndCaveats []
string optional
data . audit . insight . recommendedExperiments array
data . audit . insight . recommendedExperiments []
string optional
data . audit . insight . apiUseCaseTeaser
string
Metadata about the API response.
Unique request identifier for tracing this API call.
meta . creditsCharged
integer
Credits charged for this request.
Public API version that served the response.