Facebook Posts Scraper avatar

Facebook Posts Scraper

Pricing

from $0.79 / 1,000 posts

Go to Apify Store
Facebook Posts Scraper

Facebook Posts Scraper

Scrape posts from any public Facebook page: text, reactions by type, comments and shares counts, video views, photos, links, hashtags and mentions, plus each post's comments and replies. Date filters, no login, no cookies, no browser.

Pricing

from $0.79 / 1,000 posts

Rating

0.0

(0)

Developer

DeepMine

DeepMine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

Scrape posts from any public Facebook page: text, reactions by type, comments and shares counts, video views and plays, photos, links, hashtags, mentions, the post's top comment and the page's Ad Library id. Optionally get each post's comments and replies too. No login, no cookies, no browser.

๐Ÿท๏ธ Page๐Ÿ“ Textโค๏ธ Reactions๐Ÿ’ฌ Comments๐Ÿ” Shares๐ŸŽž๏ธ Type๐Ÿ“… Posted
BBC NewsElon Musk has suggested that the US government mayโ€ฆ733411Photo2026-10-15T00:00:07Z
BBC NewsWhy has Donald Trump posted an AI video of himselfโ€ฆ20518527Video2026-10-14T23:02:00Z
BBC NewsPresident Donald Trump has ousted Kimberly Guilfoyโ€ฆ1725312Video2026-10-14T22:32:08Z

Input

  • Facebook page or post links (startUrls): pages like https://www.facebook.com/humansofnewyork (or just humansofnewyork), or single post links.
  • Posts per page (resultsLimit): the newest N posts of each page; empty = every post the page shows.
  • Video transcripts (captionText): each video's captions as plain text in transcriptText, where the video has captions. Free: no add-on charge.
  • Posts newer than / older than (onlyPostsNewerThan, onlyPostsOlderThan): 2026-01-31, an ISO time, or 7 days, 3 months. Free: no add-on charge.
  • Get comments of each post (includeComments, maxCommentsPerPost, viewOption, includeNestedComments, onlyCommentsNewerThan): comments go to a separate Comments dataset.

The input keys are the same as apify/facebook-posts-scraper's and facebook-comments-scraper's (maxPosts and commentsSortOrder work as aliases), so most existing inputs run as they are.

Output

One row per post, the same keys in every row (null when Facebook doesn't show a value):

thumbnailUrl, pageName, text, textSnippet, url, likes (all reactions), comments, shares, viewsCount, videoPostViewCount, playCount, time, postType, isVideo, videoDurationSeconds, videoUrl, captionsUrl, captionsLocale, transcriptText, reactionLikeCount, reactionLoveCount, reactionCareCount, reactionHahaCount, reactionWowCount, reactionSadCount, reactionAngryCount, topReactionsCount, liveViewerCount, imageUrls, mediaUrls, mediaIds, imageCaptions, mediaCount, link, previewTitle, previewDescription, previewSource, previewImageUrl, previewTargetUrl, actionLinkTitle, actionLinkUrl, hashtags, mentions, textLinks, collaborators, paidPartnership, sharedPostId, sharedPostUrl, sharedPostText, sharedPostAuthor, sharedPostTime, topComments, topCommentsAuthors, topCommentsDetails, userName, userId, userProfileUrl, userProfilePic, pageAdLibraryId, isBusinessPageActive, postId, feedbackId, topLevelUrl, timestamp, timeCreated, timestampCreated, facebookUrl, the apify-compatible group below, inputUrl, scrapedAt.

apify-compatible keys. Code written against apify/facebook-posts-scraper's rows runs unchanged: every row also has its nested keys, built from the flat columns: facebookId (the page's id), user (id, name, profileUrl, profilePic), pageAdLibrary (id, is_business_page_active), textReferences (the text's hashtags, mentions and links as Facebook names them) and media (__typename, id, thumbnail, url, ocrText of each photo, video or link preview). topCommentsDetails is apify's topComments objects: commentId, commentUrl, text, date, likesCount, profileName, profileId, profileUrl, profilePicture, threadingDepth.

Comments rows: profilePicture, profileName, text, textSnippet, commentUrl, likesCount, commentsCount, date, threadingDepth, replyToCommentId, replyToName, reactions by type, attachmentImageUrls, attachmentType, mentions, isAuthorVerified, profileUrl, profileId, postTitle, postDescription, postUrl, postId, pageName, facebookId, commentId, id, feedbackId, timestamp, facebookUrl, inputUrl, scrapedAt.

Picture and video links are Facebook's signed CDN links: they expire after a few days, so download what you keep. Logged out, Facebook shows many commenters with an anonymous id and no profile link.

Video posts carry viewsCount (plays, as Facebook counts them), videoPostViewCount (views of the video in this post) and playCount. A post that shares someone else's video has no counters of its own. A video with captions names its captions file (captionsUrl, an .srt) and its language (captionsLocale); with Video transcripts on, transcriptText holds the captions as plain text (up to 50,000 characters).

A post that shares another post keeps its own words in text (empty when it adds none, postType "Share") and the original's id, text, link, author and time in sharedPostId, sharedPostText, sharedPostUrl, sharedPostAuthor and sharedPostTime.

Pricing

Pay per post, and per comment when you ask for comments. No start fee, no charge for date filters. A run never charges past your spending limit.