Instagram Reels Scraper
Pricing
from $1.40 / 1,000 results
Instagram Reels Scraper
Watching Reels one by one to find what performs wastes hours. Paste usernames, reel links or audio pages and get plays, likes, comments, captions, hashtags, music, MP4 video links and engagement rates in bulk. No login or cookies.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Crawl Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🚀 What is Instagram Reels Scraper?
Instagram Reels Scraper is an Apify Actor that collects public reels from Instagram profiles, reel links and audio pages. Each reel comes back as a structured row with plays, likes, comments, caption, hashtags, video and audio links, music, tagged users and owner stats. You need no Instagram login.
- 🎯 One input box for everything: usernames,
@handles, profile links, reel links, audio links and media IDs can be mixed in one list. - ⚡ Live results: each reel is saved as soon as it is ready, so you can open the Output tab while the run is still going.
- 📊 Ready-made metrics: engagement rate by plays and by followers, plays per day and hours since posted.
- 🎵 Audio pages too: paste a sound link and collect the reels that use it.
- 🗂️ Section tables: reels overview, engagement, media links, caption and tags, music, owner, comments, profiles and inputs.
Click Try for free, paste a username and press Start.
📊 What data can you extract from Instagram reels?
This Instagram reels data extractor returns one row per reel with the fields below. You can export the dataset as JSON, CSV, Excel, XML or HTML.
| Field | Description | Example |
|---|---|---|
inputUrl | The input line this reel came from. | nasa |
id | Instagram media ID. | 4004634989362489982 |
type | Video, Image or Sidecar. | Video |
shortCode | The code in the reel link. | DeTUk4sDSp- |
caption | Full caption text. | POV: you're watching the Earth set |
hashtags | Hashtags in the caption, without #. | ["NASA", "ArtemisII"] |
mentions | Usernames mentioned in the caption, without @. | [] |
url | Link to the reel. | https://www.instagram.com/reel/DeTUk4sDSp-/ |
commentsCount | Total comments on the reel. | 6906 |
firstComment | Text of the first comment shown. | Amazing view! |
latestComments | Latest comments shown to logged-out visitors (text, author, likes, date). | [] |
dimensionsHeight | Video height in pixels. | 1908 |
dimensionsWidth | Video width in pixels. | 1074 |
displayUrl | Cover image link. | https://scontent.cdninstagram.com/...jpg |
videoUrl | Direct MP4 link (expires after some days). | https://instagram.fna.fbcdn.net/...mp4 |
alt | Accessibility description from Instagram. | Video by NASA on October 10, 2026. |
likesCount | Like count (empty when the owner hides it). | 696348 |
videoPlayCount | Play count. | 10076679 |
timestamp | Post time, ISO 8601 UTC. | 2026-10-10T15:15:02.000Z |
ownerFullName | Display name of the owner. | NASA |
ownerUsername | Username of the owner. | nasa |
ownerId | Instagram user ID of the owner. | 528817151 |
productType | clips for reels. | clips |
videoDuration | Video length in seconds. | 43.767 |
musicInfo | Song or original audio: artist, title, audio ID, explicit flag. | {"artist_name": "nasa", "song_name": "Original audio"} |
isCommentsDisabled | True when comments are turned off. | false |
taggedUsers | Accounts tagged in the reel. | [] |
locationName | Location name, if set. | - |
locationId | Instagram location ID, if set. | - |
isPinned | True when pinned to the top of the profile. | false |
coAuthors | Collab partners shown on the reel. | [] |
isCollab | True when the reel has co-authors. | false |
audioUrl | Direct audio-only link (expires after some days). | https://instagram.fna.fbcdn.net/...mp4 |
videoQualities | Every available video file (width, height, link). | [] |
hasAudio | True when the video has sound. | true |
topics | Topic labels Instagram shows for the reel. | ["earthrise"] |
likesHidden | True when the owner hides like counts. | false |
ownerIsVerified | Blue check of the owner. | true |
ownerIsPrivate | True for private accounts. | false |
ownerProfilePicUrl | Profile picture link of the owner. | https://scontent.cdninstagram.com/...jpg |
ownerFollowersCount | Followers of the owner (filled for profile runs; empty when the reel's owner is a collab partner). | 104382986 |
ownerFollowingCount | Accounts the owner follows. | 90 |
ownerBio | Profile bio of the owner. | Exploring the universe |
ownerExternalLinks | Links in the owner bio. | [] |
engagementRateByFollowers | Engagement rate in percent, relative to the owner's followers. | 0.67 |
engagementRateByViews | Engagement rate in percent, relative to plays. | 6.98 |
hoursSincePosted | Hours between posting and the run. | 186.4 |
viewsPerDay | Average plays per day since posting. | 1297000.5 |
hasMoreComments | True when the reel has more comments than shown. | true |
Plays are saved as videoPlayCount, which makes the Actor an Instagram reels views scraper as well. The Instagram reels play count comes from the same row as likes and comments, so you can compare them directly. Each Instagram reels video URL is stored in videoUrl, next to audioUrl and videoQualities.
Extra tables next to the reels
- Comments table:
inputUrl,reelShortCode,reelUrl,reelOwnerUsername,commentId,text,ownerUsername,ownerIsVerified,ownerProfilePicUrl,timestamp,likesCount,repliesCount,isReply. - Profiles table:
inputUrl,username,fullName,id,isVerified,isPrivate,bio,followersCount,followingCount,profilePicUrl,externalLinks,profileUrl,reelsCollected,scrapedAt. - Inputs table:
inputUrl,inputType,status,reelsCollected,message,scrapedAt.
💡 Use cases for Instagram reels data
- Reel performance tracking: compare
videoPlayCount,likesCountandcommentsCountbetween runs for Instagram reels analytics on your own or a client's account. - Competitor benchmarking: use
engagementRateByViewsandviewsPerDayto run an Instagram reels competitor analysis across rival brands. - Influencer vetting: read
ownerFollowersCountnext toengagementRateByFollowersto analyze Instagram reels from a creator before a partnership. - Trending sound research: paste an audio link and review
musicInfofor every reel that uses the sound. - Content research: study
hashtagsandtopicsto see which Instagram reels hashtags cluster around a theme. - Caption review: export
captiontext to see how top creators write their Instagram reels captions. - Media collection: keep
videoUrlandaudioUrllinks from each reel for archiving or research, and download them soon because they expire. - Single reel lookup: paste one reel link and the Instagram reel scraper returns that reel with its full details.
🛠️ How to scrape Instagram reels
- Create an Apify account and open Instagram Reels Scraper in the Apify Console.
- Paste usernames, profile links, reel links or audio links into Profiles, reels or audio links.
- Set Reels per profile or audio to the number of newest reels you want for each profile or sound.
- Add Posted after or Posted before if you only need a date range.
- Keep Full reel details on for caption, hashtags, links, music and latest comments, or turn it off for a faster run.
- Click Start and open the Output tab while the run is going.
- Download the dataset as JSON, CSV, Excel, XML or HTML.
How to scrape Instagram reels by username
Type a username such as nasa or @nasa, or paste a profile link. The Instagram profile reels scraper then saves the newest reels first until it reaches your Reels per profile or audio limit, or all reels Instagram shows when you enter 0.
How to scrape Instagram reels by audio
Paste an audio link such as https://www.instagram.com/reels/audio/123.../. The Instagram audio reels scraper reads the reels that use the sound and fills musicInfo with the artist, song and audio ID, so you can follow Instagram reels music trends.
How to scrape Instagram reels without login
You do not enter an Instagram account or password anywhere. As an Instagram reels scraper without login, it reads only what a logged-out visitor can see, so private accounts and hidden content are not available.
How to filter Instagram reels by date
Fill Posted after and Posted before to filter Instagram reels by date. Use YYYY-MM-DD or a relative value such as 7 days, 2 weeks, 3 months or 1 year, and a relative value in Posted before means older than that.
How to export Instagram reels to CSV
When the run finishes, open the Output tab or the dataset and choose CSV to export Instagram reels to CSV. Pick Excel in the same menu to get your Instagram reels to Excel in one click.
💰 How much does it cost to scrape Instagram reels?
Instagram Reels Scraper uses pay-per-event pricing: you pay for each reel saved as a result, plus a very small Actor Start charge of $0.00005 per run start. The price per 1,000 results depends on your pricing tier:
| Pricing tier | Price per 1,000 results |
|---|---|
| Free | $2 |
| Bronze | $1.8 |
| Silver | $1.6 |
| Gold, Platinum and Diamond | $1.4 |
For example, 1,000 reels cost $2 in the Free row and $1.4 in the Gold, Platinum and Diamond rows. The comments, profiles and inputs tables add no extra result charges, and a run stops cleanly when it reaches your spending limit. See the Pricing tab for current rates.
⬇️ Input
The Instagram reels scraper tool needs only one input, the urls list. Everything else is optional, and you can open the Input tab to see every option in the form. You can fill the form or send the same JSON to the Instagram reels data scraper through the API.

| Field | What it does |
|---|---|
urls | Required. One item per line: a username, profile link, reel or post link, audio link or numeric media ID. |
reels_count | Maximum reels saved for each profile or audio page, newest first. 0 means all reels Instagram shows (up to 100000). |
beginDate | Only keep reels posted on or after this date (YYYY-MM-DD or a relative value such as 7 days). |
endDate | Only keep reels posted before this date (same formats). |
skip_pinned | Leave out reels the owner pinned to the top of their profile. |
fetch_reels_data | On: every reel gets its full details. Off: much faster, and profile reels only carry the link, play, like and comment counts, cover image and pinned flag. Reel links and audio pages always come with full details. |
comments_per_reel | How many of the latest comments to include in each reel row (latestComments). 0 means none (up to 50000). |
maxConcurrency | How many reels of the same profile are read at the same time (1 to 20). Higher is faster. |
proxyConfiguration | Optional. Pick a proxy yourself, or leave the default. |
Example input:
{"urls": ["nasa"],"reels_count": 10,"skip_pinned": false,"fetch_reels_data": true,"comments_per_reel": 5}
💡 Start with a small reels_count for your first test run, then raise it once the output looks right.
⬆️ Output
The scraped results are shown as a dataset in the Storage tab. The table view is for convenience and doesn't show all the fields. This Instagram reels extractor saves each reel the moment it is ready. Instagram reels scraping runs therefore show rows in the dataset while they are still going.

Export formats: JSON, CSV, Excel, XML and HTML.
Example output for one reel (built from the example values in the dataset schema, not a captured run):
{"inputUrl": "nasa","id": "4004634989362489982","type": "Video","shortCode": "DeTUk4sDSp-","caption": "POV: you're watching the Earth set","hashtags": ["NASA", "ArtemisII"],"mentions": [],"url": "https://www.instagram.com/reel/DeTUk4sDSp-/","commentsCount": 6906,"firstComment": "Amazing view!","latestComments": [],"dimensionsHeight": 1908,"dimensionsWidth": 1074,"displayUrl": "https://scontent.cdninstagram.com/...jpg","videoUrl": "https://instagram.fna.fbcdn.net/...mp4","alt": "Video by NASA on October 10, 2026.","likesCount": 696348,"videoPlayCount": 10076679,"timestamp": "2026-10-10T15:15:02.000Z","ownerFullName": "NASA","ownerUsername": "nasa","ownerId": "528817151","productType": "clips","videoDuration": 43.767,"musicInfo": { "artist_name": "nasa", "song_name": "Original audio" },"isCommentsDisabled": false,"taggedUsers": [],"isPinned": false,"coAuthors": [],"isCollab": false,"audioUrl": "https://instagram.fna.fbcdn.net/...mp4","videoQualities": [],"hasAudio": true,"topics": ["earthrise"],"likesHidden": false,"ownerIsVerified": true,"ownerIsPrivate": false,"ownerProfilePicUrl": "https://scontent.cdninstagram.com/...jpg","ownerFollowersCount": 104382986,"ownerFollowingCount": 90,"ownerBio": "Exploring the universe","ownerExternalLinks": [],"engagementRateByFollowers": 0.67,"engagementRateByViews": 6.98,"hoursSincePosted": 186.4,"viewsPerDay": 1297000.5,"hasMoreComments": true}
The Output tab groups the same data into views and tables:
| View or table | One row per |
|---|---|
| Reels overview, Engagement, Media links, Caption & tags, Music, Owner, Comments in rows | Reel (different columns of the same data) |
| Comments table | Comment, with the reel it belongs to |
| Profiles table | Scraped profile with follower stats |
| Inputs table | Input line with its status |
As an Instagram reels comments scraper, it fills the Comments table from the latest comments of each saved reel. A run summary with totals and per-input status is also saved as SUMMARY in the key-value store. Keep in mind that engagementRateByViews and engagementRateByFollowers give you the Instagram reels engagement rate in percent, while likesCount stays empty when likesHidden is true.
⚠️ Limitations and error handling
- The Instagram reels crawler reads public pages only, so a private account is marked as failed in the Inputs table with a message that it is private.
- A numeric user ID cannot be turned into a username without login. Use the username or profile link instead.
- Instagram shows logged-out visitors only the first page of comments, usually about a dozen, so
latestCommentsholds those.commentsCountstill has the total andhasMoreCommentstells you more exist. - For a single reel link, the play count may stay empty for older reels of the owner.
- Instagram may show logged-out visitors only part of the reels that use a sound. The Inputs table message notes how many were shown.
- Direct
videoUrlandaudioUrllinks expire after some days. - Owner follower fields are filled for profile runs and stay empty when the reel's owner is a collab partner.
- Instagram can change its pages. If an input fails, check the Inputs table and open an issue with the run link.
The Inputs table has one row per input line. Its status is one of these values:
| Status | Meaning |
|---|---|
ok | Reels were saved for this input. |
no results | No reels were found, for example none in the chosen date range. |
filtered out | A single reel was posted outside your date range, or it is pinned while pinned reels are skipped. |
stopped | The run reached your spending limit during this input. |
skipped | The run reached your spending limit before this input started. |
failed | The input could not be read. The message field says why and what to try next. |
🔌 Integrating Instagram Reels Scraper with other apps
Every run can be started and read through the Apify API, so the Actor also works as an Instagram reels scraper API for your own code. See the API tab for ready-made JavaScript, Python and CLI snippets.
- Use the Apify API as an Instagram reels API to start runs and read results.
- Read the dataset items endpoint as an Instagram reels data API for dashboards and spreadsheets.
- Schedule runs, call webhooks when a run finishes and connect results to tools such as Make, Zapier or Google Sheets through the Apify integrations.
- Paste many inputs at once and the Instagram reels bulk scraper handles them in a single run.
- AI agents can start the Actor through Apify's MCP server.
🔗 More Apify Actors by crawl_craft
TikTok is another short-video platform, and these Actors by crawl_craft cover it:
| Actor | What it extracts | When to use it |
|---|---|---|
| TikTok Video Scraper | Captions, hashtags, views, likes, comments, shares, author and music data, plus video downloads and transcripts. | Use it when your short-video research also includes TikTok videos. |
| TikTok User Search Scraper | Full TikTok profiles found by keyword search. | Use it to discover creators on TikTok before you check their content. |
| TikTok Transcript Scraper | Timestamped transcripts, subtitle languages and translations, plus video and author data. | Use it when you need the spoken text of TikTok videos. |
⚖️ Is it legal to scrape Instagram?
Instagram Reels Scraper collects only reels and profile details that are visible to logged-out visitors on Instagram, and it does not access private accounts. Results may still contain personal data, so collect it only with a legitimate reason and consider GDPR (Regulation (EU) 2016/679) and Instagram's terms. Consult a lawyer if you are unsure. Read Apify's posts on the legality of web scraping and ethical web scraping for background.
❓ FAQ
Can you scrape Instagram reels?
Yes, public reels can be collected from profiles, reel links and audio pages. Instagram Reels Scraper reads what a logged-out visitor can see and returns it as a dataset.
Can Apify scrape Instagram reels?
Yes, this Actor runs on Apify. Start it from the Console, schedule it, or call it through the API.
Do I need an Instagram login?
No. You do not enter an Instagram account, and private accounts cannot be scraped.
Does Instagram Reels have an API?
Check Meta's developer documentation for its own options. If you need an Instagram API to fetch reels without setting up your own app, Instagram Reels Scraper returns public reel data as a dataset that you read through the Apify API.
How many reels can I get?
Set reels_count for each profile or audio page, up to 100000, or enter 0 for all reels Instagram shows. Run a small test first to see how many reels an input returns.
How much does it cost?
You pay per reel saved as a result, plus the Actor Start charge of $0.00005 per run start. See the Pricing section above and the Pricing tab for the price per 1,000 results in your tier.
Why do I get only about a dozen comments per reel?
Instagram shows logged-out visitors only the first page of comments. Use commentsCount for the full total.
Do I need a proxy?
No. The proxy field is optional, and you can leave the default.
💬 Your feedback
Found a bug or missing field? Open an issue on the Actor's Issues tab with the run link and the input you used. For a custom solution, such as extra fields or a private data pipeline, write to hello.crawlcraft@gmail.com.