Instagram profile highlights API
List a handle's public story highlight albums — ids, titles, cover thumbnails, owner fields when present — in the shared Social Fetch envelope.
GET /v1/instagram/profiles/{handle}/highlights1 credit per successful request.
About this endpoint
Brand and creator research often needs the saved story trays on a profile, not the ephemeral 24-hour stories or the main feed. You have a username, you want every public highlight album (title plus cover art), and you need stable album ids so a later call can pull the stories inside. Scraping Instagram highlight trays yourself means chasing signed GraphQL that Meta rotates without notice.
`GET /v1/instagram/profiles/{handle}/highlights` lists public story highlight albums by handle. Pass the username in the path (with or without `@`). On a completed lookup, read `data.lookupStatus`, then `data.highlights` and `data.page`. Each album can include `id`, `title`, `coverThumbnailUrl`, `croppedCoverThumbnailUrl`, and optional `owner` fields (`platformUserId`, `handle`, `avatarUrl`). This endpoint returns the full album list in one response — `data.page.hasMore` is always false and `nextCursor` is always null.
This route lists albums only. Stories inside one album are `GET /v1/instagram/highlights/{highlightId}`. Live stories (not saved trays) are a separate Instagram path. Pricing is on the credit badge for this operation; bill from `meta.creditsCharged` on every response.
Instagram profile highlights API FAQ
How do I list Instagram highlight albums for a profile via API?
Call `GET /v1/instagram/profiles/{handle}/highlights` with your Social Fetch API key (`x-api-key`) and the Instagram username in the path. Read `data.lookupStatus`, then `data.highlights` and `data.page`. Full parameters and examples are in the API docs.
How much does the Instagram profile highlights endpoint 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.
Does profile highlights pagination use a cursor?
No. The response includes `data.page`, but this endpoint returns the full album list in one shot. `hasMore` is always false and `nextCursor` is always null — do not invent a cursor.
What fields are in each Instagram highlight album?
Items can include id, title (nullable when Instagram omits one), coverThumbnailUrl, croppedCoverThumbnailUrl, and optional owner metadata (platformUserId, handle, avatarUrl) when Instagram exposes them on the album.
Profile highlights list vs get highlight by id vs profile posts?
Use this route to list a handle's public highlight albums. Use `GET /v1/instagram/highlights/{highlightId}` when you already have an album id and need the stories inside. Use `GET /v1/instagram/profiles/{handle}/posts` for the main feed. They are separate operations on the Instagram hub.
What does an empty highlights array mean vs not_found?
Branch on `data.lookupStatus` first. `found` with an empty `data.highlights` array means the profile resolved and has no public highlight albums on this response. `not_found` means the handle could not be listed (missing or otherwise unavailable). Do not treat an empty array as a missing profile.
Do I need Instagram Graph API access to list a creator's highlights?
No. Social Fetch returns publicly visible highlight albums for enrichment-style lookups. Meta's Instagram Graph API is for accounts you manage or that grant your app access — not arbitrary public creator highlight trays.
Other Instagram endpoints
- ProfileGET /v1/instagram/profiles/{handle}
- Basic profileGET /v1/instagram/profiles/{userId}/basic
- Profile postsGET /v1/instagram/profiles/{handle}/posts
- Profile reelsGET /v1/instagram/profiles/{handle}/reels
- HighlightGET /v1/instagram/highlights/{highlightId}
- Post or reelGET /v1/instagram/posts
- CommentsGET /v1/instagram/posts/comments
- TranscriptGET /v1/instagram/posts/transcript