Instagram Reels Scraper avatar

Instagram Reels Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
Instagram Reels Scraper

Instagram Reels Scraper

Plays, likes, comment count, caption, date, duration, video URL, audio and top comments from public Instagram profiles and reel URLs. No login needed. Skip pinned reels and set a limit per profile.

Pricing

$1.00 / 1,000 results

Rating

5.0

(1)

Developer

Muhammad Noman Riaz

Muhammad Noman Riaz

Maintained by Community

Actor stats

1

Bookmarked

119

Total users

5

Monthly active users

4 days ago

Last modified

Share

Scrape reels from public Instagram profiles, or single reels by URL. No Instagram login is needed: the actor reads the same data Instagram shows to logged-out visitors, through residential proxies.

What does Instagram Reels Scraper do?

Instagram Reels Scraper collects reels from public Instagram profiles, and single reels from their URLs, without an Instagram login. For each reel it returns the play count, like and comment counts, caption, hashtags, mentions, publish date, duration, video and cover URLs, audio artist and title, tagged users, collaborators, the owner's username and name, and the first comments Instagram shows. It reads a profile's reels tab, which is where Instagram shows play counts to logged-out visitors, pages through it 12 reels at a time up to your limit, and can skip pinned reels. Requests go through rotating residential proxies with retries on a new IP, and only complete reels are pushed, so you never pay for empty rows. Results export to JSON, CSV or Excel, or come back through the Apify API and MCP server. It is built for short-form video research, creator analytics, trend tracking and competitor monitoring.

What you get without cookies

For each reel scraped from a profile:

  • id, shortCode, url, type, productType
  • caption, hashtags, mentions
  • videoPlayCount and videoViewCount (plays), likesCount, commentsCount
  • timestamp, videoDuration, videoUrl, displayUrl, images
  • musicInfo (artist and audio title), taggedUsers, coauthorProducers
  • ownerUsername, ownerFullName, ownerId
  • latestComments and firstComment: the first comments Instagram shows on the reel

Profiles are paginated 12 reels at a time, so resultsLimit works beyond the first page. In local tests a profile returned reels from the second page without cookies. skipPinnedPosts works without cookies.

Limits without cookies:

  • Reels requested by direct URL have videoPlayCount and videoViewCount set to null. Play counts are only shown in a profile's reels tab, so scrape the profile if you need them.
  • Comments come from the first batch Instagram shows, about 15 per reel.
  • sharesCount (when includeSharesCount is on) is null, because Instagram does not show share counts to logged-out visitors.
  • Private profiles and reels hidden from logged-out visitors are skipped and listed in FAILED_ITEMS.
  • Every reel costs one request to load its details, so large limits take longer.

With your cookies (optional)

If you paste cookies from your own Instagram account, the actor uses Instagram's logged-in reels feed instead of the public pages. This path was not tested in the current version, so prefer running without cookies unless the logged-out mode is blocked for you.

Input

FieldRequiredDescription
usernameYesUsernames, profile URLs, or reel URLs
resultsLimitNoMax reels per profile, default 30
skipPinnedPostsNoLeave out pinned reels
maxCommentsNoMax comments per reel, default 10
includeSharesCountNoAdds the sharesCount field
cookiesNoYour own Instagram cookies, see below
proxyNoDefaults to Apify residential proxy
maxConcurrencyNoInputs scraped in parallel, default 5
maxRequestRetriesNoRetries per request on a new IP, default 6
{
"username": ["natgeo", "https://www.instagram.com/reel/DehZj9wggt0/"],
"resultsLimit": 30
}

Output example

{
"id": "4008597565992995700",
"type": "Video",
"shortCode": "DehZj9wggt0",
"caption": "Keeping up with a pack of hunting wolves...",
"url": "https://www.instagram.com/reel/DehZj9wggt0/",
"commentsCount": 267,
"likesCount": 37811,
"videoPlayCount": 851150,
"videoViewCount": 851150,
"videoDuration": 30.04,
"timestamp": "2026-10-15T19:00:02.000Z",
"ownerUsername": "natgeo",
"musicInfo": { "artist_name": "natgeo", "song_name": "Original audio", "uses_original_audio": true },
"inputUrl": "https://www.instagram.com/natgeo/"
}

Reliability

Every request goes through a fresh residential IP if the previous one is blocked or rate-limited, up to maxRequestRetries times. Only complete reels are pushed to the dataset. Inputs that fail or stop early are listed with the reason in the FAILED_ITEMS record of the key-value store, and the run's status message shows the totals.

How to get your Instagram cookies

Cookies are optional. Only add them if you need what the "With your cookies" section above lists.

Use a secondary Instagram account, not your main one. Instagram can rate-limit or temporarily lock accounts that make many requests.

Option 1: Chrome or Edge developer tools

  1. Log in to instagram.com with your secondary account.
  2. Press F12 to open developer tools.
  3. Open the Application tab, then Cookies, then https://www.instagram.com.
  4. Copy the values of sessionid, ds_user_id and csrftoken.
  5. Paste them into the cookies field in this format:
sessionid=YOUR_SESSIONID; ds_user_id=YOUR_DS_USER_ID; csrftoken=YOUR_CSRFTOKEN
  1. Install the Cookie-Editor extension for your browser.
  2. Log in to instagram.com, open Cookie-Editor and click Export, then Export as JSON.
  3. Paste the whole JSON into the cookies field.

The actor checks the format before it starts and stops with a clear message if sessionid, ds_user_id or csrftoken is missing. Cookie values are never written to the log.

Keep them safe and fresh

  • Cookies work like a password. Anyone who has them can act as that account. Do not share them or put them in public tasks or shared inputs. The field is stored as a secret on Apify.
  • Cookies expire, and logging out of Instagram ends them immediately. If runs start failing with "your cookies may have expired", log in again in your browser and copy fresh cookies.
  • Heavy use can get the account rate-limited. If that happens, wait a few hours or use a different secondary account.

FAQ

Do I need an Instagram account or cookies?

No. Play counts, likes, comments and video URLs all come back without a login. Cookies from your own secondary account are optional.

Why do some reels have no play count?

Play counts are shown only in a profile's reels tab. Reels added by direct URL have videoPlayCount set to null, so scrape the profile if you need plays.

Can I skip pinned reels?

Yes. Turn on skipPinnedPosts; it works without cookies because the reels tab marks pinned reels.

Can I download the videos?

Each reel includes videoUrl, a direct link to the video file. Instagram signs these links, so they expire after a while; download them soon after the run.

What am I charged for?

Each reel pushed to the dataset is one result. Failed inputs and skipped reels are not charged. See the Pricing tab for the current price.

Only public data is collected. You are responsible for using it in line with Instagram's terms and data protection laws such as GDPR.