Instagram Highlights API
List a profile's story highlights — id, title, cover, story count and dates — for a handle, a profile URL or a numeric user id.
GET /v2/instagram/profiles/{profile}/highlights1 credit Failed requests are free
About this endpoint
GET /v2/instagram/profiles/{profile}/highlights takes a handle (with or without @), a profile URL or a numeric user id. Read data.lookupStatus (found, private or not_found), then data.highlights. Each highlight has id, title, coverUrl, mediaCount, createdAt and updatedAt, always present and null when Instagram doesn't say. Some fields can be null on a profile's first lookup and filled on later ones. meta.version is v2.
Every highlight comes in one response: data.page.hasMore is always false. An account with no highlights is found with an empty list. Pass a highlight's id to GET /v2/instagram/highlights/{highlightId} for the stories inside it. Bill from meta.creditsCharged.
Instagram Highlights API FAQ
How do I list an Instagram profile's highlights with the v2 API?
Call GET /v2/instagram/profiles/{profile}/highlights 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.highlights.
How much does the Instagram Highlights API cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.
How do I get the stories inside a highlight?
Pass a highlight's id to GET /v2/instagram/highlights/{highlightId}. It returns the highlight and each story as the same media object every v2 list uses, with kind: story.
Why can mediaCount or the dates be null?
Instagram doesn't always send a highlight's size and dates, and some fields can be null on a profile's first lookup. When that happens, mediaCount, createdAt and updatedAt are null and the cover can be the small square one. A later lookup of the same profile usually fills them. The id and the title are always there.
What does an empty highlights list mean?
found with an empty data.highlights means the account exists and has no highlights. Branch on data.lookupStatus first: private means the account is private, and not_found means the profile could not be resolved.
Other Instagram endpoints
- ProfileGET /v2/instagram/profiles/{profile}
- Profile mediaGET /v2/instagram/profiles/{profile}/media
- Profile storiesGET /v2/instagram/profiles/{profile}/stories
- Profile followingGET /v2/instagram/profiles/{profile}/following
- HighlightGET /v2/instagram/highlights/{highlightId}
- Profile engagementGET /v2/instagram/profiles/{profile}/engagement
- Search reelsGET /v2/instagram/reels/search
- Search profilesGET /v2/instagram/profiles/search