Facebook Posts Scraper avatar

Facebook Posts Scraper

Pricing

from $2.00 / 1,000 result items

Go to Apify Store
Facebook Posts Scraper

Facebook Posts Scraper

Scrape Facebook posts from Facebook profiles, pages, groups etc. Retrieve post URLs, content, publication dates, author details, and engagement metrics. Ideal for Facebook monitoring solutions.

Pricing

from $2.00 / 1,000 result items

Rating

5.0

(5)

Developer

Scraper One

Scraper One

Maintained by Community

Actor stats

24

Bookmarked

1.8K

Total users

207

Monthly active users

2 hours ago

Last modified

Share

Apify Actor

This apify actor scrapes public posts from Facebook groups or pages based on input URLs. It supports pagination and returns data including post content, timestamp, number of comments, reactions, and author information. Ideal for social media monitoring solutions.

You can also provide direct URLs of individual public posts, group posts, reels, and videos.

Input

The actor accepts the following input fields:

FieldTypeRequiredDescription
pageUrlsstring[]✅A list of Facebook group or page URLs to scrape posts from.
resultsLimitnumber❌Maximum number of posts to extract from each URL (default: 10).
onlyPostsNewerThanstring❌Optional first day to include (YYYY-MM-DD, UTC). Supported for pages and groups; group posts are filtered before saving and counting toward the results limit.
onlyPostsOlderThanstring❌Optional last day to include (YYYY-MM-DD, includes the whole day in UTC). Supported for pages only; ignored for groups with a console message.

Example input

{
"resultsLimit": 3,
"pageUrls": [
"https://www.facebook.com/groups/1054903574928547",
"https://www.facebook.com/tweakedmotorsports",
"https://www.facebook.com/groups/289835267786139"
]
}

Example input with a date range

{
"resultsLimit": 20,
"pageUrls": [
"https://www.facebook.com/NFL"
],
"onlyPostsNewerThan": "2023-03-01",
"onlyPostsOlderThan": "2023-03-31"
}

Example input with page and individual post URLs

You can mix page URLs and direct links to individual posts in the same input:

{
"resultsLimit": 3,
"pageUrls": [
// Page URL — collect posts from this page
"https://www.facebook.com/knowyourmeme",
// Direct post URL — collect this individual post
"https://www.facebook.com/knowyourmeme/posts/1528500792655485",
// Direct reel URL is also supported
"https://www.facebook.com/reel/2571258890059094"
]
}

Remove comments before using this example as JSON input.

resultsLimit applies to each input URL. A direct link to an individual post, reel, or video returns at most one result. Direct links to group posts and videos are also supported, including /groups/.../permalink/..., /watch/?v=..., and /.../videos/.... Facebook share links that lead to supported content can also be used. For individual posts, reels, and videos, both date filters apply, including individual group posts; an item outside the selected date range is not returned.

Output

The actor outputs an array of post objects in JSON format with the following fields. When Facebook provides a tagged location for a post, its ID is returned in the optional taggedLocationId field. The optional sharesCount field contains the number of shares when Facebook provides an exact numeric count. It is omitted when unavailable, including video payloads without a share counter.

For individual post, reel, and video inputs, pageUrl identifies the input URL, while url is the content URL returned by Facebook. These addresses can differ, for example when a share link leads to a post or a watch link returns a reel URL.

Example output

{
"url": "https://www.facebook.com/groups/1054903574928547/permalink/2303563860062506/",
"pageUrl": "https://www.facebook.com/groups/1054903574928547",
"timestamp": 1752519380000,
"postText": "Hey, how can I save my geranium? I repotted it and now it’s wilting before my eyes. 😔",
"reactionsCount": 3,
"reactions": {
"like": 3,
"love": 10,
"sad": 15,
"angry": 4,
"haha": 1
},
"commentsCount": 20,
"sharesCount": 2,
"isReshare": false,
"sharedPost": null,
"postId": "2303563860062506",
"taggedLocationId": "109524955741121",
"author": {
"id": "100055230212550",
"name": "Yyyyy Tttttt",
"profilePicture": "https://scontent-mad2-1.xx.fbcdn.net/v/t39.30808-1/274300141_461291382388532_2921259538884887660_n.jpg?...",
"profileUrl": "https://www.facebook.com/kttata.adasda.44"
},
"attachments": [
{
"type": "photo",
"url": "https://scontent.fpoz3-1.fna.fbcdn.net/v/t39.30808-6/805805802_10167424495778942_2119050250610320982_n.jpg?stp=dst-jpg_tt6&cstp=mx2048x1536&ctp=s2048x1536&_nc_cat=109&ccb=1-7&_nc_sid=aa7b47&_nc_ohc=nDfW8CwH7eYQ7kNvwGTDcr3&_nc_oc=AdqjS9IUfkGRBUydeYh0oNo_Q_ncMOnLqoyBPYlyNFxhzYh4DRNw7_W9MIlNbNnQA-o&_nc_zt=23&_nc_ht=scontent.fpoz3-1.fna&_nc_gid=vLuoo5GCOAZwj57ayS-O7w&_nc_ss=7b2a8&oh=00_AQLqOsIqm2inOBfatn2_dQqun2saltWbuegBX0pXVB9axQ&oe=6AAB5415",
"id": "10162424501293942",
"accessibilityCaption": "May be an image of speaker, lighting and text"
}
]
}

Example output for a shared post

{
"url": "https://www.facebook.com/auroraaudio/posts/pfbid02R48dV6WxBU59mfg8nDBPLY3rZBdGqJ6QSThgA9MTzSooLxibptb54BhuS3DhhyRm",
"pageUrl": "https://www.facebook.com/NorthHiFi",
"timestamp": 1749803809000,
"postText": "",
"reactionsCount": 417,
"reactions": {
"like": 371,
"love": 42,
"support": 3,
"wow": 1
},
"commentsCount": 31,
"sharesCount": 19,
"isReshare": true,
"sharedPost": {
"postId": "716284953810627",
"url": "https://www.facebook.com/auroraaudio/posts/pfbid02R48dV6WxBU59mfg8nDBPLY3rZBdGqJ6QSThgA9MTzSooLxibptb54BhuS3DhhyRm",
"postText": "A new review of our AA6-MKII integrated amplifier is out! Thank you for the kind words and the listening session.",
"author": {
"id": "100080039527614",
"name": "AURORA AUDIO",
"profilePicture": "https://scontent.fpoz3-1.fna.fbcdn.net/v/t39.30808-1/328395162_896374205618293_2694187352069871435_n.jpg?...",
"profileUrl": "https://www.facebook.com/auroraaudio"
},
"timestamp": 1749803809000,
"attachments": [
{
"type": "photo",
"url": "https://scontent.fpoz3-1.fna.fbcdn.net/v/t39.30808-6/505793216_716291997143256_2113985267041829653_n.jpg?...",
"id": "716291987143257",
"accessibilityCaption": "May be an image of an amplifier and review text"
}
]
},
"postId": "1222096845078316",
"author": {
"id": "100057092683415",
"name": "NorthHiFi",
"profilePicture": "https://scontent.fpoz3-1.fna.fbcdn.net/v/t39.30808-1/309874652_589306247815923_5332871964085637214_n.jpg?...",
"profileUrl": "https://www.facebook.com/northhifi"
}
}
Let me know if you need additional output fields! 🤙

Usage

  1. Create an Apify account and navigate to the actor.
  2. Configure input parameters in the Apify UI or via API.
  3. Run the actor and monitor execution logs.
  4. Download extracted comments as JSON, CSV, or Excel.

Limitations & Notes

  • Scraping Facebook data must comply with their Terms of Service.
  • Avoid excessive scraping to prevent IP bans.
  • The accuracy of data depends on Facebook’s page structure and visibility settings.
  • Free users can process up to 5 page URLs per run and retrieve up to 100 posts per page URL.
  • Free users are rate-limited to a certain number of processed page URLs per day.
  • For higher usage limits, upgrade to a paid Apify plan.

Works Best With

For the best results, use this scraper alongside Facebook Comments Scraper.

Before extracting comments, you can use the Facebook Posts Scraper actor to gather post URLs from specified pages. Then, pass those URLs into Facebook Comments Scraper to collect comments associated with those posts. ✅ Best Use Case Scenario

  • Run Facebook Posts Scraper → Collect posts from facebook pages.
  • Feed post URLs into Facebook Comments Scraper → Extract comments for each post.
  • Gain complete insights → Combine posts and comments for a full dataset, useful for engagement analysis, sentiment tracking, and social media monitoring.

This combination provides a powerful way to analyze conversations happening around specific posts! 🚀

If you're working with multiple platforms or want additional data sources, check out these scrapers:

Support & Contact

✉️ If you encounter issues or need help, feel free to open an issue or contact us at scraper1one@gmail.com.