๐ Facebook Likes And Reactions Scraper ๐
Pricing
from $3.99 / 1,000 results
๐ Facebook Likes And Reactions Scraper ๐
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScraperX
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
๐ Facebook Likes And Reactions Scraper โ Extract Who Reacted to Any Post
Find out exactly who reacted to a Facebook post โ not just how many. Paste post URLs and the Actor returns one row per person, with their name, profile URL, profile picture, Facebook ID and the specific reaction they left: Like ๐, Love โค๏ธ, Haha ๐, Wow ๐ฎ, Sad ๐ข or Angry ๐ก.
Bulk input, per-post caps, and results streamed straight into your dataset.
What you get
| Field | What it gives you |
|---|---|
name | The person's display name |
reaction | Which reaction they left โ Like, Love, Haha, Wow, Sad or Angry |
profileUrl | Direct link to their Facebook profile |
userProfileImageUrl | Their profile picture URL |
facebookId | Their Facebook ID |
postId | The post they reacted to |
facebookUrl / inputUrl | The post URL you supplied |
pageAdLibrary | Ad Library reference for page reactors |
Key features
- Person-level reaction data. Reaction counts are on every post already. The value here is the list of people behind them โ names, profile links and which emotion each one chose.
- Every reaction type is distinguished. A Love and an Angry are very different signals; the Actor keeps them separate rather than lumping everything into "likes".
- Bulk post processing. Paste as many post URLs as you like; every row records which post it came from.
- Per-post caps.
resultsLimitbounds how many reactions are collected per URL, so cost and run time stay predictable across a long URL list. - Authenticated session. Uses your own Facebook cookies against Facebook's own GraphQL interface, so you see what a logged-in user sees.
- Cursor-based pagination. The reaction list is walked page by page until your cap is reached, not just the first visible batch.
- Automatic proxy fallback. The Actor handles datacenter and residential proxy escalation itself for a higher success rate.
- Live streaming output โ reactions land in the dataset as they are collected.
Use cases
- Engagement audience research โ see who actually engages with a page's content, not just the total.
- Lead generation โ people who react to a product post are showing intent; their public profiles are the follow-up path.
- Competitor audience analysis โ export reactors on a competitor's posts to understand who they reach.
- Sentiment analysis at person level โ Angry and Sad reactions on a post identify the people to look at when something goes wrong.
- Campaign measurement โ compare reactor lists across posts to see which creative pulled a different audience.
- Community management โ identify your most consistently engaged supporters across many posts.
- Influencer verification โ check whether a creator's reactions come from plausible, real profiles.
- Crisis monitoring โ a spike in Angry reactions, with the profiles attached, tells you who to respond to.
How it works
- You supply Facebook post URLs and your
c_userandxssession cookies. - Each post is resolved to its internal feedback object.
- The reaction list is paged with Facebook's own cursor mechanism, up to your per-post limit.
- Each reactor is normalised into a flat row โ name, reaction type, profile URL, picture and ID.
- On a block, the proxy tier escalates automatically.
- Rows stream into the dataset as they are collected.
Quick start
- Log in to facebook.com in your browser.
- Open DevTools โ Application โ Cookies โ
www.facebook.com. - Copy
c_user(a numeric ID) andxsinto the Actor's fields. - Paste one or more post URLs and set Max Results per URL.
- Click Start, then export the Output tab as CSV, Excel or JSON.
Minimal input
{"urls": ["https://www.facebook.com/zuck/posts/10117197689958261"],"resultsLimit": 50,"c_user": "<YOUR_C_USER_COOKIE>","xs": "<YOUR_XS_COOKIE>"}
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | โ (required) | One or more Facebook post URLs, e.g. https://www.facebook.com/zuck/posts/10117197689958261. |
resultsLimit | integer | 10 | Maximum reactions to collect per URL. |
c_user | string | โ | Your Facebook c_user cookie โ the numeric user ID. Required to authenticate against Facebook's GraphQL interface. |
xs | string | โ | Your Facebook xs cookie (URL-encoded session token) from the same session. |
proxyConfiguration | object | off | Optional. The Actor handles datacenter and residential fallbacks automatically for a higher success rate. |
โ ๏ธ Cookies are credentials.
c_userandxsgrant access to that Facebook account. Use a dedicated secondary account, never share the values, and note that automated activity can lead Facebook to restrict an account. Both values must come from the same logged-in session, and cookies rotate โ refresh them if requests start failing.
Output data
One row per reaction.
| Field | Type | Description |
|---|---|---|
name | string | Display name of the person who reacted. |
reaction | string | The reaction type โ Like, Love, Haha, Wow, Sad or Angry. |
profileUrl | string | Link to their Facebook profile. |
userProfileImageUrl | string | Profile picture URL. |
facebookId | string | Their Facebook ID. |
postId | string | ID of the post they reacted to. |
facebookUrl | string | The post URL supplied as input. |
inputUrl | string | Same input reference, convenient for grouping. |
pageAdLibrary | object | { is_business_page_active, id } โ Ad Library reference. |
Example output
{"postId": "10117197689958261","facebookUrl": "https://www.facebook.com/zuck/posts/10117197689958261","inputUrl": "https://www.facebook.com/zuck/posts/10117197689958261","reaction": "Love","name": "Jamie Example","profileUrl": "https://www.facebook.com/jamie.example","userProfileImageUrl": "https://scontent.xx.fbcdn.net/โฆ","facebookId": "100001234567890","pageAdLibrary": { "is_business_page_active": false, "id": "100001234567890" }}
Illustrative values โ a live run returns current Facebook data.
Usage examples
Reactors on several posts
{"urls": ["https://www.facebook.com/yourpage/posts/1111111111","https://www.facebook.com/yourpage/posts/2222222222","https://www.facebook.com/yourpage/posts/3333333333"],"resultsLimit": 200,"c_user": "<YOUR_C_USER_COOKIE>","xs": "<YOUR_XS_COOKIE>"}
Find your negative reactors
Run on a post that drew criticism, export to CSV, then filter reaction for Angry and Sad โ those are the people worth responding to first.
Find your strongest advocates
Run across many of your own posts and count how often each facebookId appears with a Love reaction. Repeat names are your genuine advocates.
Compare campaign creatives
Run two campaign posts, export both, and compare the reactor lists โ overlap tells you whether the second creative reached anyone new.
Competitor audience research
{"urls": ["https://www.facebook.com/competitorpage/posts/4444444444"],"resultsLimit": 500,"c_user": "<YOUR_C_USER_COOKIE>","xs": "<YOUR_XS_COOKIE>"}
Run it from your own code
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraperx/facebook-likes-and-reactions-scraper").call(run_input={"urls": ["https://www.facebook.com/zuck/posts/10117197689958261"],"resultsLimit": 100,"c_user": "<YOUR_C_USER_COOKIE>","xs": "<YOUR_XS_COOKIE>",})for r in client.dataset(run["defaultDatasetId"]).iterate_items():print(r["reaction"], "|", r["name"], "|", r["profileUrl"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('scraperx/facebook-likes-and-reactions-scraper').call({urls: ['https://www.facebook.com/zuck/posts/10117197689958261'],resultsLimit: 100,c_user: '<YOUR_C_USER_COOKIE>',xs: '<YOUR_XS_COOKIE>',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL
curl -X POST "https://api.apify.com/v2/acts/scraperx~facebook-likes-and-reactions-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"urls":["https://www.facebook.com/zuck/posts/10117197689958261"],"resultsLimit":100,"c_user":"<YOUR_C_USER_COOKIE>","xs":"<YOUR_XS_COOKIE>"}'
Integrations
Push reactors into Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your CRM via webhooks, and use Schedules to track engagement on a page's posts over time.
Pricing
Pay-per-event: a small Actor-start charge plus a charge per reaction row delivered to your dataset. resultsLimit is the cost lever โ keep it low while testing, raise it once you know a post is worth the depth.
Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run.
Limits & good to know
- Both cookies are required and must come from the same logged-in Facebook session. Expired cookies are the most common cause of a run failing โ refresh them from your browser.
resultsLimitis per URL, so five posts at 200 each can return up to 1,000 rows.- Public posts only. Posts restricted to friends or private groups are not accessible.
- Facebook does not always expose the full reactor list, especially on very large posts โ the Actor collects as deep as Facebook pages.
- Only names and public profile data are returned. No e-mail addresses, phone numbers or private information โ Facebook does not expose them, and this Actor does not attempt to derive them.
- Profile picture URLs point at Facebook's CDN and expire โ download promptly if you need the files.
- Use a dedicated secondary account: automated access can lead Facebook to restrict accounts.
- Default run options are 4 GB memory and a 1-hour timeout โ raise the timeout for many posts at high limits.
FAQ
Why do I need Facebook cookies? Facebook's reaction lists are not available to anonymous visitors. The Actor uses your session exactly as your browser does.
Where do I find c_user and xs?
Log in to facebook.com โ DevTools โ Application โ Cookies โ www.facebook.com โ copy both values.
Do I get the reaction type per person?
Yes โ reaction is Like, Love, Haha, Wow, Sad or Angry for each individual.
Can I scrape reactions on private posts? No. Only posts your session can legitimately view, and in practice public posts.
Why did I get fewer reactions than my limit? Facebook stopped returning more for that post. Very large posts often cap how deep the reactor list can be paged.
Do I get contact details? No. Only the public profile name, link, ID and picture.
Do I need a proxy? Not to start. The Actor handles datacenter and residential fallback automatically.
Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. CSV works perfectly โ the rows are flat.
Legal & responsible use
This Actor reads reaction lists that Facebook shows to a logged-in user โ it does not bypass privacy settings or access private data. Names, profile links and pictures are personal data about identifiable individuals, and reactions can reveal opinions and affiliations. Before processing this data, ensure you have a lawful basis under GDPR and comparable regulations, be careful about inferring anything sensitive from a reaction, honour deletion and opt-out requests, and comply with Facebook's Terms of Service. You are responsible for the account whose cookies you supply, including Facebook's restrictions on automated access.
Support
Need comment extraction, extra fields, or a custom engagement-analysis pipeline? Open an issue on the Issues tab of this Actor.


