Facebook Posts Scraper
Pricing
from $6.38 / 1,000 post rows
Facebook Posts Scraper
Get posts from public Facebook Pages with date, text, reactions, comments, shares, and post link. No login and no cookies. Pages that refuse and addresses that are not Pages return a free row.
Pricing
from $6.38 / 1,000 post rows
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Security
Limited permissionsShare
Give it public Facebook Page names or addresses. It returns one row per post with date, text, reactions, comments, shares, media type, and link. No login and no cookies. You pay per post, and Mamba Labs pays the platform costs, including proxy.
Features
- One row per post, keyed by
post_id, with repeats removed in a run. - Public Pages only. Groups, personal profiles, and post links return a free row.
max_posts_per_pageand asince_datecutoff.- A Page that refuses returns a free row that says why, and the run moves to the next Page.
How the data is read
The actor reads the Page the way a logged out visitor does. The Page itself is read on the Apify proxy pool. Later posts come from the call the Page makes when a visitor scrolls, through a US residential exit, because that call answers "Rate limit exceeded" on the pool. It uses no login, no account, no browser, no captcha handling, and no other developer's actor. A refusal is not retried on another address.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
pages | array | Public Page names or facebook.com addresses, for example NASA. Groups and personal profiles are not read. In Clay, put the column inside a one item list. | |
max_posts_per_page | string | 20 | Text number from 1 to 500. Default 20. |
since_date | string | Optional date like 2026-01-31. Reading stops at the first post older than this. | |
max_charge_usd | string | Optional. The run stops before a charge that would pass this amount. Summary rows are always returned. |
Output
| Field | Type | What it holds |
|---|---|---|
row_type | string | One of: post, page_status, run_summary. run_summary is the one free row written when the input is refused. |
input | string | The Page name or address that produced this row. |
post_id | string | Facebook post ID. Stable key for dedupe across runs. |
post_url | string | Address of the post. |
posted_at | string | Post time, UTC. |
text | string | The post text. Empty when the post has none. |
reactions | integer | Total reactions shown on the post. |
comments | integer | Total comments shown on the post. Comment text is not read. |
shares | integer | Total shares shown on the post. |
media_type | string | Type of the first attachment, for example Photo or Video. |
link_url | string | External link attached to the post, if any. |
page_id | string | The Page ID on the post. |
page_name | string | The Page name on the post. |
row_status | string | ok, or why this row carries no data: no_results, no_change, partial, blocked, or error. |
error_reason | string | Why the row is not ok. A refused input reads input_invalid: followed by what to fix. |
billable_events_json | string | What this row was billed as, for example {"post-row":1}. {} means free. |
scraped_at | string | When the row was written, UTC. |
Pricing
Pay per event. Summary rows and a refused input are free.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
post-row, one post | $0.0075 | $0.007125 | $0.00675 | $0.006375 |
apify-actor-start, once per run (one per GB of memory; the default 512 MB is one) | $0.003 | $0.003 | $0.003 | $0.003 |
Per 1,000 rows of post-row: $7.50 on the free plan, $6.38 on Gold.
Free plan cap: 1.50 USD of evaluation a month, about 200 rows. Any paid Apify plan removes the cap, and it resets on the 1st. The run stops before a charge that passes your maximum charge per run in Apify or your max_charge_usd input.
Mamba Labs pays the platform costs of your run, Apify proxy traffic included.
Usage examples
Clay. Number and on or off inputs are text fields, which is what Clay sends. A list input takes a JSON list, so put the column inside a one item list.
MCP. The Mamba Labs MCP server @mambalabsdev/mcp-facebook-posts-scraper exposes this actor to Claude and other MCP clients.
Error handling
| Case | What you get |
|---|---|
| Missing or unreadable input | One free row, row_type run_summary, error_reason starting input_invalid: with what to fix. The run ends successfully and charges nothing but the run start |
| The run is close to its timeout | The actor stops starting new work 90 seconds before the timeout and delivers what it has |
Limitations
- Public Pages only. Groups, personal profiles, and private content are not read. Comment text and the names of people who commented or reacted are not returned.
- Some Page reads are refused. In tests on 2026-11-06, 5 of 21 first reads on the Apify proxy pool returned a redirect page or timed out instead of the Page (Microsoft, UNICEF, Samsung, Spotify, Walmart), and UNICEF read correctly in a later run. A refused Page returns a free row and is not retried on another address, so run it again later. A timeout gets one more read.
- A Page name that does not exist reads the same as a refused Page, because Facebook answers both with a page that holds no data.
- The paging call can change. Later posts depend on an internal Facebook call ID that Facebook rotates. When it changes, each Page returns its first post and a free
partialrow until this actor is updated. - Tested on 2026-11-06 up to 30 posts on each of 3 Pages and 12 posts on another, with no login wall. Deeper reads were not measured.
max_posts_per_pageallows 500. - About 2.5 seconds per post. A run of 5 Pages at 30 posts each took about 4 minutes.
- Posts carry what a logged out US visitor sees. Dates are UTC. A post with no text has an empty
text. - Each post costs more than some Store rivals, because later posts are read on residential exits. A run with
max_posts_per_pageset to 1 reads only the first post on each Page. - Facebook's terms restrict automated collection. You are responsible for how you use the data, including any personal data that appears in a post.
Mamba Labs actor suite
Built by Mamba Labs.