ParseForge Scrapers

Instagram Highlights Scraper

parseforge/instagram-highlights-scraper

Social mediaAutomation

Scrape Instagram story highlights from public profiles: title, cover, frame count and every photo and video with URLs, dates, duration, mentions, links. Export CSV, Excel, JSON, XML.

Run this scraper See the API call
Total runs
5
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the Instagram Highlights Scraper return?

ParseForge Banner

๐ŸŽž Instagram Highlights Scraper

๐Ÿš€ Export Instagram story highlights in seconds. One row per highlight with 25 fields, and every photo and video inside it with 16 fields each: direct image and MP4 links, the original post date, video length, mentions, link stickers, hashtags and locations. No Instagram account needed.

Instagram Highlights Scraper reads the story highlights that public Instagram accounts keep pinned on their profile. Give it usernames or profile links and it returns each highlight's title, cover, frame count and creation date, plus the complete list of frames inside it. Give it highlight links or IDs and it reads exactly those highlights.

In our test run, 10 highlights from @nasa and @instagram came back with 286 frames (199 videos, 87 photos), 25 link stickers pointing at the real destination URL, and 201 frames with account mentions. Every frame keeps the moment it was first posted as a story, so a highlight created today can still show frames from two years ago.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Social media managers, influencer marketing agencies, brand and competitor analysts, e-commerce teams, researchers, content archivists Competitor highlight audits, influencer vetting, link-in-story tracking, campaign archiving, content research, media downloads

๐Ÿ“‹ What the Instagram Highlights Scraper does

  • ๐Ÿ‘ค Profiles in, highlights out. Username, @handle or profile link. The Actor reads the profile's highlights tray in the order Instagram shows it (pinned and newest first).
  • ๐ŸŽž Every frame. Each highlight row nests all of its photos and videos: full-size image URL, MP4 URL, width and height, duration in seconds, audio flag and the original post time.
  • ๐Ÿ”— Link stickers, unwrapped. Instagram wraps story links in its own redirect. The Actor returns the real destination (https://go.nasa.gov/adoptapixel, not l.instagram.com/?u=...) plus the text shown on the sticker.
  • ๐Ÿท Mentions, hashtags and locations. Tagged accounts, hashtag stickers and location stickers with name, address and coordinates.
  • ๐Ÿ”ข Summary columns. Photo count, video count, total video seconds, link count, distinct mentioned accounts, oldest and newest frame date, so you can compare highlights without opening the nested list.
  • ๐ŸŽฏ Direct highlight links. instagram.com/stories/highlights/<id>/ links or bare IDs are read without the profile.

๐Ÿ’ก Why it matters: highlights are the one part of a profile that brands curate on purpose. Menus, launches, FAQs, reviews, promo codes and partner links live there for months, long after the 24-hour story has expired.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

๐Ÿ“Š Output

Each row is one highlight. Its frames are nested in items. Open the Frames view (or add unwind=items to the dataset API link) to get one row per photo or video instead.

Field Description
๐Ÿ–ผ imageUrl Highlight cover image
๐Ÿ†” highlightId Instagram highlight ID
๐Ÿ“Œ title Highlight title
๐Ÿ”— highlightUrl Public link to the highlight
๐Ÿ‘ค username / ๐Ÿ”— profileUrl Owner account, same fields as the ParseForge Instagram profile actors
๐Ÿ†” ownerId / ๐Ÿชช ownerFullName / โœ”๏ธ ownerIsVerified Owner ID, display name and verified badge
๐Ÿ”ข itemCount / ๐Ÿ“ฅ itemsReturned Frames in the highlight, and frames included in the row
๐Ÿ“ท imageCount / ๐ŸŽฌ videoCount / โฑ totalVideoSeconds Photo and video split, and total video length
๐Ÿ”— linkCount / ๐Ÿท mentionCount Link stickers and distinct mentioned accounts
๐Ÿ“… firstItemAt / lastItemAt / createdAt Oldest frame, newest frame, and when the highlight was created
๐Ÿ“Œ isPinned / ๐Ÿ”ข trayPosition / ๐Ÿงญ source Pinned flag, position in the profile tray (0 when requested by link), and how the highlight was found
๐ŸŽž items Every frame: imageUrl, id, mediaType, videoUrl, takenAt, takenAtTimestamp, durationSeconds, hasAudio, width, height, mentions, hashtags, links, locations, isPaidPartnership, productType
๐Ÿ•’ scrapedAt When the row was collected
โŒ error Error message on error rows, null on data rows

Three real rows from a run on @nasa and @instagram. Each items list is cut to one frame here to keep the page short; the real rows carry every frame.

[
  {
    "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.71878-15/785745361_1537318174532484_931463605431094788_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2gHtaj_N7DK8XOLXA_Y-6sWVTBxHRkAt4DXfVB31_axoepT1bmwd8vD78pROe6zdm4Fgk44n20ZLOPeEDeLYdX5F&_nc_ohc=5LPCHdaO_goQ7kNvwHcp2ci&_nc_gid=uqQwEYPLuDth6iW4QLILVg&edm=ANmP7GQBAAAA&ccb=7-5&oh=00_AQPTLSGU3s-LmRlacRuqOB2dO8_9yVUBnr6XNjamCZ6KHg&oe=6AC0DBFB&_nc_sid=982cc7",
    "highlightId": "18195781759377100",
    "title": "Roman",
    "highlightUrl": "https://www.instagram.com/stories/highlights/18195781759377100/",
    "username": "nasa",
    "profileUrl": "https://www.instagram.com/nasa/",
    "ownerId": "528817151",
    "ownerFullName": "NASA",
    "ownerIsVerified": "Yes",
    "itemCount": 9,
    "itemsReturned": 9,
    "imageCount": 0,
    "videoCount": 9,
    "totalVideoSeconds": 279.687,
    "linkCount": 1,
    "mentionCount": 1,
    "firstItemAt": "2026-08-30T11:00:53.000Z",
    "lastItemAt": "2026-08-30T13:08:03.000Z",
    "createdAt": "2026-08-30T14:33:04.000Z",
    "isPinned": "No",
    "trayPosition": 1,
    "source": "profile",
    "items": [
      {
        "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.71878-15/789979040_5075074616052230_9021066390302051949_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=106&ig_cache_key=Mzk3NTE1Mzg1OTIyMzk5OTU4Nw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IlNUT1JZLnhwaWRzLjY0MC5zZHIudmlkZW9fZGVmYXVsdF9jb3Zlcl9mcmFtZS5DMyJ9&_nc_ohc=rU1wVx7RFm4Q7kNvwGgRNRG&_nc_oc=Adok8zve9CcWHYvCndKATyrYDgf7BWVa_eWV8nFEbr-X9P2qxOdPQnXhbz9utFuzrP43KXXqdvxlUMDU0UvHlwLY&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_gid=uqQwEYPLuDth6iW4QLILVg&_nc_ss=7a22e&oh=00_AQO_ugp7klz1Vs6iBe7Le6DK2VwMkn1y9ItfwiPOsNcsCA&oe=6AC0EF10",
        "id": "3975153859223999587",
        "mediaType": "video",
        "videoUrl": "https://scontent-lim1-1.cdninstagram.com/o1/v/t2/f2/m78/AQMKSA74hL9lQMtgb1F-wlDzHwm07tACjzyrfO-7CllYwOGbFhbhHWdrcz3kwwGs2EfKBHd62y4BdHkgUPzjTT49sbL8QFE-1PBtMIE.mp4?_nc_cat=103&_nc_sid=5e9851&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_ohc=JMqX0-JPnCUQ7kNvwEsJgGg&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uU1RPUlkuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2NDI3MjQ0NDQwNDkxNTIsImFzc2V0X2FnZV9kYXlzIjoyOSwidmlfdXNlY2FzZV9pZCI6MTA4MjYsImR1cmF0aW9uX3MiOjIwLCJ1cmxnZW5fc291cmNlIjoid3d3In0%3D&ccb=17-1&vs=6f0f05d6bddba8af&_nc_vs=HBksFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzBFNDI4Nzc3MkM5MEYwODVBOTcwQjUzNkM3MTE0MDg0X3ZpZGVvX2Rhc2hpbml0Lm1wNBUAAsgBEgAVAhhRaWdfeHB2X3BsYWNlbWVudF9wZXJtYW5lbnRfdjIvREM0QTk2NTI1QkNGOEE3MzA2NEM4MkU4MUE2M0UwOEZfYXVkaW9fZGFzaGluaXQubXA0FQICyAESACgAGAAbAogHdXNlX29pbAExEnByb2dyZXNzaXZlX3JlY2lwZQExFQAAJoC8kIKx3Z1CFQIoAkMzLBdANKp--dsi0RgSZGFzaF9iYXNlbGluZV8xX3YxEQB16AdllKkBAA&_nc_gid=uqQwEYPLuDth6iW4QLILVg&_nc_ss=7a22e&_nc_zt=28&oh=00_AQO2I2CS-ZI0Y-DbWoIxN1YThS__S8iss98oJA8-CL4w5w&oe=6ABD0090",
        "takenAt": "2026-08-30T13:08:03.000Z",
        "takenAtTimestamp": 1788095283,
        "durationSeconds": 20.641,
        "hasAudio": "Yes",
        "width": 1080,
        "height": 1920,
        "mentions": [],
        "hashtags": [],
        "links": [
          {
            "url": "https://go.nasa.gov/adoptapixel",
            "displayUrl": "go.nasa.gov/adoptapixel",
            "linkTitle": "Visit Link"
          }
        ],
        "locations": [],
        "isPaidPartnership": "No",
        "productType": "story"
      }
    ],
    "scrapedAt": "2026-09-29T01:15:46.234Z",
    "error": null
  },
  {
    "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.71878-15/718648521_1211952567628335_6800572588539032748_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_cat=103&_nc_oc=Q6cZ2gHtaj_N7DK8XOLXA_Y-6sWVTBxHRkAt4DXfVB31_axoepT1bmwd8vD78pROe6zdm4Fgk44n20ZLOPeEDeLYdX5F&_nc_ohc=8HUpWUJpP0EQ7kNvwE-MhM6&_nc_gid=uqQwEYPLuDth6iW4QLILVg&edm=ANmP7GQBAAAA&ccb=7-5&oh=00_AQOQmJM_w11DB72E8PRg9kfUginQzKE8zLzQEIe_Q-dDdQ&oe=6AC0D086&_nc_sid=982cc7",
    "highlightId": "18201653992314974",
    "title": "Artemis III",
    "highlightUrl": "https://www.instagram.com/stories/highlights/18201653992314974/",
    "username": "nasa",
    "profileUrl": "https://www.instagram.com/nasa/",
    "ownerId": "528817151",
    "ownerFullName": "NASA",
    "ownerIsVerified": "Yes",
    "itemCount": 20,
    "itemsReturned": 20,
    "imageCount": 11,
    "videoCount": 9,
    "totalVideoSeconds": 312.162,
    "linkCount": 5,
    "mentionCount": 8,
    "firstItemAt": "2026-06-07T19:56:27.000Z",
    "lastItemAt": "2026-06-10T23:41:08.000Z",
    "createdAt": "2026-06-08T16:55:15.000Z",
    "isPinned": "No",
    "trayPosition": 3,
    "source": "profile",
    "items": [
      {
        "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.71878-15/719223587_2357865821409127_2900524585503862567_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=106&ig_cache_key=MzkxNTg4NDgwNjI1MjY0MzA5MA%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IlNUT1JZLnhwaWRzLjY0MC5zZHIudmlkZW9fZGVmYXVsdF9jb3Zlcl9mcmFtZS5DMyJ9&_nc_ohc=EA1T02kWcKAQ7kNvwHTZcv6&_nc_oc=AdqHYdscvxOBKaXNZ6VcL8ABjObL28EwiD2iEGxQ7etffIur0DTIDwD4DjVkXRCAT2oJbgkEYqg20u5OEZduaXby&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_gid=uqQwEYPLuDth6iW4QLILVg&_nc_ss=7a22e&oh=00_AQPAxo0bVcsK6-yTiIjCCcbnU_7YdJx-acHQB6mgK7RBxw&oe=6AC0C8FB",
        "id": "3915884806252643090",
        "mediaType": "video",
        "videoUrl": "https://scontent-lim1-1.cdninstagram.com/o1/v/t2/f2/m78/AQPiwabqGRGlCFpt7jzvy_uHj1o8oDrnQ8pGHWbx68MvlYhsUqA1dn39MdsHRB8-NES3a41-HzpiR2tqZzSRJgzqZ7kzQthO_iU0uPg.mp4?_nc_cat=107&_nc_sid=5e9851&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_ohc=n_S9RuaY_jQQ7kNvwHzHoD5&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uU1RPUlkuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2MTY1MDg4ODEwNDkxNTIsImFzc2V0X2FnZV9kYXlzIjoxMTEsInZpX3VzZWNhc2VfaWQiOjEwODI2LCJkdXJhdGlvbl9zIjoxNCwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=8ae5ec5cf869640b&_nc_vs=HBksFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0EwNDk4NUIxNzY3OThBODI1OEZGOUFBN0Y1RDBEMEJEX3ZpZGVvX2Rhc2hpbml0Lm1wNBUAAsgBEgAVAhhRaWdfeHB2X3BsYWNlbWVudF9wZXJtYW5lbnRfdjIvMDY0Mjk3MDNENDExNjBFQURFMEQ0RTkyQjFFOEZCQkRfYXVkaW9fZGFzaGluaXQubXA0FQICyAESACgAGAAbAogHdXNlX29pbAExEnByb2dyZXNzaXZlX3JlY2lwZQExFQAAJoDZgO2355FCFQIoAkMzLBdALd2yLQ5WBBgSZGFzaF9iYXNlbGluZV8xX3YxEQB16AdllKkBAA&_nc_gid=uqQwEYPLuDth6iW4QLILVg&_nc_ss=7a22e&_nc_zt=28&oh=00_AQNfql-J207AbYNDj9KeiL_nNaoyX9dKSNp61RE6GY_ZgQ&oe=6ABCE020",
        "takenAt": "2026-06-09T18:31:03.000Z",
        "takenAtTimestamp": 1781029863,
        "durationSeconds": 14.933,
        "hasAudio": "Yes",
        "width": 1080,
        "height": 1920,
        "mentions": [
          "astro_andred"
        ],
        "hashtags": [],
        "links": [
          {
            "url": "https://www.nasa.gov/people/nasa-astronaut-andre-douglas/",
            "displayUrl": "nasa.gov/people/nasa-astronaut-andre-douglas/",
            "linkTitle": "Visit Link"
          }
        ],
        "locations": [],
        "isPaidPartnership": "No",
        "productType": "story"
      }
    ],
    "scrapedAt": "2026-09-29T01:15:46.271Z",
    "error": null
  },
  {
    "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.71878-15/755331856_1609699020573638_4426177467586352650_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gFHbNlRyJzi5ac_weWxJRtg_nlzESGu8KM72bqCHmkIq2eZrVVP1mYxxFPNoIbjWfkakD3fMLNlV39TFMlF8obJ&_nc_ohc=tAcGB6_IgWIQ7kNvwEQvMem&_nc_gid=XM6JRb2PrQfJQzPkWiatIw&edm=ANmP7GQBAAAA&ccb=7-5&oh=00_AQMu3bYmZgFOu_OToBbcBowp8D5AUXKNwWmH00uQ1cFlkg&oe=6AC0DEB3&_nc_sid=982cc7",
    "highlightId": "18029499352961095",
    "title": "whatโ€™s new",
    "highlightUrl": "https://www.instagram.com/stories/highlights/18029499352961095/",
    "username": "instagram",
    "profileUrl": "https://www.instagram.com/instagram/",
    "ownerId": "25025320",
    "ownerFullName": "Instagram",
    "ownerIsVerified": "Yes",
    "itemCount": 44,
    "itemsReturned": 44,
    "imageCount": 18,
    "videoCount": 26,
    "totalVideoSeconds": 301.663,
    "linkCount": 0,
    "mentionCount": 11,
    "firstItemAt": "2026-01-26T18:57:40.000Z",
    "lastItemAt": "2026-09-10T19:59:46.000Z",
    "createdAt": "2024-04-18T16:14:01.000Z",
    "isPinned": "No",
    "trayPosition": 3,
    "source": "profile",
    "items": [
      {
        "imageUrl": "https://scontent-lim1-1.cdninstagram.com/v/t51.82787-15/621936830_18696393061001321_4751158615057691379_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=104&ig_cache_key=MzgxODc3ODI0MDg1MzY0MTAxNQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IlNUT1JZLnhwaWRzLjExNzAuc2RyLnJlZ3VsYXJfcGhvdG8uQzMifQ%3D%3D&_nc_ohc=SV9Bwc5EwxoQ7kNvwE1Rk3v&_nc_oc=AdrHInkkWB5D4pFAhhT9driN46NMZsCLp2A-eyMUiFSagd3rKcLpfP1cBw99pk_54c-L3w7IFncgHOq84u6C_Fkn&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lim1-1.cdninstagram.com&_nc_gid=XM6JRb2PrQfJQzPkWiatIw&_nc_ss=7a22e&oh=00_AQM3c-PKg0sTrPBIU2ZQs8b5N3bFPivheeyq4ivo5x0GWQ&oe=6AC0FECA",
        "id": "3818778240853641015",
        "mediaType": "image",
        "videoUrl": "N/A",
        "takenAt": "2026-01-26T18:57:40.000Z",
        "takenAtTimestamp": 1769453860,
        "durationSeconds": "N/A",
        "hasAudio": "N/A",
        "width": 1170,
        "height": 2080,
        "mentions": [
          "meta.ai"
        ],
        "hashtags": [],
        "links": [],
        "locations": [],
        "isPaidPartnership": "No",
        "productType": "story"
      }
    ],
    "scrapedAt": "2026-09-29T01:15:57.442Z",
    "error": null
  }
]

โœจ Why choose this Actor

  • ๐Ÿงพ Highlights and frames in one pass. No second tool to turn highlight IDs into media.
  • ๐Ÿ”“ No login needed. Public profiles work without an Instagram account. A session cookie is optional and only matters for profiles with more than 10 highlights.
  • ๐Ÿ”— Real link targets. Link stickers come back as the destination URL, ready for UTM and affiliate analysis.
  • ๐Ÿ“… Original post dates. takenAt is when each frame was first posted, not when it was added to the highlight.
  • ๐Ÿงฎ Ready-made counts. Photo/video split, seconds of video, links and mentions per highlight.
  • ๐Ÿงฑ Clear error rows. Private accounts, unknown usernames and deleted highlights each get a plain-English row and are never charged.

๐Ÿ“ˆ How it compares to alternatives

This Actor Highlight-by-ID tools Manual download
Input Usernames, profile links, highlight links or IDs One highlight ID per run One highlight at a time
Highlight list per profile โœ… first 10 logged out, full tray with your session cookie โŒ โœ…
Frames with image and MP4 links โœ… โœ… โœ…
Link sticker destination โœ… unwrapped URL โŒ Manual
Mentions, hashtags, locations โœ… Partial Manual
Per-highlight summary counts โœ… โŒ โŒ
Needs an Instagram account No No Yes, for most viewers

Instagram shows logged-out visitors the first 10 highlights of a profile. The Actor tells you when a profile has more, and you can read the rest with your own session cookie or by passing their highlight links.

๐Ÿš€ How to use

  1. Create a free Apify account with $5 of credit: sign up here.
  2. Open the Instagram Highlights Scraper and add usernames (nasa, @instagram) or profile links, and/or highlight links.
  3. Set Max Items to the number of highlights you want in total, and optionally cap highlights per profile or frames per highlight.
  4. Click Start. A profile with 5 highlights usually finishes in under 15 seconds.
  5. Download the results as CSV, Excel, JSON or XML, or open the Frames view for one row per photo or video.

Example:

{ "usernames": ["nasa", "instagram"], "maxItems": 10, "maxHighlightsPerProfile": 5 }

๐Ÿ’ผ Business use cases

๐Ÿ•ต๏ธ Competitor highlight audits

See which products, FAQs, reviews and promotions competitors keep pinned, how often they refresh each highlight (lastItemAt) and where their link stickers send traffic.

๐Ÿค Influencer vetting

Check whether a creator's highlights carry paid partnership frames, which brands they mention and link, and how recent their highlight content is before you sign a deal.

๐Ÿ”— Link and promo tracking

Collect every link sticker a brand has kept in its highlights, with the real destination URL, to monitor landing pages, UTM tags and discount campaigns.

๐Ÿ—‚ Campaign archiving

Save the images and MP4 files of your own or your clients' highlights with their original post dates, before they are edited or removed.

๐Ÿ”Œ Automating Instagram Highlights Scraper

  • Make and Zapier: start a run on a schedule and push new highlight rows to Google Sheets, Airtable or a CRM.
  • Slack: post a message when a competitor adds a highlight or a new link sticker appears.
  • Airbyte: load the dataset into your warehouse for trend analysis.
  • GitHub Actions: run weekly snapshots and diff the highlight list over time.
  • Google Drive: store the exported CSV or JSON files next to your reports.

๐ŸŒŸ Beyond business use cases

  • ๐ŸŽ“ Research: study how organisations use long-lived story content, or how often highlights are refreshed.
  • ๐Ÿง‘โ€๐Ÿ’ป Personal: keep an offline copy of highlights from accounts you follow for travel tips, recipes or tutorials.
  • ๐ŸŒฑ Non-profit: archive public awareness campaigns kept in highlights.
  • ๐Ÿงช Experimentation: build datasets of vertical video and story design for computer vision or design research.

๐Ÿค– Ask an AI assistant about this scraper

Paste this README into ChatGPT, Claude or Gemini and ask how to combine it with the ParseForge Instagram profile, posts and reels actors for a full account audit.

โ“ Frequently Asked Questions

๐Ÿ”‘ Do I need an Instagram account?

No. Public profiles and public highlights work logged out. The optional session cookie only unlocks highlights past the first 10 of a profile.

๐Ÿ”ข Why do I get at most 10 highlights from a profile?

That is what Instagram shows logged-out visitors. The run log says when a profile has more. Add your own session cookie, or paste the extra highlight links into Highlight links or IDs; those are read in full without a login.

๐Ÿช How do I get my session cookie, and is it safe?

Log in to instagram.com in your browser, open the developer tools, and copy the value of the sessionid cookie. The field is stored encrypted and never written to the log. Use an account you own and keep volumes reasonable.

๐ŸŽž What is one row?

One highlight. Its frames are nested inside it, so a highlight with 40 frames is still one row. Use the Frames view or unwind=items for one row per frame.

๐Ÿ“… What is the difference between takenAt and createdAt?

takenAt is when a frame was posted as a story. createdAt is when the highlight itself was created. Frames added to a highlight later can be older than the highlight.

โฑ Why is durationSeconds "N/A" on some frames?

Those frames are photos. Videos carry their length in seconds, for example 26.816.

๐Ÿ”— Why do link stickers show a different URL than on Instagram?

Instagram wraps story links in an l.instagram.com redirect. The Actor returns the real destination and keeps the text shown on the sticker in displayUrl.

๐Ÿ”’ What happens with private accounts?

You get an uncharged row saying the account is private. Their highlights are not public.

๐Ÿšซ What if a username does not exist or a highlight was deleted?

You get an uncharged error row that names the input. If every input fails, the run is marked as failed so you notice.

โŒ› Do the image and video links expire?

Instagram's media links are signed and stop working after a few days. Download the files you need soon after the run, or run the Actor again for fresh links.

๐Ÿ›ก Do I need a proxy?

The default Apify proxy works. Profile pages switch to residential addresses automatically when Instagram rate-limits datacenter addresses, so large runs keep going.

๐Ÿงฉ Can I combine it with other Instagram data?

Yes. The username and profileUrl fields match the ParseForge Instagram profile, posts and reels actors, so rows join directly.

๐Ÿ”Œ Integrate with any app

Use the Apify API, the JavaScript and Python clients, webhooks or the Make, Zapier and n8n integrations to send highlight data wherever you work.

๐Ÿ”— Recommended Actors

Next step: feed the same usernames into these ParseForge actors for the rest of the account.

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: this is an independent tool, not affiliated with Instagram or Meta Platforms. It collects only publicly available data.

What input does the Instagram Highlights Scraper accept?

FieldTypeWhat it doesDefault
usernames array Public Instagram accounts whose story highlights you want. Accepts nasa, @nasa or https://www.instagram.com/nasa/. Without a session cookie Instagram shows the first 10 highlights of each profile (the ones at the front of the tray). ["nasa","instagram"]
highlightUrls array Specific highlights to read, as links like https://www.instagram.com/stories/highlights/18195781759377100/ or bare highlight IDs. Works for any public highlight, including ones past the first 10 of a profile. not set
maxItems integer Maximum number of highlights (dataset rows) in total. Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
maxHighlightsPerProfile integer Take at most this many highlights from each profile, in tray order (pinned and newest first). 0 = all available. 0
maxItemsPerHighlight integer Keep at most this many frames (photos/videos) inside each highlight row. 0 = all frames. The row still reports the highlight's full frame count. 0
sessionCookie string The value of your own Instagram 'sessionid' cookie (or the full cookie string). When set, the full highlights tray of each profile is read instead of the first 10. Leave empty to scrape logged out. Use an account you own; it is stored encrypted and never logged. not set
proxyConfiguration object Apify proxy settings. Choose RESIDENTIAL for large runs. {"useApifyProxy":true}

How much does the Instagram Highlights Scraper cost?

from $2.55 per 1,000 results

Charged forWhat it isPrice each
Result item Charged once per result delivered to the dataset. $0.00255 to $0.003

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Instagram Highlights Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~instagram-highlights-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": [
      "nasa",
      "instagram"
    ],
    "maxItems": 10,
    "maxHighlightsPerProfile": 0,
    "maxItemsPerHighlight": 0,
    "proxyConfiguration": {
      "useApifyProxy": true
    }
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "usernames": [
    "nasa",
    "instagram"
  ],
  "maxItems": 10,
  "maxHighlightsPerProfile": 0,
  "maxItemsPerHighlight": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

What do users say about the Instagram Highlights Scraper?

No reviews yet. Be the first.

How do I report an issue with the Instagram Highlights Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Instagram Highlights Scraper on Apify All scrapers