Facebook Pages & Posts Scraper
Pricing
from $4.00 / 1,000 results
Facebook Pages & Posts Scraper
Extract public Facebook pages and posts with profiles, followers, business contacts, media, reactions and comment/share counts. Batch up to 25 pages, export JSON/CSV/Excel, or collect page details only. No login required.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Newbs
Maintained by CommunityActor stats
2
Bookmarked
9
Total users
3
Monthly active users
10 days ago
Last modified
Categories
Share
Extract public Facebook page profiles and posts into structured data for brand monitoring, content research and business analysis. Get page details, follower counts, public contacts, post text, timestamps, media links and engagement metrics. Export your results as JSON, CSV or Excel using Apify.
No Facebook login or API key required. Scrape up to 25 pages per run and up to 50 public feed posts per page, or use the faster profile-only mode.
Quick start
- Enter a Facebook page handle or URL in Facebook page handle or URL.
- Choose the maximum number of posts. Set it to 0 for page details only.
- Run the Actor and open the dataset to view or export your data.
- Check the Run summary output for any partial or unavailable pages.
{"socialName": "NASA","numberOfPosts": 5}
Pricing: $4 per 1,000 results + platform usage
Pricing transition: The result-based rate below applies when Apify's Pricing tab shows it as active. If a notice period is shown, the existing rate remains in force until its effective date.
Each result costs $0.004. There is no additional Actor startup fee.
| Request | What counts as a result | Result fee example |
|---|---|---|
| Posts | One extracted post saved to the dataset | 5 posts = $0.02 |
Page details only (numberOfPosts: 0) | One successfully extracted page profile | 100 profiles = $0.40 |
| Failed or unavailable extraction | No result fee | 0 results = $0 in result fees |
Apify platform usage is paid separately by the user, including compute, storage, data transfer and any proxy traffic. These usage charges can apply even when Facebook exposes no results. Your total is the result fee plus platform usage.
The export format does not change billing: a page row containing five nested posts counts as five results, just like five flat post rows. Page metadata is included with post extraction without an extra profile fee. Partial runs charge only for the usable posts saved. Unknown fields remain empty; diagnostics do not incur a result fee.
Use Apify's Maximum cost per run to cap event charges. The Actor stops delivering additional results when the result allowance is exhausted and reports skipped pages in OUTPUT. Platform usage is separate; work already in progress can still consume resources.
What you can extract
| Data | Available fields |
|---|---|
| Page identity | Name, canonical URL, page/profile IDs, verification status |
| Audience | Followers, following, public page likes when available; abbreviated counts marked approximate |
| Profile | Category, description, profile image, cover image |
| Business details | Listed websites, public email, phone, address, opening-status text, price range and business owner when exposed |
| Review summary | Recommendation percentage, review count and rating text when exposed |
| Posts | Post ID/URL, available full text, UTC timestamp, author, content type, links and hashtags |
| Engagement | Total reactions, Like count, reaction breakdown, comment count and share count |
| Media | Multiple photo/video entries, thumbnails, public playback URLs, duration, dimensions and caption links when exposed |
| Diagnostics | Complete/partial status, warnings, timing, request counts and proxy usage |
Facebook controls what anonymous visitors can see. Availability varies by page; the Actor does not invent missing values. Like count is distinct from total reactions. Video view counts are returned only when publicly exposed.
Scrape multiple pages and export posts
Use Multiple Facebook pages to process a batch. Choose One row per post for easier CSV or Excel analysis.
{"pages": ["NASA", "https://www.facebook.com/dior/", "PublicMarketCenter"],"numberOfPosts": 10,"outputMode": "posts","maxConcurrency": 2,"proxyMode": "auto"}
For page details only:
{"pages": ["NASA", "PublicMarketCenter"],"numberOfPosts": 0}
Input reference
| Field | Default | Description |
|---|---|---|
socialName | Required unless pages is supplied | Handle, @handle, page URL, mobile URL, numeric profile URL, or a page's about/posts tab URL. |
pages | — | 1–25 page handles or URLs. Overrides socialName. Equivalent normalized URLs are deduplicated. |
numberOfPosts | 5 | Maximum posts per page, 0–50. Zero extracts page details only. |
outputMode | pages | pages keeps nested posts. posts exports one row per post with page identifiers and followers. Profile-only requests always export page rows. |
proxyMode | auto | Try direct HTTP, then one residential proxy session if needed. never disables recovery; always uses a proxy for Facebook requests. |
proxyConfiguration | Residential recovery | Optional Apify or custom proxy settings. A disabled configuration disables recovery unless custom proxy URLs are supplied. |
maxConcurrency | 2 | Process 1–3 pages concurrently. |
globalTimeOut | 120 | 15–600 seconds per page, including recovery. Each request is limited to 15 seconds. Actor run timeout is separate. |
debugArtifacts | false | Save initial HTML for troubleshooting. It may include anonymous session data and increases storage usage. |
Groups and individual post URLs are not supported as page inputs.
Output formats
Pages: one dataset row per page, containing profile information, a posts array, status and diagnostics. Existing fields such as socialName, about, rating, posts, date, like, comment, share and iframeLink are retained. Post date and publishedAt use ISO UTC timestamps.
Posts: one dataset row per post, including pageId, profileId, pageName, pageUrl, followers, scrapedAt and the post fields. Pages with no posts create no flat post rows. Profile-only requests produce page rows in either mode.
The key-value store's OUTPUT record provides per-page statuses, exported post counts, result charges, spending-limit status and skipped pages in both formats.
Reliability and speed
The Actor uses lightweight HTTP requests, consistent anonymous sessions and bounded pagination. It deduplicates by post ID and uses proxy recovery only when needed. Start with 512 MB memory and leave debug artifacts off for routine runs.
In a September 16, 2026 benchmark of NASA and Dior, two five-post runs per page averaged 8.59 seconds, versus 24.50 seconds with the previous browser version: approximately 65% less run time. Measured platform usage was 37% lower, including residential proxy charges. These are sample measurements, not guaranteed performance or total-price savings. Result fees are separate.
Page statuses are success, partial, not_found, login_required, blocked or failed. Success means the requested maximum was reached, the public feed explicitly ended, or profile-only extraction completed. Mixed and partial runs may finish with a successful Actor status; check OUTPUT's partialPages, failedPages and billing.chargeLimitReached before treating a batch as complete.
Frequently asked questions
Can it scrape private pages or content behind login?
No. It extracts content available to anonymous public visitors. Facebook may apply login walls, rate limits or regional restrictions. Unavailable pages are reported clearly.
Does it download comments, reviews or follower lists?
No. It extracts public aggregate counts and post content. It does not enumerate comment text, individual reviews or follower identities.
Are contact details and opening hours always available?
No. It returns fields exposed on the page's main public response. This is not an exhaustive About-tab crawl. Opening-hours text may be a status such as “Closing Soon,” rather than a weekly timetable.
Are all posts chronological, and do media links last forever?
Facebook feed order may include pinned posts. Media and video playback URLs may expire. The Actor returns links; it does not download media files.
Why did I receive fewer posts than requested?
The page may have fewer public posts, or Facebook may restrict pagination. Review the page status and warnings. Proxy recovery can help when direct access is limited; proxyMode: "never" may return partial results.
How do I get help?
Open an issue on this Actor's Issues tab with your run URL, page URL, requested post count and expected result. Do not include passwords or login cookies.
Built and maintained by Newbs. This is an independent tool and is not affiliated with or endorsed by Meta or Facebook.
