Facebook Likes Scraper — Public Reactions & Profiles avatar

Facebook Likes Scraper — Public Reactions & Profiles

Deprecated

Pricing

from $10.00 / 1,000 public reaction records

Go to Apify Store
Facebook Likes Scraper — Public Reactions & Profiles

Facebook Likes Scraper — Public Reactions & Profiles

Deprecated

Extract public Facebook likes and reaction previews with display names, profile URLs and reaction types, plus clear source diagnostics. No Facebook cookies needed.

Pricing

from $10.00 / 1,000 public reaction records

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

3 days ago

Last modified

Share

What is Facebook Likes Scraper?

Facebook Likes Scraper is an Apify Actor for people who need public Facebook reaction previews from post or reel URLs. It accepts one or more public facebook.com post or reel URLs, returns one dataset record per public reactor preview or one truthful aggregate fallback record, and surfaces fields such as reaction type, public display name, profile URL, reaction count, source route, and scrape timestamp. The result is a structured dataset that works for review, analysis, and agent workflows through Apify and Apify MCP.

Best fit and connected workflows

This Actor fits workflows that start with a specific public Facebook post or reel and need reaction-level data or a count-only fallback in a consistent schema. It is useful when the next step is to:

  • review public reaction identities for a post audit,
  • compare public reaction previews across several URLs,
  • feed structured public reaction records into analytics or AI workflows,
  • inspect the source route and timestamp for each saved row.

If your workflow begins with public Facebook post URLs and ends with dataset rows that separate individual reactors from aggregate metrics, this Actor provides that path in one place.

Practical scenario

A social media analyst has a public reel URL from a campaign review and wants to see which public reactors Facebook exposes, plus a clean timestamp for the scrape. They submit the reel URL in postUrls and set maxResults to 25.

The returned rows can include recordType, reactionType, reactorName, reactorProfileUrl, source, and scrapedAt. The analyst can then decide whether to compare the visible public reactors with another post, or pass the dataset to a reporting step that groups reactions by type and source.

Input

FieldTypeDescription
postUrlsarray of stringPublic Facebook post or reel URLs to inspect. Use one URL for a focused reaction audit or several URLs for comparison.
maxResultsintegerGlobal cap for dataset rows. Defaults to 50 and accepts 1 through 500.
maxResultsPerPostintegerPer-post cap when multiple URLs are supplied. Defaults to 50 and accepts 1 through 100.
sourceModestringData source mode. auto tries the native no-cookie Apify reaction path first, then provider fallbacks. apifyNative uses only the native path.

Focused input example

{
"postUrls": [
"https://www.facebook.com/reel/753347914167361"
],
"maxResults": 10,
"maxResultsPerPost": 10,
"sourceMode": "auto"
}

Output

FieldTypeDescription
recordTypestringpublic_reactor for one public Facebook reactor, or aggregate_metrics for a truthful count-only fallback record.
postUrlstringCanonical public post or reel URL supplied to the Actor.
reactionTypestring or nullPublic reaction label such as like, love, care, wow, sad, angry, or haha.
reactorNamestring or nullPublic display name shown by Facebook when available.
reactorProfileUrlstring or nullPublic Facebook profile link when available.
reactorIdstring or nullFacebook identifier supplied by the native public reaction source.
postIdstring or nullSource post identifier when exposed by the selected source.
reactionCountinteger or nullCount-only fallback metric. Null for individual public reactor records.
sourcestringData source route that returned the record.
scrapedAtstringISO 8601 timestamp for when the dataset row was normalized.

Illustrative output record

{
"recordType": "public_reactor",
"postUrl": "https://www.facebook.com/reel/753347914167361",
"reactionType": "love",
"reactorName": "Ada Lovelace",
"reactorProfileUrl": "https://www.facebook.com/example.profile",
"reactorId": "123456789",
"postId": "123456789_987654321",
"reactionCount": null,
"source": "apifyNative",
"scrapedAt": "2026-07-15T18:25:15.752Z"
}

How it works

This Actor uses a native, no-cookie Apify reaction path first when sourceMode is auto. When that path returns public reactor previews, the Actor stores one row per visible reactor. When a provider fallback is used, it returns only declared aggregate reaction metrics and keeps the record truthful by labeling it as aggregate_metrics.

The dataset schema separates public reactor rows from count-only fallback rows, so downstream systems can distinguish identity-level previews from aggregate metrics. The Actor also writes a stable OUTPUT record and a RUN_SUMMARY record for terminal status and billing diagnostics.

Pricing

This Actor uses Pay per event plus Apify platform usage. The live Pricing tab on the Apify Actor page shows the current event charges and platform usage details, so always confirm the latest pricing there before running.

As a simple event-count example, if a run starts once and saves ten public reaction records, the billed events include one Actor start event and ten reaction-scraped events, plus Apify platform usage.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It is useful when an agent needs a tool that returns structured public Facebook reaction records for specific post or reel URLs.

Actor identity: khadinakbar/facebook-likes-scraper

Inspect these public Facebook post URLs and return one row per publicly visible reactor preview when available. If only a count is available, return the truthful aggregate metrics record. Keep the source and scrape timestamp for each row.

The dataset records preserve provenance through source and scrapedAt. For public_reactor rows, reactionType, reactorName, and reactorProfileUrl describe the visible public preview. For aggregate_metrics rows, reactionCount carries the count-only fallback metric and identity fields remain null.

Pagination and cost guidance:

  • maxResults sets the global record cap.
  • maxResultsPerPost sets the per-URL cap when multiple posts are submitted.
  • auto uses the native no-cookie path first.
  • Provider modes return declared aggregate metrics only, so agent logic can branch on recordType before writing any downstream summary.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/facebook-likes-scraper').call({
postUrls: ['https://www.facebook.com/reel/753347914167361'],
maxResults: 10,
sourceMode: 'auto',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use a public post or reel URL in postUrls, and keep sourceMode aligned with the shape of data you want:

  • auto for native-first public previews with fallback handling,
  • apifyNative for native public reaction previews only,
  • provider modes when you want declared count-level fallback records from the configured sources.

When you submit several URLs in one run, set both maxResults and maxResultsPerPost so the batch stays aligned with your downstream processing needs. For analysis workflows, check recordType first, then group by reactionType, source, or postUrl as needed.

Continue the workflow

Design note

I found that the dataset contract separates public_reactor and aggregate_metrics in recordType, which makes the output easy to branch on in downstream tools.

FAQ

Can I use this Actor with a public reel URL?
Yes. The input schema accepts public Facebook post or reel URLs.

What if I submit several URLs?
The Actor can process several public URLs in one run, and maxResultsPerPost helps distribute the global cap across them.

When should I choose apifyNative?
Choose it when you want only the native no-cookie Apify reaction path.

What does aggregate_metrics mean in the output?
It means the record carries a truthful count-only fallback metric instead of an individual public reactor preview.

How do I use the data in an AI workflow?
Read the dataset rows, branch on recordType, and use the public fields such as reactionType, reactorName, reactorProfileUrl, source, and scrapedAt as structured inputs.

Responsible use

Use this Actor for public Facebook posts and reels that are relevant to your research, analysis, or automation workflow. Facebook controls which reaction identities are publicly visible, so the Actor reflects what is exposed publicly rather than trying to infer hidden identities. Keep any downstream use aligned with applicable law, Facebook policies, and the rights of the people represented in public data.