Facebook Post & Reel Views Scraper (No Login) avatar

Facebook Post & Reel Views Scraper (No Login)

Pricing

from $1.79 / 1,000 link results

Go to Apify Store
Facebook Post & Reel Views Scraper (No Login)

Facebook Post & Reel Views Scraper (No Login)

Get exact views, plays, reactions, comments and shares for any public Facebook post, reel or video link. No login. Bulk links, export to CSV or JSON.

Pricing

from $1.79 / 1,000 link results

Rating

0.0

(0)

Developer

Datafinch

Datafinch

Maintained by Community

Actor stats

0

Bookmarked

21

Total users

9

Monthly active users

11 days ago

Last modified

Categories

Share

Paste Facebook post, reel and video links and get the current views, plays, reactions, comments and shares for each one. One row per link, with a clear status, no Facebook account needed.

Built by Datafinch: exact data where Facebook publishes it, low cost, one row per input with a clear status, and fields that stay consistent so your workflows don't break.

What it does

  • Exact views and plays for reels and videos, not just the rounded "581K views" label.
  • Reactions, comments and shares for posts, reels, videos and photos, with the reaction breakdown (Like, Love, Care, Haha, Wow, Sad, Angry) where Facebook publishes it.
  • Many links per run, up to 1,000.
  • One row per input link, including links that fail, so you can always match results back to your list.
  • No login, no cookies. Only publicly visible data is collected.

Supported links: posts (/posts/…, pfbid…), reels (/reel/…, /reels/…), videos (/videos/…, /watch/?v=…), photos, permalink.php and story.php, share links (/share/p/…, /share/r/…, /share/v/…) and fb.watch short links. www., m. and web. all work.

Input

{
"urls": [
"https://www.facebook.com/reel/930452829785006/",
"https://www.facebook.com/somepage/posts/pfbid0ABC...",
"https://fb.watch/abcDEF123/"
]
}

Only urls is required.

FieldDefaultWhat it does
urls–Facebook links, up to 1,000 per run.
proxyCountryUSCountry the posts are viewed from. Some posts are only available in some countries.
proxyConfigurationBuilt-inOptional: your own proxy URLs. Proxies are otherwise handled for you and included in the price.

Output

One row per input link:

{
"inputUrl": "https://www.facebook.com/reel/930452829785006/",
"inputIndex": 0,
"status": "ok",
"postType": "reel",
"likesCount": 15610,
"commentsCount": 985,
"sharesCount": 1300,
"sharesApprox": true,
"viewsCount": 209098,
"viewsText": "581K views",
"playCount": 581286,
"postId": "1645077636987606",
"videoId": "930452829785006",
"timestamp": "2026-10-02T02:09:39.000Z",
"authorName": "NASA - National Aeronautics and Space Administration",
"url": "https://www.facebook.com/reel/930452829785006/",
"duplicateOf": null,
"charged": true,
"error": null,
"scrapedAt": "2026-10-09T12:29:54.525Z"
}

A real result from 9 October 2026. Counts keep changing on Facebook.

Every row also carries the reaction breakdown. The same NASA reel on 10 October 2026:

{
"likesCount": 15684,
"reactionsLike": 12687, "reactionsLove": 2318, "reactionsHaha": 357, "reactionsCare": 251,
"reactionsWow": 57, "reactionsAngry": 12, "reactionsSad": 2, "reactionsOther": 0,
"reactionsBreakdownComplete": true,
"topReaction": "like"
}
FieldMeaning
inputUrlThe link exactly as you sent it.
inputIndexPosition of the link in your input list (0 = first). Rows are saved as each link finishes, so sort by this field to restore your input order.
statusResult for this link (see below).
likesCountTotal reactions (all reaction types: Like, Love, Haha and so on).
reactionsLike, reactionsLove, reactionsCare, reactionsHaha, reactionsWow, reactionsSad, reactionsAngryReactions per type. null when Facebook did not publish that type for this post.
reactionsOtherReactions of any type not listed above (for example a temporary seasonal reaction). Usually null or 0.
reactionsBreakdownCompletetrue when the per-type counts add up to likesCount. false when Facebook only published some types, so the parts add up to less. Empty (null) when there is no breakdown, for example on a failed link.
topReactionThe most-used reaction type (like, love, haha, ...).
commentsCount, sharesCountComment and share counts. sharesApprox is true when Facebook only shows a rounded share figure such as "1.7K", false when the share count is exact, and empty when there is no share count. It is in the API and exports, not in the Console table.
viewsCountViews (exact): Facebook's own view count for the video. On reels it is usually lower than plays; on many regular videos it equals plays. Facebook does not display this number on the page.
playCountPlays: the number Facebook displays as "views" on reels and videos, as an exact figure.
viewsTextThe label exactly as Facebook displays it, e.g. "581K views" (matches playCount, rounded). For very new reels Facebook may only publish this rounded figure; playCount then holds the rounded value.
postId, videoIdFacebook's post ID and video ID, kept separate.
timestampWhen the post was published.
authorName, authorId, authorUrlThe page or profile that published it.
chargedWhether this row was charged.
errorPlain-language reason when the status is not ok.
duplicateOfSet when the same post appeared earlier in your list. The row has the same data and is charged like any other row.

In Apify Console, the Post stats table shows the main counts; switch to the Reactions table to see all reaction types side by side.

Empty is not zero. A count Facebook does not publish for that post is null. 0 always means Facebook reported zero.

Status values

StatusMeaningCharged?
okCounts found.Yes
not_foundDeleted, removed, or the link is wrong.Yes
no_dataThe page loaded but had no counts for this post.Yes
errorNetwork or page error after retries.Yes
invalid_inputNot a single post: a Page, profile or group link, or not a Facebook link.Yes
free_limitOver the free-plan limit for one run.No
limit_reachedYour maximum cost per run was reached.No
blocked_stoppedThe run stopped because Facebook was blocking most requests.No
not_processedThe run stopped (timeout or abort) before this link.No

Pricing

$1.99 per 1,000 links (pay per result), plus Apify's small start fee per run.

Every link you send returns a row, and every row is charged, including links that are deleted, private, invalid or fail. Please check your links before large runs.

Not charged:

  • Links over the free-plan limit.
  • Links not processed because your maximum cost per run was reached, the run timed out or was aborted, or Facebook was blocking most requests (the run stops early to protect you).

Set a maximum cost per run in the run options to cap your spend; the run stops cleanly when it is reached.

Free Apify plan: up to 25 links per run, so you can try it.

Use with n8n, Make, Zapier or the API

Start the Actor with your list of links and read the dataset. Match results to your input with inputUrl or inputIndex.

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.facebook.com/reel/930452829785006/"]}'

Sync calls time out after 300 seconds. The Actor handles roughly one link per second, so keep sync requests to about 150 links. For larger lists, start the run, wait for it to finish (or use a webhook), then fetch the dataset.

Limits

  • Up to 1,000 links per run. Split bigger lists into several runs.
  • Public content only
  • Counts are a snapshot: they keep changing on Facebook. Every row has scrapedAt.
  • Speed depends on Facebook's response that day. No fixed rate is promised.

FAQ

Do I need a Facebook account or cookies? No. Only public pages are read, without logging in.

Why are views and plays different? Facebook records two numbers. The "views" figure you see on a reel is the play count (playCount), which counts every play, including replays. viewsCount is Facebook's separate view count, which it does not display: on reels it is usually lower than plays, on many regular videos the two are equal. We report both exactly as Facebook publishes them and never merge them. If you are comparing with the number shown on Facebook, use playCount.

Do reels have a reaction breakdown? Yes, where Facebook publishes it for the reel's video. If it doesn't, the reaction types are empty and the total is still in likesCount.

Why don't the reaction types add up to the total? Facebook often publishes only the most common reaction types for a post. The ones it doesn't publish are null (never a guessed 0) and reactionsBreakdownComplete is false. When it is true, missing types really are 0.

Why does sharesApprox say true? For some posts Facebook only publishes a rounded share figure such as "1.3K". We return it as 1300 and flag it, rather than guess.

Why does a reel show viewsText but no viewsCount? Facebook did not publish an exact figure for that reel; the rounded label is still returned.

Why is my output in a different order from my input? Rows are saved as soon as each link finishes, so you never lose finished results. Sort by inputIndex to restore your order.

Can I schedule it? Yes. Running the same links daily is a good way to track how a post's numbers grow.

Something looks wrong? Open an issue on the Issues tab with the link and the run ID.