Facebook Comments Scraper — No Login, No API Key
Pricing
from $1.94 / 1,000 facebook comments scraper — no login, no api keys
Facebook Comments Scraper — No Login, No API Key
**Scrape Facebook post comments without login or API key.** Returns author, text, timestamps, and full reply threading in a clean flat schema. No browser or Playwright needed. Public posts, pages, and groups.
Pricing
from $1.94 / 1,000 facebook comments scraper — no login, no api keys
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
Scrape comments from public Facebook posts without login, without a Meta API key, and without a Facebook developer account. This Facebook post comments scraper returns structured comment data — author, text, timestamps, reply threading, and IDs — in a clean flat schema with a parse_confidence drift signal.
Works on public posts, pages, and groups. Residential proxy is required on Apify cloud (pre-filled by default) because Facebook blocks datacenter IP ranges.
How this Facebook comments scraper beats the alternatives
Most Facebook comment scrapers depend on the official Graph API (limited to content you own or administer) or rely on headless Chromium which Facebook actively detects and blocks. This actor accesses Facebook's public SSR pages without a browser process:
- Fetches the public post URL — no Chromium, no Playwright.
- Handles Facebook's
__rd_verifychallenge transparently in the same session. - Parses comments from Facebook's server-side rendered ScheduledServerJS (
data-sjs) blobs embedded in the page HTML — structured Relay store data with all core comment fields. - Streams results in real time with PPE billing per comment — you pay only for what's collected.
When Facebook changes its SSR payload structure, parse_confidence drops below 0.6 and the actor logs a loud warning — giving you a machine-readable drift signal instead of silent wrong data.
What you get per comment
| Field | Example |
|---|---|
comment_id | 10155345678901234 |
post_id | 123456789 |
post_url | https://www.facebook.com/page/posts/... |
author_name | Alice Johnson |
author_profile_url | https://www.facebook.com/alice.johnson |
text | Great post! 🔥 |
like_count | 12 (null for some posts — reaction counts are not always SSR-embedded) |
reply_count | 2 |
created_time | 2024-06-01T10:00:00+00:00 |
is_reply | false |
parent_id | null (or parent comment ID for replies) |
parse_confidence | 0.75–1.0 |
warnings | ["missing_created_time"] (empty if clean) |
How it works
- Fetches the public post URL without a browser process. No Chromium, no Playwright.
- Handles Facebook's
__rd_verifychallenge transparently — a single verification step in the same session, then re-fetches the page. - Parses comments from Facebook's ScheduledServerJS
data-sjsblobs — the server-side rendered Relay store that Facebook embeds in every page load. These blobs carry structured comment objects:legacy_fbid,body.text,author.name,created_time,depth, parent chain. - Streams results in real time with PPE billing per comment.
Scope & limitations
- Public posts/pages/groups: SSR-rendered comments per page load (~15–25 top-level), no login needed.
- Private profiles / friend-only posts: login required — not supported.
- Reels / Stories: out of scope.
like_count: reaction counts are not always embedded in Facebook's SSR payload — this field may benull. Author, text, timestamp, and threading fields are always populated.- Pagination: V1 extracts the SSR-rendered first batch per URL. For deeper pagination, run multiple targeted URLs.
Proxy requirement
Facebook blocks datacenter IPs. On the Apify cloud you MUST use a RESIDENTIAL proxy. The default input pre-fills RESIDENTIAL group — don't change it. Proxy cost is billed to your Apify account as part of the run.
Input
{"postUrls": ["https://www.facebook.com/someuser/posts/123456789","https://www.facebook.com/permalink/12345"],"maxComments": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
| Field | Type | Default | Description |
|---|---|---|---|
postUrls | string[] | — | Required. Public post URLs. |
maxComments | integer | unlimited | Cap per post (includes replies). |
pageSize | integer | 25 | Real-time streaming batch size. |
proxyConfiguration | object | RESIDENTIAL | Proxy config. RESIDENTIAL required. |
Maintenance note
Facebook changes its SSR payload structure occasionally. When it does, parse_confidence drops below 0.6 and the actor logs a loud warning. That's the signal to patch the normalizer — the data-sjs blob structure and field names are the anchor points to check.
Frequently asked questions
Can I scrape Facebook comments without a Facebook account?
Yes. This actor scrapes public posts without login or cookies. Facebook's SSR payload delivers comment data server-side — no login needed to access it.
Does this work on Facebook Pages, Groups, and personal posts?
Yes for public pages and public groups. Personal posts set to "Friends only" or narrower visibility are not accessible — the actor returns zero results for those.
How many comments can I scrape per post?
The actor extracts the SSR-rendered batch per page load (typically 15–25 top-level comments per URL). Use maxComments to cap the output. For posts with hundreds of comments, supply multiple permalink URLs targeting different comment ranges.
Why is RESIDENTIAL proxy required?
Facebook blocks Apify's datacenter IP ranges. The default input pre-fills RESIDENTIAL proxy group — this is the expected way to run this actor on Apify cloud. Proxy cost is billed to your Apify account at standard rates; the actor cost is PPE per comment only.
What does parse_confidence mean?
Every comment record includes a parse_confidence score (0.0–1.0). A score of 1.0 means all expected fields were found. Below 0.6 indicates schema drift — Facebook changed its internal format. The actor logs a warning and you can filter low-quality records programmatically.
Integrations
Built for social-listening and community-research teams mining public post engagement and comment sentiment — the JSON/dataset output drops into the tools you already run, no glue code:
- n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
- Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
- MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
- API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.
See all Apify integrations.
Legal
Scrapes publicly-accessible data without login. Standard public-data scraping considerations apply. Not affiliated with Meta Platforms, Inc.