Instagram Reels Scraper
Pricing
from $0.90 / 1,000 reels
Instagram Reels Scraper
Instagram reels scraper: export reels from public profiles or reel URLs with plays, likes, comments, caption, date, video, music, location and tags. No login or cookies needed.
Pricing
from $0.90 / 1,000 reels
Rating
0.0
(0)
Developer
Keklik Technologies
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Instagram Reels Scraper lets you scrape Instagram reels from any public profile, or single reels by URL, and export reel data to JSON, CSV or Excel: play count, likes, comment count, caption, date, video and cover links, duration, music, location, tagged accounts and collab co-authors. Paste a few usernames, press Start and get one row per reel in a minute or two. No Instagram account, no login and no cookies are needed.
What data can you extract from Instagram Reels?
Each reel becomes one row with 31 fields:
| Group | Fields |
|---|---|
| Reel | Reel URL, reel ID, shortcode, product type, caption, publication date (Unix and ISO 8601 in UTC), pinned flag, paid partnership flag |
| Author | Username, display name, user ID |
| Engagement | Plays (views_count), likes, comment count |
| Media | Video URL, cover image, duration in seconds, dimensions |
| Music | Audio ID, song name, artist, original audio or licensed track, trending and explicit flags |
| Location | Tagged place ID and name |
| People | Collab co-authors, tagged accounts, @mentions in the caption |
| Hashtags | Every hashtag in the caption |
| Settings | Whether comments are turned off, whether like and view counts are hidden |
| Comments (optional) | The reel's newest comments in a latest_comments list: text, date, likes, edited flag, GIF, and each commenter's ID, username, verified badge and profile picture |
Use cases
- Influencer marketing: compare creators by plays, likes and comments per reel before you sign a deal, and check that sponsored reels carry the paid partnership label.
- Competitor and brand monitoring: track what rival brands post on Reels, how often, and which formats and sounds win.
- Trend research: find the audio, hashtags and lengths behind the best-performing reels in a niche.
- Campaign reporting: export the reels of a campaign with their play counts on a schedule and feed them to a dashboard.
- Academic and social research: build datasets of public short-form video with captions, dates and engagement.
- Audience research: with comments on, read what people say under a creator's latest reels.
How to scrape Instagram reels
- Open Instagram Reels Scraper in Apify Console and go to the Input tab.
- In Profiles or reels, paste one Instagram profile URL, username or reel URL per line.
- Set Max reels per profile (for example 50) and, if you only want recent reels, Newer than (for example
30d). - Optionally set Comments per post to add each reel's newest comments.
- Press Start and watch the reels appear in the Output tab.
- Download the results as JSON, CSV, Excel, XML or HTML, or fetch them with the Apify API.
Input
| Field | What it does |
|---|---|
| Profiles or reels | One per line. A profile URL or username (https://www.instagram.com/natgeo/, https://www.instagram.com/natgeo/reels/, @natgeo, natgeo) scrapes the profile's reels, newest first. A reel URL (https://www.instagram.com/reel/DeTUk4sDSp-/) scrapes that one reel. |
| Max reels per profile | Stops each profile after this many reels. Leave empty for every reel. |
| Newer than | Only reels published after a date (2026-01-31 or 2026-01-31 18:00, UTC) or within a duration back from now (24h, 7d, 2w). |
| Skip pinned reels | Leaves out the reels pinned to the top of a profile. |
| Comments per post | Off (0) by default. Adds up to this many of each reel's newest comments in a latest_comments list. |
| Max results | Stops the whole run after this many reels. |
{"urls": ["https://www.instagram.com/natgeo/", "https://www.instagram.com/reel/DeTUk4sDSp-/"],"maxReelsPerProfile": 50,"newerThan": "30d","commentsPerPost": 0}
Output
A shortened row from a real run (the full row has 31 fields):
{"reel_url": "https://www.instagram.com/reel/DehZj9wggt0/","reel_id": "4008597565992995700","shortcode": "DehZj9wggt0","product_type": "clips","owner_username": "natgeo","owner_full_name": "National Geographic","owner_id": "787132","views_count": 820288,"likes_count": 36646,"comments_count": 261,"caption": "Keeping up with a pack of hunting wolves is just another day at the office for @bertiegreg …","hashtags": ["#WolvesUpClose"],"mentions": ["bertiegregory", "DisneyPlus", "hulu"],"timestamp": 1792090802,"timestamp_datetime": "2026-10-15T19:00:02+00:00","video_duration_seconds": 30.037,"media_dimensions": "1080x1920","music_info": {"audio_id": "28762088093432459","song_name": "Original audio","artist_name": "natgeo","uses_original_audio": true,"is_trending": false,"is_explicit": false},"co_authors": [{"id": "1284886006","username": "bertiegregory","full_name": "Bertie Gregory","is_verified": true}],"is_sponsored": false,"is_pinned": true,"source_url": "https://www.instagram.com/reel/DehZj9wggt0/","scraping_time": "2026-10-16T11:15:06+00:00"}
You can export the dataset to JSON, CSV, Excel, XML and HTML from the Output tab or through the API. The Output tab's Overview table shows each reel's link, author, date, plays, likes, comments, length, caption, pinned flag and cover.
What to know about the data
- Play counts: reels scraped from a profile come with their play count. A single reel URL gets its play count when the reel is among its author's 60 latest reels; an older reel URL comes back with every other field but an empty
views_count. To get play counts for older reels, scrape the author's profile instead. - Collab reels: a profile's reels include the reels it co-authored, as on Instagram. On those rows
owner_usernameis the main author, which can be another account. - Pinned reels come first on a profile whatever their date. With Newer than, older pinned reels are left out but do not stop the profile.
- Media links expire: Instagram video and image URLs stop working after a while. Download the media soon after the run if you need it.
- No duplicates: a reel appears only once per run, even if it is on two of your profiles (collabs) or entered twice.
Comments
Set Comments per post to add each reel's newest comments to its row, in a latest_comments list. Comments come newest first and are top-level only: replies and Instagram's "most relevant" order are not available. Reels with no comments, or with comments turned off, have no list. Comments make a run slower. If Instagram refuses a reel's comments, the reel is still saved without them and the run's status message says how many reels are missing comments. For many comments per reel, or one row per comment, use the Instagram Comments Scraper on the reel URLs.
How much does it cost to scrape Instagram reels?
Instagram Reels Scraper uses pay-per-event pricing: you pay per reel in the dataset and nothing for the platform usage behind it.
- $1.50 per 1,000 reels on the Apify Free plan.
- Bronze, Silver and Gold Apify plans pay less: $1.30, $1.10 and $0.90 per 1,000 reels.
- Comments are optional and charged per comment: $1.00 per 1,000 comments on the Free plan, and $0.90, $0.80 and $0.70 on Bronze, Silver and Gold. With Comments per post at 0 (the default) you pay for reels only.
For example, 50 reels from each of 10 profiles is 500 reels, about $0.75 on the Free plan. Failed inputs add no rows, so they cost nothing. Use Max results to cap what a run can spend.
Integrations and API
Run Instagram Reels Scraper from your own code with the Apify API. The Actor ID is kekliktech/instagram-reels-scraper.
Python, with apify-client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("kekliktech/instagram-reels-scraper").call(run_input={"urls": ["natgeo"], "maxReelsPerProfile": 20})for reel in client.dataset(run["defaultDatasetId"]).iterate_items():print(reel["reel_url"], reel["views_count"])
Node.js, with apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('kekliktech/instagram-reels-scraper').call({urls: ['natgeo'],maxReelsPerProfile: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
You can also:
- Schedule runs (daily, weekly) to track a creator's reels and play counts over time.
- Use webhooks to get notified, or trigger your own pipeline, when a run finishes.
- Connect the results to Make, Zapier, Google Sheets, Slack, Airbyte and other tools through Apify integrations.
- Let AI agents run the scraper through the Apify MCP server, for example from Claude or Cursor.
FAQ
Is it legal to scrape Instagram reels?
This scraper collects only public data that Instagram shows to visitors who are not logged in. Reels can still contain personal data, such as the usernames of tagged accounts and commenters. Personal data is protected by laws such as the GDPR in the EU, so make sure you have a lawful reason to collect and use it. If in doubt, ask a lawyer.
Do I need an Instagram account?
No. You don't need an Instagram account, a login or cookies. Your own account is never used, so it cannot be blocked.
Can I scrape private profiles?
No. Instagram shows a private profile's reels only to approved followers, so private profiles are skipped.
Can I scrape photo posts and carousels?
No. A post URL that is not a video is skipped. Use the Instagram Post Scraper for photos and carousels.
Why did some inputs fail?
Inputs that fail are listed, with the reason, in the FAILED record of the run's key-value store (Storage tab), not in the dataset:
invalid_input: not a profile, username or reel URL (for example an explore or stories URL).not_found: the profile or reel does not exist or was removed.private, orprivate_or_no_posts: the profile is private (or, for the second, has no posts at all).no_reels: the profile has no reels.not_a_reel: the URL is a photo or carousel post.blocked: Instagram refused every attempt. Run it again later.instagram_error: Instagram answered with an error the scraper does not recognise. Please report it.
Why is the play count empty on some reels?
This happens only for reel URLs older than their author's 60 latest reels. Scrape the author's profile to get those play counts. Likes are also empty when the author hides like counts (like_and_view_counts_disabled).
Can I get comment replies?
No. Instagram doesn't show replies to visitors who are not logged in, so only top-level comments are available.
Related scrapers
- Instagram Profile Scraper: followers, bio, links and contact details of the accounts behind the reels.
- Instagram Post Scraper: every post on a profile, photos and carousels included.
- Instagram Comments Scraper: many comments per reel or post, one row per comment.
Support
Found a bug or need a field that isn't there? Open an issue on the Issues tab and we'll look into it. Need a scraper for another site or a custom version of this one? Get in touch through the Issues tab too.