🎬 Facebook Reels Scraper Plus avatar

🎬 Facebook Reels Scraper Plus

Pricing

$14.99/month + usage

Go to Apify Store
🎬 Facebook Reels Scraper Plus

🎬 Facebook Reels Scraper Plus

Scrapes Facebook Reels at scale, extracting video URLs, captions, creators, engagement metrics, hashtags, audio details, and publish dates. Ideal for trend analysis, content research, influencer tracking, and automated short-form video insights

Pricing

$14.99/month + usage

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

1

Bookmarked

37

Total users

6

Monthly active users

3 days ago

Last modified

Share

Facebook Reels Scraper β€” Extract Reels, Owners and Engagement Metrics

Facebook Reels Scraper Plus turns any public Facebook profile, page, or single reel URL into clean, typed JSON rows β€” no HTML parsing required. Each row carries the video's media URLs (HD and SD), duration, dimensions, thumbnail, owner identity, and Facebook's own play-count figure, plus caption-derived fields (hashtags, mentions, links) computed locally. Unlike scraping frameworks that hand back raw HTML or a full unflattened Facebook payload, this Actor returns flat, ready-to-use fields your pipeline can consume without a parsing step. Reaction, comment, and share counts, plus a computed engagement rate and virality score, are available as an opt-in add-on. This guide covers every input and output field, how the Actor's Reels-tab harvesting and pagination actually work, and three concrete ways teams put it into production.

🧭 What Does Facebook Reels Scraper Plus Do?

Facebook Reels Scraper Plus collects public Reels from Facebook β€” the short-form vertical video format Facebook surfaces on profile and page "Reels" tabs, plus standalone /reel/{id} posts. It requires no Facebook login or API token: every request goes out as an unauthenticated, Chrome-impersonated HTTP call against Facebook's own public web pages. Point it at one or more profile/page URLs and it expands each one's Reels tab automatically, newest first; point it at a /reel/{id} URL or bare numeric reel ID and it scrapes that one video directly.

  • 🎬 Reel media β€” HD and SD direct video URLs, thumbnail, duration, width/height
  • πŸ‘€ Owner identity β€” name, numeric ID, profile URL, avatar, verification badge, and whether the owner is a Facebook user or a page (videoOwnerType)
  • ▢️ Reach β€” Facebook's own rounded play count, both as an integer and as the original abbreviated string ("1.4M")
  • πŸ“Š Optional engagement analytics β€” exact reaction and comment counts, rounded share count, and two derived metrics (engagementRate, virality) computed locally from the raw counts
  • πŸ”Ž Caption-derived fields β€” hashtags, mentions, external links, emojis, caption length, and word count, all parsed from the caption text with no extra request
  • 🏷️ Content flags β€” whether a reel is a reshare, remixable, or a sponsored/branded-content post

⚑ Features & Capabilities

Facebook Reels Scraper Plus is built around three things: complete field coverage per reel, honest handling of Facebook's rounded metrics, and cost control through pre-filtering.

Core features

  • Full profile/page Reels-tab harvest. The Actor reads the initial Reels-tab HTML for the richest available story nodes, then paginates Facebook's internal GraphQL endpoint (ProfileCometAppCollectionReelsRendererPaginationQuery) using a cursor discovered from that same page β€” no separate detail-page fetch is needed to get the base fields (reelId, caption, durationSeconds, width, height, videoUrlHD, videoUrlSD, thumbnailUrl, ownerId, ownerName, ownerUrl, ownerVerified, ownerAvatar, pageId, videoOwnerType, playCount, playCountText, isReshare, isRemixable, isSponsored). Detail-page requests are only made when includeEngagement is enabled.
  • Single-reel mode. A /reel/{id} URL, a /videos//watch?v= URL, or a bare 6–25 digit ID is detected automatically and scraped as one row, bypassing profile pagination and the resultsLimit cap entirely.
  • Pre-fetch filtering. keywords, excludeKeywords, and minPlays are evaluated on data already in hand before any optional engagement request is made, so filtered-out reels never trigger the extra per-reel fetch. minReactions and minComments are evaluated after the engagement fetch, since those fields only exist once includeEngagement runs.
  • Local, free derived fields. ageDays, hashtags, mentions, externalLinks, emojis, captionLength, wordCount, totalEngagement, engagementRate, and virality are all computed from data already retrieved β€” none of them cost an extra request.
  • Chrome TLS impersonation on every request. All HTTP calls go through curl_cffi with impersonate="chrome131"; a plain, non-impersonated request to a /reel/{id} URL returns an HTTP 400 empty shell rather than the page content.

How Facebook Reels Scraper Plus compares to other Facebook Reels scrapers

FeatureFacebook Reels Scraper Plusapify/facebook-reels-scraperpremiumscraper/facebook-reels-and-page-profile-scraper
Output shapeFlat, typed columns; raw delivery payload only on request (includeRawData)Nested Facebook story object by default β€” the sample output on their listing includes the full DASH XML manifest and encrypted tracking blobs in every row (observed on the Apify Store, 2026-07-26)Flattened fields, with a separate "raw API data" block available (observed 2026-07-26)
Reaction / comment / share countsOptional, exact reaction/comment counts + rounded share count, toggled by includeEngagementNot listed among the documented output fields (observed 2026-07-26)Documented as standard output fields, not shown as a cost-optional toggle (observed 2026-07-26)
Computed engagement metricsengagementRate and virality computed locally from reaction+comment+share vs. plays/ageNot documented (observed 2026-07-26)Not documented (observed 2026-07-26)
Caption-derived fieldshashtags, mentions, externalLinks, emojis, captionLength, wordCount β€” all local, no extra requestNot documented as separate fields (observed 2026-07-26)Hashtags/mentions handled via "Message Ranges" (rich-text offsets), not pre-parsed into arrays (observed 2026-07-26)
Single-reel URL inputBuilt in β€” detected automatically from a /reel/{id} URL or bare IDNot documented (their input is page-URL driven) (observed 2026-07-26)Available behind a separate "Enable Individual Reel Scraping" toggle, with an extra charge noted on their listing (observed 2026-07-26)
Anti-bot approachChrome131 TLS impersonation via curl_cffi, documented in-repoNot documented on the listing (observed 2026-07-26)Claims "browser fingerprint impersonation" and no headless browser (observed 2026-07-26)

If your use case is feeding structured data to an LLM or a database, the output-shape row is the decision-maker: a nested payload with an embedded DASH manifest means every consumer downstream has to write its own extraction step before the data is usable, which is a reliability failure mode inside an agent loop, not a feature.

When another tool might suit you better

If you need Facebook Page or Profile data β€” bio, follower/like counts, category, About-page fields β€” alongside reels, this Actor won't get you there; it returns reel rows only. premiumscraper's combined Reels-and-Page/Profile scraper documents a dedicated Page/Profile extraction toggle for exactly that combined use case (observed on the Apify Store, 2026-07-26). If your workflow genuinely needs both reel and profile metadata in the same run, that combination is worth evaluating; if you only need reels, the narrower, flatter output here is simpler to consume.

Facebook Reels Scraper Plus within the Scrapio data stack

Facebook Reels Scraper Plus covers Facebook Reels specifically. For general Facebook page posts and comments, use Facebook Page Posts & Comments Scraper. For Facebook group activity, use Facebook Group Posts & Engagement Scraper. For keyword-driven post discovery across Facebook, use Facebook Posts Search Scraper. To resolve a Facebook vanity URL or username to its numeric ID before feeding it into any of these, use Facebook URL to ID Extractor.

Why do developers and data teams scrape Facebook Reels?

🏒 Social media and marketing teams

Agencies and in-house social teams feed startUrls with a client's or a competitor's page, cap resultsLimit, and turn on includeEngagement to pull reactionCount, commentCount, shareCount, and the computed engagementRate for every recent reel. The output lands directly in the Apify dataset for export to a reporting dashboard or spreadsheet β€” no manual tallying of Facebook's own rounded on-page counters, and ageDays makes it trivial to normalize performance by how long a reel has been live.

πŸ“Š AI training data and RAG indexing

caption, hashtags, mentions, and videoOwnerType are the highest-information text and category fields for reels β€” caption is the natural-language content, hashtags and mentions are structured entities already extracted, and videoOwnerType classifies the source. For RAG enrichment, index caption alongside ownerName, publishedAt, and url so a retrieval query can surface the reel and its context. For training data, durationSeconds, hashtags, isSponsored, and engagementRate (when includeEngagement is on) form a consistently typed feature set across every row, since Facebook's own value is normalized to an integer or boolean rather than left as a display string.

πŸ“± Competitive and market intelligence

Track a competitor's or industry's Reels cadence by running the same profile URLs on a schedule and diffing on publishedAt and reelId to catch new uploads, or on playCount and engagementRate to catch which existing reels are gaining traction. isSponsored flags paid/branded content separately from organic posts, so a monitoring pipeline can segment spend-driven reach from organic reach without manual review.

πŸ”¬ Research and academic use

Academic and social-research use cases β€” content analysis, virality studies, platform-behavior research β€” can build a structured Reels dataset from public profiles at scale. Every field documented in this README comes only from content Facebook serves to an unauthenticated visitor; no private, login-gated, or friends-only content is accessible to this Actor.

πŸŽ₯ Product and SaaS development

Because output is typed JSON with a stable field set, it's a direct fit for building a monitoring dashboard, a creator-analytics tool, or a content-archival product on top of scheduled runs. videoUrlHD/videoUrlSD give a downstream product direct playable/downloadable URLs without re-deriving them from Facebook's page markup.

🍚 Input Parameters

All parameters below are read directly from .actor/actor.json's input schema β€” names, types, defaults, and constraints are reproduced exactly.

ParameterRequiredTypeDescriptionExample Value
startUrlsYesarray (stringList)One entry per line. Profile/page URLs, plain usernames, or direct reel URLs/IDs."https://www.facebook.com/LeonardoDiCaprio/"
resultsLimitNointeger (min 1, max 10000, default 20)Stop after this many reels per profile (newest first). Ignored for single-reel URLs.20
includeEngagementNoboolean (default false)Adds reactionCount (exact), commentCount (exact), shareCount (Facebook-rounded), and derived engagementRate/virality. Costs one extra request per profile-sourced reel.true
onlyPostsNewerThanNostring (datepicker, absolute or relative, default "")Absolute date or relative window (e.g. 7 days, 2 weeks, 3 months). Leave blank for no cutoff. Applies only to profile-sourced reels, not single-reel URLs."3 months"
keywordsNoarray (stringList, default [])Keep only reels whose caption contains at least one of these (case-insensitive). Leave empty to keep all.["giveaway"]
excludeKeywordsNoarray (stringList, default [])Drop reels whose caption contains any of these (case-insensitive).["ad"]
minPlaysNointeger (min 0, default 0)Keep only reels with at least this many plays, using Facebook's rounded play count. 0 = no minimum.1000
minReactionsNointeger (min 0, default 0)Requires includeEngagement. Keep only reels with at least this many reactions. 0 = no minimum.50
minCommentsNointeger (min 0, default 0)Requires includeEngagement. Keep only reels with at least this many comments. 0 = no minimum.10
includeRawDataNoboolean (default false)Adds rawVideoDelivery β€” the DASH manifest XML plus all bitrate variants. Kept out of the default dataset table view.false
proxyConfigurationNoobject (proxy editor)Apify Proxy configuration. Residential proxy is strongly recommended β€” Facebook fingerprint-blocks datacenter IPs.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}

Example input

{
"startUrls": [
"https://www.facebook.com/LeonardoDiCaprio/",
"https://www.facebook.com/reel/1137009575037474"
],
"resultsLimit": 20,
"includeEngagement": true,
"onlyPostsNewerThan": "3 months",
"keywords": [],
"excludeKeywords": [],
"minPlays": 0,
"minReactions": 0,
"minComments": 0,
"includeRawData": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Supported URL types and input formats

startUrls accepts, one per line:

  • A profile or page URL β€” https://www.facebook.com/LeonardoDiCaprio/. Its Reels tab is opened and paginated automatically.
  • A bare username β€” LeonardoDiCaprio, without the domain. It is normalized to https://www.facebook.com/LeonardoDiCaprio internally (a leading @ is also stripped).
  • A profile.php?id=… URL β€” the numeric id query parameter is preserved and any sk parameter is replaced when the Reels tab is requested.
  • A direct reel URL or bare reel ID β€” https://www.facebook.com/reel/1137009575037474 or just 1137009575037474 (any digit-only string 6–25 characters long). This switches the Actor into single-reel mode: resultsLimit and onlyPostsNewerThan are ignored, and only that one reel is scraped.
  • A /videos/ or watch?v= URL containing a numeric ID is also recognized as single-reel input via the same ID-extraction pattern.

πŸ“¦ Output Format

Every reel is pushed as one flat JSON row to the Apify dataset as soon as it's parsed β€” rows stream in, they are not held back until the run finishes. The dataset's default view surfaces 24 of the row's fields as table columns; the row itself carries more.

Output for Reels

This is the complete row shape (39 keys with default settings; rawVideoDelivery is added as a 40th key only when includeRawData is true). Every key is copied from the row-building code in src/main.py and src/extract.py:

{
"type": "reel",
"reelId": "1137009575037474",
"url": "https://www.facebook.com/reel/1137009575037474",
"caption": "One Battle After Another #OneBattleAfterAnother",
"publishedAt": "2025-10-02T21:58:53.000Z",
"durationSeconds": 102.728,
"width": 1080,
"height": 1920,
"videoUrlHD": "https://video.xx.fbcdn.net/o1/v/t2/f2/...mp4",
"videoUrlSD": "https://video.xx.fbcdn.net/o1/v/t2/f2/...mp4",
"thumbnailUrl": "https://scontent.xx.fbcdn.net/v/t51.../thumb.jpg",
"ownerId": "100044203430980",
"ownerName": "Leonardo DiCaprio",
"ownerUrl": "https://www.facebook.com/LeonardoDiCaprio",
"ownerVerified": true,
"ownerAvatar": "https://scontent.xx.fbcdn.net/v/.../avatar.jpg",
"pageId": "9085937115",
"videoOwnerType": "FACEBOOK_USER",
"playCount": 1400000,
"playCountText": "1.4M",
"isReshare": false,
"isRemixable": false,
"isSponsored": false,
"ageDays": 297.15,
"hashtags": ["OneBattleAfterAnother"],
"mentions": [],
"externalLinks": [],
"emojis": [],
"captionLength": 49,
"wordCount": 5,
"reactionCount": 25724,
"commentCount": 8264,
"shareCount": 1400,
"shareCountText": "1.4K",
"totalEngagement": 35388,
"engagementRate": 0.025277,
"virality": 119.1,
"inputUrl": "https://www.facebook.com/LeonardoDiCaprio/",
"scrapedAt": "2026-07-26T00:00:00.000Z"
}

reactionCount, commentCount, shareCount, shareCountText, totalEngagement, engagementRate, and virality are null unless includeEngagement is true. When it is false, the keys are still present on every row β€” set to null, never omitted β€” so downstream schemas stay stable across runs regardless of which toggles were used.

Output for Owner data

Owner fields are embedded in the same reel row above, not a separate dataset β€” this Actor returns one entity (reels), with the owner identity as an attribute of each reel: ownerId, ownerName, ownerUrl, ownerVerified, ownerAvatar, pageId, videoOwnerType. videoOwnerType is Facebook's own unmodified value (observed values include FACEBOOK_USER; the Actor does not normalize or enumerate it). pageId is read from the reel's tracking payload and is only present when Facebook includes it there.

Output for Engagement Analytics

Also embedded in the same row: reactionCount and commentCount are exact integers taken from the reel's feedback object; shareCount/shareCountText follow the same rounded-value pattern as playCount/playCountText. totalEngagement is the sum of whichever of reactions/comments/shares are non-null; engagementRate is totalEngagement divided by playCount (only computed when playCount is a positive integer); virality is totalEngagement divided by ageDays (only computed when ageDays is positive) β€” a rough measure of engagement accrued per day since posting. All three are null when there isn't enough data to compute them, never zero.

Schema stability and export options

The full field set stays the same across runs regardless of how many reels come back β€” a null value replaces a missing field rather than the key being dropped, so consumers can rely on a fixed schema. If Facebook changes its internal page structure, individual fields may return null rather than break the run outright, since the code checks each source field's presence before extracting it. Results are stored in the Actor's default Apify dataset and can be exported from the Apify Console or API in JSON, CSV, Excel, XML, or HTML, or fetched programmatically via apify_client.

πŸ’‘ Facebook Reels Scraper Plus Strategy Guide

🎯 Strategy 1: Real-time enrichment pipeline

Trigger a run from your own system whenever a new profile or page enters your CRM or lead list β€” pass it as a startUrls entry with a tight resultsLimit (e.g. 5) and includeEngagement: true. Read the finished dataset via the Apify API, then write playCount, engagementRate, and ownerVerified back onto the lead record as social-proof signals before a rep ever looks at it.

🎯 Strategy 2: Scheduled monitoring and alerting

Set up an Apify schedule to run the same startUrls list daily or weekly. Diff each run's output against the previous one on reelId to detect new uploads, and on playCount/engagementRate for existing reels to catch ones that are suddenly gaining traction. Alert only on the delta that matters to you β€” a new reelId for content teams, a jump in engagementRate for community managers.

🎯 Strategy 3: Bulk dataset build

For a research or training corpus, feed a large startUrls list (one profile per line) in a single run, or split it across several parallel runs keyed by profile group. Set resultsLimit to the volume you need per profile β€” up to the schema's 10000 maximum β€” and export the combined dataset to CSV or push it straight into a database via the Apify API's dataset endpoints. No concurrency limit on simultaneous Actor runs is documented for this Actor; any limit encountered would come from your Apify plan's memory/run concurrency, not from this Actor's code.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentCRM/lead scoring on new recordsOn-demand, single-profile, low resultsLimitJSON via API, written back to source system
Scheduled monitoringCompetitor/brand tracking over timeRecurring Apify schedule, same startUrls each runJSON/CSV, diffed run-over-run
Bulk dataset buildResearch corpora, training dataOne large run or several parallel runsCSV/JSON export or direct database load
ScraperWhat it extracts
Facebook Page Posts & Comments ScraperPosts and comment threads from Facebook pages
Facebook Group Posts & Engagement ScraperPosts and engagement from Facebook groups
Facebook Posts Search ScraperKeyword-driven post discovery across Facebook
Facebook URL to ID ExtractorResolves a Facebook vanity URL/username to its numeric ID
TikTok Trending ScraperTrending short-form video data on TikTok, with trend insights
Pinterest ScraperPin data with engagement analytics
Instagram Hashtag ScraperInstagram posts, likes, and comments by hashtag

How to integrate Facebook Reels Scraper Plus with your stack

Facebook Reels Scraper Plus works with any language or tool that can make an HTTP request to the Apify API. The examples below use the actor name from .actor/actor.json: facebook-reels-scraper-plus.

Python

from apify_client import ApifyClient
import csv
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("facebook-reels-scraper-plus").call(run_input={
"startUrls": [
"https://www.facebook.com/LeonardoDiCaprio/",
"https://www.facebook.com/reel/1137009575037474",
],
"resultsLimit": 20,
"includeEngagement": True,
"minPlays": 0,
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
with open("reels.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=rows[0].keys())
writer.writeheader()
writer.writerows(rows)
print(f"Saved {len(rows)} reel rows to reels.csv")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_API_TOKEN>' });
const run = await client.actor('facebook-reels-scraper-plus').call({
startUrls: ['https://www.facebook.com/LeonardoDiCaprio/'],
resultsLimit: 20,
includeEngagement: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} reels`);
items.forEach(r => console.log(r.reelId, r.playCount, r.engagementRate));

Async and scheduled pipelines

For large startUrls lists, call the Actor via apify_client's .start() method instead of .call() to fire the run and return immediately, then poll the run status or subscribe to the run's webhook to know when the dataset is ready. For recurring collection, use an Apify schedule rather than a self-managed cron job β€” it runs this Actor with the same input on a fixed interval without you having to host anything.

🎯 Who Needs Facebook Reels Scraper Plus? (Use Cases & Industries)

🏒 Social media managers and agencies

Pull a client's or a competitor's recent reels with includeEngagement on, and report playCount, reactionCount, commentCount, shareCount, and engagementRate per reel without manually reading Facebook's on-page counters.

πŸ“Š AI and data engineering teams

Index caption, hashtags, and ownerName for RAG retrieval over a brand's or creator's reel history, or use the full row set as a consistently typed feature table for a classification or ranking model.

πŸ“± Competitive intelligence analysts

Track a set of competitor pages on a schedule and flag new reelId values or rising playCount/engagementRate on existing reels, with isSponsored separating paid content from organic.

πŸ”¬ Researchers

Build a public-data Reels dataset for content-analysis or virality research across as many public profiles as your startUrls list covers; every field traces back to content Facebook serves to an unauthenticated visitor.

πŸŽ₯ SaaS and product builders

Use videoUrlHD/videoUrlSD plus the full field set as the data layer for a creator-analytics dashboard, an archival tool, or a monitoring product, scheduled through Apify rather than self-hosted infrastructure.

Scraping publicly accessible web pages is generally lawful in the United States β€” the Ninth Circuit's hiQ Labs v. LinkedIn (2019, reaffirmed 2022) held that scraping data a website makes available without a login does not violate the Computer Fraud and Abuse Act. That precedent concerns unauthorized-access law, not Facebook's own Terms of Service β€” scraping in a way that violates a platform's ToS is a separate matter of civil contract risk, not a criminal one, and Facebook's terms do restrict automated data collection.

This Actor's output includes personal data where the reel owner is an individual β€” name, numeric ID, profile URL, avatar, and verification status. If you store or process this data about identifiable people, data protection laws such as the GDPR (EU/UK) or the CCPA (California) may apply to what you do with it, depending on your jurisdiction and use case.

Facebook Reels Scraper Plus returns only publicly accessible data. What you do with that data is your responsibility β€” consult legal counsel for commercial applications involving personal data.

❓ Frequently asked questions

Does Facebook Reels Scraper Plus work without a Facebook account?

Yes. Every request is an unauthenticated HTTP call to Facebook's public web pages β€” no login, cookies, or API token are used or required.

How does Facebook Reels Scraper Plus handle Facebook's anti-scraping measures?

Every request goes through curl_cffi with Chrome 131 TLS/JA3 impersonation (impersonate="chrome131"). A plain, non-impersonated request to a /reel/{id} URL returns an HTTP 400 empty shell rather than page content, which is why this is documented as a requirement rather than an optional hardening step. A Residential Apify proxy is strongly recommended in the input schema, since Facebook fingerprint-blocks datacenter IPs. GET requests retry up to 4 times with exponential backoff on connection errors and 5xx responses; the internal GraphQL pagination call retries up to 6 times with backoff on HTTP 429 and 502/503/504 responses.

Can I run Facebook Reels Scraper Plus at scale without getting blocked?

resultsLimit accepts up to 10,000 reels per profile, and the underlying pagination loop is internally capped at 400 GraphQL pages (roughly 12,000 reels at 30 per page) with a 35-page stall limit that stops pagination early if a profile runs out of new reels to return. No uptime or block-rate figure is published for this Actor; reliability in practice depends on your proxy pool, since Facebook's own rate limiting and IP reputation are outside this Actor's control.

How fresh is the data Facebook Reels Scraper Plus returns?

Every run fetches live from Facebook's own Reels-tab and reel-detail pages at the time it runs β€” nothing is cached or served from a prior run. scrapedAt on every row records exactly when that row was collected.

Does Facebook provide an official API for Reels I could use instead?

Not for arbitrary public profiles. Meta's own Reels API "allows access only to data created by Facebook Pages that you own, not any other public Facebook Page," as another Reels scraper on the Apify Store describes it (observed on the Apify Store, 2026-07-26) β€” meaning it cannot be used to collect Reels from third-party public pages or profiles the way this Actor does. Building and maintaining your own scraper against Facebook's internal GraphQL endpoints means re-solving TLS fingerprinting, endpoint/doc_id discovery, and retry logic yourself, and re-solving it again every time Facebook changes its front end.

Which fields work best for AI training and RAG indexing?

For RAG, index caption (the natural-language text) alongside ownerName, publishedAt, and url so a retrieval hit can be traced back to its source reel. For training data, durationSeconds, hashtags, videoOwnerType, isSponsored, and β€” when includeEngagement is on β€” engagementRate form a consistently typed feature set: every field returns as a typed primitive (string, number, boolean, or array), never a display string that needs parsing.

What happens to personal data returned by this Actor?

Facebook Reels Scraper Plus returns only publicly available data, including public profile identifiers where the reel owner is an individual. The lawful basis for storing and using that data β€” and compliance with GDPR, CCPA, or other applicable data protection law β€” sits with you as the operator of the run, not with the Actor.

Does Facebook Reels Scraper Plus work with Claude, ChatGPT, and other AI agent tools?

There is no dedicated MCP server documented for this Actor. It is callable as an HTTP endpoint by any agent framework through the Apify API β€” every response is typed JSON, so no HTML parsing step is required before passing a reel row into an LLM's context window.

How does Facebook Reels Scraper Plus compare to other Facebook Reels scrapers?

apify/facebook-reels-scraper documents a larger catalogue of Facebook-specific scrapers around it and a free-credit onboarding path (observed on the Apify Store, 2026-07-26), but its sample output row ships the full nested Facebook payload β€” including the DASH manifest XML and encrypted tracking blobs β€” by default, rather than flat columns. premiumscraper/facebook-reels-and-page-profile-scraper additionally extracts Page/Profile bio and follower data behind a separate toggle (observed on the Apify Store, 2026-07-26), which this Actor does not do β€” it is reels-only. Where Facebook Reels Scraper Plus differs from both: flat output by default with raw payload strictly opt-in, computed engagementRate/virality fields, and pre-fetch caption/play-count filtering that avoids the extra per-reel request entirely when a reel wouldn't pass anyway.

ℹ️ Disclaimer

Facebook Reels Scraper Plus extracts only publicly available data from Facebook. This tool is intended for lawful use cases only. Users are responsible for complying with Facebook's terms of service and applicable data protection laws in their jurisdiction.