Instagram Reel Scraper: Reels, Plays & Music by Profile
Pricing
from $0.60 / 1,000 reels
Instagram Reel Scraper: Reels, Plays & Music by Profile
Export public Instagram data, no login: reels by profile with plays, likes, captions, music and media URLs. Separate views when available; no latest comments.
Pricing
from $0.60 / 1,000 reels
Rating
0.0
(0)
Developer
GoFetch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export public Instagram reels by profile, with plays, likes, comment counts, captions, music and media URLs. Instagram Reel Scraper collects public Instagram data, no login, and saves one row per reel for CSV, Excel or JSON export.
Use it to compare brand content, build a reel archive, follow music usage, or send public engagement data into a reporting workflow. Plays and views are separate fields. For current clips, distinct views are usually unavailable and stay null.

Quick start
- Enter profile usernames such as
nasa,@nike, or profile URLs such ashttps://www.instagram.com/nasa/reels/. - Choose Reels per profile and the run-wide Maximum reels per run.
- Keep the default Apify datacenter proxy, start the run, and export the dataset.
The prefill requests 10 NASA reels. No Instagram account or account cookies are required. Reel and post URLs are not accepted: use profile URLs or usernames.
{"username": ["nasa"],"resultsLimit": 10,"maxItems": 1000,"skipPinnedPosts": false,"proxyConfiguration": { "useApifyProxy": true }}
Call the actor from an Apify integration or over HTTP:
curl -X POST \"https://api.apify.com/v2/acts/xmolodtsov~instagram-reel-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"username":["nasa"],"resultsLimit":10}'
For deeper jobs, start an asynchronous run, wait for completion and read its default dataset. Results remain available in Apify Console. You can connect the actor to n8n, Make, Zapier, webhooks or a scheduled Apify run. Keep your Apify token in the integration's credential store.
Input
| Field | Default | Meaning |
|---|---|---|
username | Required | Array of 1–100 handles or profile URLs, including /reels/. Trimmed, lower-cased and deduplicated. Invalid entries are skipped with a warning when valid entries remain. All-invalid input fails invalid:. |
resultsLimit | 30 | Reels per profile, 1–10,000. Profiles run in input order. |
onlyPostsNewerThan | Unset | UTC YYYY-MM-DD or relative N days. Stops at the first older non-pinned reel; older pinned reels are excluded without stopping the walk. |
skipPinnedPosts | false | Exclude reels marked pinned by the source. |
maxItems | 1000 | Run-wide cap, 1–100,000, across all profiles. Free-plan limits can reduce this. |
proxyConfiguration | Apify DC | Default Apify datacenter; residential is an explicit option. Free runs use Apify Proxy only. |
Output
The overview table highlights profile, caption, timestamp, independent plays/views, likes, comment count, duration and pin status. IDs remain exact strings. Missing scalar values are null; missing lists are empty arrays.
The example below comes from a real NASA proof run. Any personal attribution is replaced with a placeholder. Media URLs are omitted here for readability and are included in dataset rows.
{"id": "4012178708962240288","shortCode": "DeuH0dDFGcg","url": "https://www.instagram.com/reel/DeuH0dDFGcg/","type": "Video","productType": "clips","timestamp": "2026-10-20T15:10:43.000Z","likesCount": 44413,"commentsCount": 377,"videoPlayCount": 3201406,"videoViewCount": null,"videoDuration": 45.82400131225586,"dimensionsHeight": 720,"dimensionsWidth": 405,"isPinned": false,"ownerUsername": "nasa","ownerId": "528817151","inputUrl": "nasa","scrapedAt": "2026-10-21T21:41:10.839Z","caption": "There's a lot of ground to cover when you're building a Moon Base.\n\nWe're sharing the latest details on the vehicles that will help pave the way for an enduring human presence near the lunar South Pole. Check @example_creator's link-in-bio for the full update.","musicInfo": {"artistName": "example_creator","songName": "Original audio","audioId": "29906171498985608","usesOriginalAudio": true,"shouldMuteAudio": false}}

| Fields | Source meaning |
|---|---|
id, shortCode, url, type, productType | Media identity; canonical /reel/<code>/ URL; type Video; source product type, including legacy videos when returned. |
caption, hashtags, mentions, timestamp | Caption, extracted tags/mentions and ISO publication time. |
likesCount, commentsCount | Public counters; likes are null when the source marks them hidden. |
videoPlayCount | play_count or ig_play_count only. |
videoViewCount | view_count only; usually null for clips. Plays are never copied into views, or views into plays. |
videoDuration, videoUrl, displayUrl | Duration in seconds (scalar or DASH), video playback URL and preview image URL. These signed URLs can expire. |
dimensionsHeight, dimensionsWidth | Source media dimensions. |
musicInfo | Artist, song, exact audio ID, original-audio flag and mute flag, when supplied. |
coauthorProducers, taggedUsers | Source-supplied usernames, without profile enrichment. |
locationName, locationId | Public tagged location when supplied. |
isPinned, isCommentsDisabled | Source pin and comments settings; comments-disabled remains null when unavailable. |
ownerUsername, ownerId, ownerFullName | Public media owner fields. |
inputUrl, scrapedAt | First input as given and ISO collection time. |
Pricing and free-plan limits
You pay per saved reel through the dataset-item event. No start or add-on fee is charged by this actor.
| Apify plan | USD per 1,000 reels |
|---|---|
| Free | $0.78 |
| Bronze | $0.72 |
| Silver | $0.66 |
| Gold | $0.60 |
| Platinum / Diamond | $0.60 |
Examples: 10 reels cost $0.0078 on Free; 100 reels cost $0.072 on Bronze; 1,000 reels cost $0.60 on Gold. Apify compute, storage and proxy usage are additional platform costs. A profile with fewer reachable reels costs fewer result events.
Is it free?
The developer limit on the Apify free plan is 100 results per run and 20 runs per calendar month (UTC). Free-plan result events use the Free rate above and consume available Apify credits; the cap does not waive actor or platform fees. The monthly limit is atomic across concurrent runs and resets on the 1st. Once used, the actor succeeds with a clear quota message before making target requests. Paid plans use the requested limits. Free runs always use Apify Proxy.
Coverage and failure handling
Pagination follows the source cursor until a clean end, a requested cap, a date boundary, or a bounded failure. Deduplication by media ID applies across the run, including reboots and migrations; saved rows seed both the run cap and per-profile cap after restart.
A profile that is unknown, private or unavailable to guests is counted separately. An input problem or a deep page failure ends that profile and allows later profiles to run. If any rows have been saved, later errors produce a successful partial run. Zero rows succeed only for confirmed empty results or filters; processing failures produce a classified failure (blocked:, network:, timeout:, invalid:, quota: or outdated:). A missing or repeated cursor while the source says more are available is reported as truncation, not a clean end.
The run stops starting requests before its platform deadline so it can flush rows and statistics. Reaching the result-event budget ends successfully with run budget reached. Check STATISTICS in the run's key-value store for profile outcomes, pages, saved rows, refusal codes, transport faults, truncations, residential retries/transfer and elapsed time.
The default proxy can make one residential attempt only after its DC attempts receive no HTTP answer. Instagram refusals never trigger that lane. Explicit proxy choices keep their selected class. Each attempt uses a fresh proxy session and public guest CSRF cookie. Some profiles stall when legacy feed videos are included: a transport retry excludes those videos for that profile, logs the change and counts it. That recovery preserves reels but may omit legacy feed videos.
Public guest visibility can differ from the app and can change. Pin flags and counters are returned only as supplied by Instagram. Relative dates are evaluated at run start. Source ordering and visible inventory determine what is reachable; the actor cannot promise every reel ever published.
What's not included
No latest comments, first comment, transcripts, media downloads, shares, private profiles, account access or contact enrichment. commentsCount is a public scalar, not the comment text. Video URLs are exported; the actor does not download the videos. Distinct views are null unless Instagram supplies view_count separately.
FAQ
Why are views null when plays are present?
Current clip responses expose plays. Legacy videos sometimes expose a separate view counter. The fields retain those meanings; a missing view counter is not zero.
Why did I receive fewer reels than requested?
The profile may have fewer guest-visible reels; duplicates, dates or pinned filters may remove rows. A source pagination problem, unavailable profile, deadline, run budget or free cap can also stop collection. Inspect each input outcome in STATISTICS.
Is it legal to scrape public Instagram data?
This actor accesses publicly available data without an Instagram account. Whether a particular collection or use is lawful depends on your jurisdiction, purpose and applicable terms. Public profile information can still be personal data: assess your GDPR/CCPA obligations, minimize collection, respect deletion requests and avoid using results for unwanted contact. The actor provides no legal advice or private-data access.
Where can I get help?
Use the actor's Apify Issues tab with the run ID, input shape and the affected public profile. Do not include credentials. The log and STATISTICS distinguish source refusals, transport timeouts and malformed pagination.
More scrapers from this developer
TikTok: TikTok Search Scraper: Videos and creators for any keyword, pay per result · TikTok Profile Scraper (Pay Per Result): Profiles, followers and latest posts by username · TikTok Comments Scraper: Comments and full reply threads from any video · TikTok Hashtag Scraper: Videos for any hashtag, with views, likes and music · TikTok Sound & Music Scraper: Videos that use a sound or song · TikTok Top Ads Scraper: Public Creative Center ad rankings, engagement, media and landing pages
Social & news: Reddit Search Scraper: Posts by keyword, subreddit or author · Google News Scraper: Google News results as clean full-text articles · Threads Replies Scraper: Public post replies, likes, authors and inline nested replies
E-commerce: Prom.ua Product Search Scraper: Prom.ua product search results, no browser needed · Amazon Product Search & Bestsellers Scraper: Search results, Best Sellers and product details from Amazon · AliExpress Search Scraper: AliExpress products by keyword with prices, orders and shipping · AliExpress Product Reviews Scraper: Public product reviews, ratings, buyer photos and follow-up feedback
Maps & leads: Google Maps Scraper: Places, leads and emails from Google Maps
Ads: Facebook Ad Library Scraper (Meta Ads Library): Ads from the Meta Ad Library, with EU reach and payers · Google Ads Transparency Scraper: Google ad creatives by advertiser or domain, with regional details
Video: YouTube Transcript Scraper: Transcripts, subtitles and captions from YouTube videos · YouTube Shorts Scraper: Shorts of any channel with exact views, likes and duration · YouTube Channel Scraper: Every video of a channel, with channel stats · YouTube Search Scraper: Search results and videos for any keyword · YouTube Comments Scraper: Comments, replies and likes from any video · Bilibili Comments Scraper: Public hot comments and reply threads by video or keyword
Jobs: SEEK Job Listings Scraper: Public AU/NZ job listings, salaries and redacted descriptions