Fetch a user’s public Instagram story highlights — titles, cover images and every saved story item — with a single REST call. Highlights are saved stories that never expire, unlike regular 24-hour stories. No Instagram login or access token required.
Highlights are stories a user has chosen to save to their profile, grouped into named trays like "Summer", "Products" or "FAQ". Unlike regular stories, highlights do not expire after 24 hours — they stay pinned to the profile until the owner removes them. The InstaGapi Highlights API returns a user’s public highlight trays: pass a username or numeric user_id and get back an array of trays, each with its title, cover image, media_count, created_at / modified_at timestamps and the full list of story items inside.
Every item in a tray is a story object with its media_type, thumbnail_url and — for videos — video_url, plus the taken_at timestamp: the same shape you get from the Stories API, but persistent rather than ephemeral. You can also resolve a single tray straight from its share URL with /api/v1/highlight/by/url. Because the media does not vanish after a day, highlights are ideal for building a durable picture of how a brand or creator presents itself.
Never expires
Saved stories stay available
Full trays
Cover, title, count and every item
Media URLs
Image and video links per item
Just send your key in the X-Api-Key header:
curl -H "X-Api-Key: sk_live_your_key_here" \
"https://api.instagapi.com/api/v1/user/highlights/by/username?username=nike"Simplified for readability — see the docs for the full schema.
[
{
"id": "highlight:17912345678901234",
"latest_reel_media": 1772184662,
"cover_media": {
"cropped_image_version": {
"width": 640,
"height": 640,
"url": "https://scontent.cdninstagram.com/.../cover.jpg"
}
},
"user": {
"pk": "13460080",
"username": "nike",
"full_name": "Nike",
"is_verified": true
},
"title": "Summer",
"created_at": "2025-06-18T14:03:11Z",
"modified_at": "2026-02-27T08:51:02Z",
"is_pinned_highlight": false,
"media_count": 12,
"items": [
{
"pk": "3401225678901234567",
"id": "3401225678901234567_13460080",
"media_type": 1, // 1 = image, 2 = video
"thumbnail_url": "https://scontent.cdninstagram.com/.../01.jpg",
"taken_at": "2025-06-18T14:03:11Z"
}
]
}
]/api/v1/user/highlights/by/usernameGet a user’s highlights by username
/api/v1/user/highlightsGet highlights by numeric user ID
/api/v1/highlight/by/urlGet a highlight tray by its URL
Highlights act as an evergreen shopfront — product lines, lookbooks, FAQs. Pull them to see how a brand organizes its curated content.
Capture a creator’s highlight trays and their underlying media before they are edited or deleted, for records or research.
See which campaigns and themes competitors keep pinned as highlights, and how often they refresh them via modified_at.
Display a creator’s highlight reels inside your own app, media kit or dashboard using the per-item thumbnail and video URLs.
One of 60+ endpoints. Explore more in the full documentation:
Regular stories expire after about 24 hours; highlights are stories the user has saved to their profile, so they stay available until the owner removes them. This API returns those persistent highlights.
Both. Use /api/v1/user/highlights/by/username with a username, or /api/v1/user/highlights with a numeric user_id. You can also resolve a single tray from its share link with /api/v1/highlight/by/url.
A tray returns its id, title, cover_media (a cropped_image_version with width, height and url), user, created_at, modified_at, is_pinned_highlight, media_count, latest_reel_media, and an items array of the saved stories.
Yes. Each object in items is a story with its pk, id, media_type, thumbnail_url, taken_at and — for videos — a video_url, so you can read or download every clip in the tray.
Yes. Once a story is saved to a highlight it persists regardless of the 24-hour window, so the API returns it long after the original story would have disappeared.
InstaGapi returns publicly available data only and is an independent tool, not affiliated with Instagram or Meta. You are responsible for using the data in line with Instagram’s terms and any applicable laws in your jurisdiction.
Create a free account, grab your API key, and make your first request today. No credit card required.