Facebook Scraper: Pages, Posts, Groups and Comments
This Actor returns public data from Facebook page, profile, group and post links: page rows with category, followers, contacts and ad status, post rows with text, reactions, shares, views and media, and optional comment rows. It is for brand teams, agencies and lead researchers who need Facebook data without an account or cookies.
Main price: $2.40 per 1,000 posts, same on every Apify plan.
What you can do with it
- Watch brand and competitor pages for new posts, reactions and comments on a schedule.
- Pull email, phone, website, address and category from business pages for lead lists.
- Follow public groups for questions, topics and product mentions.
- Collect full comment text for sentiment analysis and AI datasets.
- See from each page row whether the page is running ads.
What you get
Results come as rows in an Apify dataset, which you can export as JSON, CSV or Excel or read over the API. These are the main fields:
| Field | Example | Meaning |
|---|---|---|
type | post | page, post or comment |
text | Over more than a decade... | Post or comment text |
postedAt | 2026-10-30T01:00:00.000Z | Publish time (UTC) |
reactions, commentsCount, shares | 933, 119, 83 | Engagement counts, with a breakdown by reaction type |
author.name | National Geographic | Who posted it |
imageUrls, video | https://scontent-bos5-1.xx.fbcdn.net/... | Photos and video links |
email, phone, website, adStatus | as shown on the page | Page rows: contacts and ad status |
Pricing
This Actor is pay per event, with one price for every Apify plan, the free plan included. Prices are per 1,000 events.
| Event | What is charged | Price per 1,000 |
|---|---|---|
| Post from feed | One unique post from a page or group feed with text, date, reactions, comments, shares and media. | $2.40 |
| Page | One public Facebook page or profile with followers, category, contacts and about. | $6.50 |
| Post by link | One post fetched by its link, with full text, date, reaction breakdown, comments, shares and media. | $6.50 |
| Comment | One unique comment with text, date, reactions and commenter name and photo. | $0.75 |
No run start fee. Prices come from the Apify Store and can change; the Actor's Apify page always shows the current ones. Platform usage is billed through your Apify account.
Run it from code
Create an API token in Apify Console (Settings, API and Integrations) and replace YOUR_APIFY_TOKEN. This call starts a run with a small input and returns the rows when it finishes. Synchronous calls suit small inputs; for big jobs, start a run and read the dataset later.
curl
curl -X POST "https://api.apify.com/v2/acts/apisamurai~facebook-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"pageUrls": [
"https://www.facebook.com/NASA"
],
"maxPostsPerPage": 3
}'Python (pip install apify-client)
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"pageUrls": ["https://www.facebook.com/NASA"],
"maxPostsPerPage": 3,
}
# Start the Actor and wait for it to finish.
run = client.actor("apisamurai/facebook-scraper").call(run_input=run_input)
# Read the results from the run's default dataset.
items = client.dataset(run.default_dataset_id).list_items().items
for item in items:
print(item)JavaScript (npm install apify-client)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
pageUrls: ['https://www.facebook.com/NASA'],
maxPostsPerPage: 3,
};
// Start the Actor and wait for it to finish.
const run = await client.actor('apisamurai/facebook-scraper').call(input);
// Read the results from the run's default dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Client calls follow the Python and JavaScript client docs. The full input reference is on the Actor's Apify page.
FAQ
- Do I need a Facebook account or cookies?
- No. The Actor reads what a logged-out visitor sees. You only need an Apify account.
- Can it scrape private groups or profiles?
- No. Only public pages, profiles and groups. Private and age-restricted pages are reported in the SUMMARY record and cost nothing.
- Why do posts by link cost more than posts from a feed?
- A feed returns about 3 posts per data request, while each post link needs a request of its own. Post links also add share counts for group posts and views when Facebook shows them.
- Does it get replies to comments?
- No. Comment rows are top-level comments with their reply count. The Posted after date filters posts, not comments.
- What is not charged?
- Duplicates, posts older than Posted after, private or missing pages and failed lookups. There is no start fee. The free Apify plan allows up to 100 rows per run.
- Where do I report a problem?
- Email hello@apisamurai.com, or open an issue on the Actor's Apify page.