Instagram Reel Virality Intelligence Scraper
Pricing
$19.99/month + usage
Instagram Reel Virality Intelligence Scraper
Instagram Single Reels Scraper fetches complete insights from one Reel link—captions, hashtags, mentions, views, likes, comments, thumbnails, video URL, and music data. Get clean JSON output for analytics, growth tracking, influencer audits, or competitive benchmarking at scale.
Pricing
$19.99/month + usage
Rating
5.0
(1)
Developer
Scraper Engine
Maintained by CommunityActor stats
1
Bookmarked
68
Total users
3
Monthly active users
7 days ago
Last modified
Categories
Share
🎬 Instagram Reel Virality Intelligence Scraper
Turn a single Instagram Reel URL into a benchmarked virality scorecard plus a durable no-watermark media archive. This Instagram reel scraper flattens the raw reel payload into a clean schema, computes engagement analytics with pure math on real scraped counts, extracts audio-trend context, parses the caption, captures tagged users and paid-partnership signals, saves the source-quality MP4 and thumbnail to storage, and optionally paginates comments far past the ~12 shown inline.
Keywords: instagram reel scraper, instagram reels scraper, instagram virality analytics, instagram engagement rate calculator, reel engagement metrics, instagram video downloader no watermark, instagram reel comments scraper, instagram audio trend scraper, instagram hashtag extractor, instagram caption NLP, instagram reel metadata API, social media analytics scraper, influencer vetting tool, UGC swipe-file scraper.
🤔 What it does
Paste a reel link (or username/shortcode, or bare shortcode) and get one normalized
JSON row per reel, plus optional comment rows. Every derived metric is computed from
counts Instagram actually returns — when a value is genuinely absent (for example
view_count is often hidden on the public reel page), the field is null and any
metric that needs it either falls back or stays null. Nothing is fabricated.
📦 Output fields
Reel row (type: "reel")
| Group | Fields |
|---|---|
| Identity | shortcode, mediaId, url, ownerUsername, ownerId, ownerIsVerified, ownerIsPrivate, takenAt (ISO), takenAtTimestamp |
| Media meta | productType, mediaType, mediaTypeName, width, height, hasAudio, numberOfQualities, renditions (optional ladder) |
| Engagement | likeCount, commentCount, viewCount, playCount, reshareCount (null when absent) |
| Virality scorecard | engagementRate, engagementRateBasis, viewCountField, likeToCommentRatio, commentsPer1kViews, viralFlag, viralBenchmark, postAgeHours, postAgeDays, likesPerHour, commentsPerHour, viewsPerHour |
| Audio trend | audioType, isOriginalAudio, originalAudioTitle, audioAssetId, audioArtistUsername, isExplicitAudio, isTrendingInClips, musicTitle, musicArtist, formattedClipsMediaCount (shown only when present) |
| Caption NLP | caption, captionLanguage, hashtags[], mentions[], links[] |
| Tags / partnership | taggedUsers[], coauthorProducers[], isPaidPartnership, sponsorTags |
| Media archive | videoUrl, thumbnailUrl, videoKvUrl, thumbnailKvUrl, videoBytes, thumbnailBytes |
| AI (optional) | aiTopic, aiSentiment, aiHookType |
| Run info | commentsFetched, commentsPaginationMethod, proxyUsed, success, scrapedAt |
Comment row (type: "comment", isChild: true)
commentId, parentShortcode, parentMediaId, parentUrl, authorUsername,
authorId, authorIsVerified, text, createdAt (ISO), childCommentCount,
commentLikeCount, scrapedAt. Comment rows are also mirrored to a per-run
comments-<runId> dataset.
📊 The virality scorecard
- Engagement rate = (likes + comments) ÷ views × 100 when a real view/play field
is populated. When no real view denominator exists,
engagementRateBasisislike_comment_fallbackand the view-based ratios stay null — a denominator is never invented.viewCountFieldrecords which real field (if any) was used. - Like:comment ratio, comments per 1k views, viral flag vs a published benchmark (engagement rate ≥ 3%, Later/Hootsuite heuristic).
- Freshness & velocity from
takenAt: post age in hours/days, likes-per-hour, comments-per-hour, and views-per-hour (the last only when views are real).
🖼️ Durable no-watermark media
Source CDN URLs are IP/time-signed and expire within days. With Save Media on, the
best-quality MP4 and thumbnail are downloaded on the same residential IP and stored
in the key-value store, and the row returns stable videoKvUrl / thumbnailKvUrl.
💬 Deep comment pagination
With Include Comments on, the actor continues Instagram's real comment connection
past the inline ~12 by resolving the rotating GraphQL doc_id from page JS (never
hardcoded) and following the connection's end_cursor / has_next_page. If the
doc_id cannot be resolved, it falls back to the api/v1 comments surface (the same
comment objects). commentsPaginationMethod records which path ran. maxItems counts
reels only; comments are additional and capped by maxComments.
🧩 Input
| Field | Type | Description |
|---|---|---|
urls | array | Reel URLs / username-shortcode / shortcode |
maxItems | integer | Max reels (parents); comments excluded. 0 = no limit |
includeComments | boolean | Fetch comments (default false) |
maxComments | integer | Comments per reel cap (default 50) |
saveMedia | boolean | Archive MP4 + thumbnail to KV store (default false) |
includeRenditions | boolean | Emit parsed renditions ladder (default false) |
aiEnhancement | boolean | Classify caption topic/sentiment/hook (default false) |
aiModel / aiApiKey | string | Provider + secret key for AI |
proxyConfiguration | object | Residential proxy (always used) |
Example input
{"urls": ["https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/"],"includeComments": true,"maxComments": 100,"saveMedia": true,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
⚖️ Compliance
Collect only publicly available reel data accessible without authentication. Respect Instagram's Terms of Use, robots directives, and applicable privacy/data-protection laws in your jurisdiction. Do not bypass authentication or access controls.
❓ FAQ
Does it always return view counts? No. Instagram frequently hides view_count on
the public reel page; when that happens the field is null and engagement rate falls
back to a like:comment basis. viewCountField tells you which real field was used.
Are the saved media files permanent? They live in the run's key-value store under
that store's retention. The videoKvUrl / thumbnailKvUrl links are stable, unlike
the expiring source CDN URLs.
How deep can comments go? Public depth is typically ~100–300 top-level comments,
capped by maxComments. Comment pagination relies on a rotating token and may vary by
reel.