Instagram Reel Virality Intelligence Scraper avatar

Instagram Reel Virality Intelligence Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Instagram Reel Virality Intelligence Scraper

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

Scraper Engine

Maintained by Community

Actor stats

1

Bookmarked

68

Total users

3

Monthly active users

7 days ago

Last modified

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")

GroupFields
Identityshortcode, mediaId, url, ownerUsername, ownerId, ownerIsVerified, ownerIsPrivate, takenAt (ISO), takenAtTimestamp
Media metaproductType, mediaType, mediaTypeName, width, height, hasAudio, numberOfQualities, renditions (optional ladder)
EngagementlikeCount, commentCount, viewCount, playCount, reshareCount (null when absent)
Virality scorecardengagementRate, engagementRateBasis, viewCountField, likeToCommentRatio, commentsPer1kViews, viralFlag, viralBenchmark, postAgeHours, postAgeDays, likesPerHour, commentsPerHour, viewsPerHour
Audio trendaudioType, isOriginalAudio, originalAudioTitle, audioAssetId, audioArtistUsername, isExplicitAudio, isTrendingInClips, musicTitle, musicArtist, formattedClipsMediaCount (shown only when present)
Caption NLPcaption, captionLanguage, hashtags[], mentions[], links[]
Tags / partnershiptaggedUsers[], coauthorProducers[], isPaidPartnership, sponsorTags
Media archivevideoUrl, thumbnailUrl, videoKvUrl, thumbnailKvUrl, videoBytes, thumbnailBytes
AI (optional)aiTopic, aiSentiment, aiHookType
Run infocommentsFetched, 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, engagementRateBasis is like_comment_fallback and the view-based ratios stay null — a denominator is never invented. viewCountField records 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

FieldTypeDescription
urlsarrayReel URLs / username-shortcode / shortcode
maxItemsintegerMax reels (parents); comments excluded. 0 = no limit
includeCommentsbooleanFetch comments (default false)
maxCommentsintegerComments per reel cap (default 50)
saveMediabooleanArchive MP4 + thumbnail to KV store (default false)
includeRenditionsbooleanEmit parsed renditions ladder (default false)
aiEnhancementbooleanClassify caption topic/sentiment/hook (default false)
aiModel / aiApiKeystringProvider + secret key for AI
proxyConfigurationobjectResidential 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.