Facebook Search Scraper - Posts, Pages & Places avatar

Facebook Search Scraper - Posts, Pages & Places

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Facebook Search Scraper - Posts, Pages & Places

Facebook Search Scraper - Posts, Pages & Places

Search publicly indexed Facebook posts, pages, profiles and places by keyword. Supports location and date filters without a Facebook login, cookies or account pool.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Thirdwatch

Thirdwatch

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

a day ago

Last modified

Share

Facebook Scraper — Page Posts, Group Posts, Comments & Page Details

What you get

Scrape public Facebook data over plain HTTP: posts from a Page, posts from a public Group, comments and reply threads on a post, public Page details, and keyword search over the public web index.

No Facebook account, no cookies, no c_user/xs session, no cookie pool and no browser. Every request is the request an anonymous visitor's browser makes, and the Actor reads the same public payload Facebook renders for that visitor.

Modes

ModeInputReturns
page_postspageUrlsPosts from a public Page or profile timeline
group_postsgroupUrlsPosts from a public Group discussion feed
post_commentspostUrlsComments and replies on a public post
page_detailspageUrlsPublic About block: category, followers, contact info
searchqueryPublic Facebook URLs matching a keyword

page_posts — posts by Page URL or username

Accepts a full URL (https://www.facebook.com/nasa), a bare username (nasa), a /posts/ URL, or a profile.php?id=... URL.

{
"mode": "page_posts",
"pageUrls": ["nasa", "https://www.facebook.com/BBCNews"],
"maxResults": 100
}

group_posts — posts by public group URL

{
"mode": "group_posts",
"groupUrls": ["https://www.facebook.com/groups/1443890352589739/"],
"maxResults": 100
}

Private, closed and members-only groups are not readable without a login. The Actor reports them as a failure rather than returning an empty result set.

Post fields (page_posts, group_posts)

FieldDescription
post_id, post_url, story_idIdentifiers and the public permalink
textFull post text
created_at, timestampISO 8601 UTC and raw Unix seconds
author_name, author_id, author_urlPoster identity
reactions_count, reactions_breakdownTotal plus per-type counts (Like, Love, Care, Haha, Wow, Sad, Angry)
comments_count, shares_count, video_viewsEngagement
media_type, image_urls, link_urlAttached media and the unwrapped outbound link
source_url, source_type, source_nameThe Page or Group the post came from

post_comments — comments and replies by post URL

Accepts a Page post (/posts/..., including the pfbid... form), a public group post (/groups/<group>/posts/<id>/), /photo/?fbid=..., /videos/... and permalink.php URLs.

Reels (/reel/...) are not supported: Facebook renders no comment payload at all for a logged-out reel viewer. A reel URL fails the run with that reason rather than returning zero comments.

{
"mode": "post_comments",
"postUrls": ["https://www.facebook.com/NASA/posts/1619357056226331"],
"maxCommentsPerPost": 100,
"includeReplies": true,
"maxRepliesPerComment": 10
}

maxCommentsPerPost caps top-level comments; replies are returned in addition and capped separately by maxRepliesPerComment.

Facebook serves anonymous visitors only part of a busy thread. A post whose counter reads 87 comments typically streams around 30 of them before the public cursor runs out; the run ends successfully at that point, because the source genuinely stopped serving, and the log says how many the post claims to have.

Comment fields

FieldDescription
comment_id, comment_urlIdentifier and direct ?comment_id= link
post_id, post_urlThe post the comment belongs to
textComment body
created_at, timestampISO 8601 UTC and raw Unix seconds
author_name, author_id, author_urlCommenter identity
depth, is_reply, parent_comment_idThread position — join replies to their parent
replies_countReplies under this comment
reactions_count, reactions_breakdownReaction total and per-type counts
attachment_urlsImages attached to the comment

Rebuild a thread by grouping on parent_comment_id: rows with is_reply: false are the roots, rows with is_reply: true hang off the root whose comment_id matches their parent_comment_id.

page_details — public About info

{"mode": "page_details", "pageUrls": ["nasa", "bbcnews"]}

Returns page_id, name, username, url, intro, categories, followers_text, likes_text, talking_about_text, websites, emails, phones, addresses, other_fields, profile_picture_url, cover_photo_url.

search — keyword search over the public index

{
"mode": "search",
"query": "artificial intelligence",
"search_type": "posts",
"max_posts": 25,
"location": "United States"
}

search_type is posts, pages, places or global. Optional location, recent_posts, start_date, end_date and queries (up to 19 extra terms) narrow the search. This is public web-index search, not Facebook's personalized logged-in search: coverage and ranking differ from facebook.com, and de-indexed or very new content may be missing. Facebook's own search routes require a logged-in account, so no logged-out equivalent is pretended here.

places pairs well with page_details: search for dentist in Austin, Texas, then feed the returned page URLs straight into a page_details run to get each business's phone, address, website and opening hours.

Use cases

  • Brand and competitor monitoring — track a competitor's Page posts and the engagement each one earns.
  • Community and audience research — pull discussion from public Groups in your niche.
  • Comment mining and sentiment analysis — full comment threads with author, timestamp, reactions and reply structure, ready for an LLM or a sentiment model.
  • Lead generationpage_details returns the public website, email, phone and address a business chose to publish.
  • Content and creative research — see which post formats and topics earn reactions in a category.
  • Crisis and reputation watch — re-run a post's comments on a schedule and diff the result.

Example post record

{
"record_type": "post",
"post_id": "1620874212741282",
"post_url": "https://www.facebook.com/reel/28631238109803230/",
"text": "AvGeeks, assemble!\n\nMAX POWER, America's newest aerospace expo...",
"created_at": "2026-09-04T15:07:02+00:00",
"timestamp": 1788534422,
"author_name": "NASA - National Aeronautics and Space Administration",
"author_id": "100044561550831",
"author_url": "https://www.facebook.com/NASA",
"reactions_count": 871,
"reactions_breakdown": [{"type": "Like", "count": 750}, {"type": "Love", "count": 101}],
"comments_count": 71,
"shares_count": 82,
"video_views": 20785,
"media_type": "video",
"image_urls": ["https://scontent.xx.fbcdn.net/v/t15.5256-10/796096241_..."],
"source_type": "page",
"source_name": "NASA - National Aeronautics and Space Administration",
"mode": "page_posts",
"scraped_at": "2026-09-07T18:31:00+00:00"
}

Example comment record

{
"record_type": "comment",
"comment_id": "1064578393220354",
"comment_url": "https://www.facebook.com/NASA/posts/pfbid02UW...?comment_id=1064578393220354",
"post_id": "1619357056226331",
"text": "Rayleigh scattering filtering out blue light explains that red moon colour.",
"created_at": "2026-09-03T00:51:39+00:00",
"author_name": "Tushar Arora",
"author_id": "61583456871751",
"author_url": "https://www.facebook.com/profile.php?id=61583456871751",
"depth": 0,
"is_reply": false,
"parent_comment_id": "",
"replies_count": 4,
"reactions_count": 3,
"reactions_breakdown": [{"type": "Like", "count": 3}],
"mode": "post_comments"
}

Proxy

Leave proxyConfiguration empty to use the tested defaults. Facebook's verdict is per exit IP, so the Actor pins each mode to the pool that works:

ModeDefault poolWhy
page_postsResidentialFacebook rate-limits the timeline pagination query on datacenter IPs
group_postsResidentialPublic group pages return a login shell to datacenter and Unblocker exits
post_commentsShared poolComment payloads are served to every exit type
page_detailsShared poolAbout pages are served to every exit type
searchGoogle SERPRequired by the public index

Measured throughput and cost

One verification run per mode on Apify, September 2026, 1024 MB, defaults for everything else:

ModeSourcesRecordsRuntimeCompute unitsPlatform costCost per record
page_posts2 Pages4067 s0.019$0.0362$0.00091
group_posts2 Groups3032 s0.009$0.0374$0.00125
post_comments2 posts3823 s0.006$0.0022$0.00006
page_details4 Pages435 s0.010$0.0032$0.00081
search1 query1530 s0.008$0.0102$0.00068

Residential proxy transfer is 83-92% of the cost of the two feed modes; the comment and About modes need no residential exit and are an order of magnitude cheaper per record.

Honest failures

A login wall is a failure, never an empty success. If Facebook serves its logged-out shell instead of the public payload, the Actor rotates the exit IP and retries; if no source is readable the run fails with the reason. A run that ends with rows at zero means the source genuinely had no public items — not that the Actor was blocked. The same rule applies to search: if the index returns results the parser cannot read, the run fails rather than reporting zero matches.

Limitations

  • Only content Facebook shows to logged-out visitors is available. Private profiles, closed or members-only groups, friends-only posts, and login-gated content are out of reach by design and are reported as failures rather than silently skipped.
  • mbasic.facebook.com is dead — Meta redirects it to the login wall for every exit type — so it is not used.
  • Anonymous feed pagination is capped by Facebook, and the two feeds differ sharply. A Page timeline renders one post to a logged-out visitor and then yields roughly three per pagination request, so 40 posts is about 14 requests. A public Group renders around 19 up front and 3-9 per request after that. Very deep back-catalogues take proportionally longer.
  • Facebook refuses the Page timeline's root feed query to every logged-out caller (
    Rate limit exceeded
    , code 1675004) on every exit type and at every page size. The Actor therefore reads the rendered page and continues with the refetch query, which is served normally. Nothing is lost, but it is why the first page of a Page timeline is a single post.
  • Reaction breakdowns cover the reaction types Facebook surfaces in the public bling bar, which is the top few, not always all seven.
  • Group posters appear as rotating opaque pfbid... ids rather than numeric ones; that is Facebook's own anonymisation, and the id is not stable between runs.

The Actor accesses only public URLs. Use personal data lawfully and in accordance with Facebook's terms and applicable privacy laws.

Output fields

  • One row per result with stable keys.

Input parameters

ParameterRequiredDescription
modeYesPage posts, public group posts, post comments and replies, public page details, or keyword search over the public web index.
pageUrlsNoUsed by Page posts and Page details. Accepts https://www.facebook.com/nasa, a bare username like nasa, or a profile.php?id=... URL.
groupUrlsNoUsed by Group posts. Example: https://www.facebook.com/groups/pygame/. Private, closed and members-only groups are not readable without a login; they are reported as a failure rather than returned empty.
postUrlsNoUsed by Post comments. Accepts Page post URLs (/posts/..., including the pfbid form), public group post URLs (/groups/
maxResultsNoMaximum records for Page posts, Group posts and Page details, shared across all supplied sources.
maxCommentsPerPostNoUsed by Post comments. Caps TOP-LEVEL comments per post; replies are returned in addition, capped separately by the replies limit below. Facebook serves anonymous visitors only part of a busy thread - roughly 30 comments on a post whose counter reads 87 - so a run can finish below this cap because the source stopped serving.
includeRepliesNoFetch the replies under each top-level comment. Replies carry parent_comment_id so threads can be rebuilt.
maxRepliesPerCommentNoCap on replies fetched under each top-level comment.
proxyConfigurationNoLeave as-is for the tested defaults: residential exits for Page posts and Group posts, the shared pool for Post comments and Page details. Facebook returns a login shell for public Group pages to datacenter IPs, and rate-limits Page timeline pagination there. Choosing a group, a country or your own proxy URLs overrides the default.
queryNoSearch mode only. Keyword or phrase to find in public Facebook results.
search_typeNoSearch mode only. Search public posts, pages/profiles, places, or all indexed Facebook result types.
max_postsNoSearch mode only. Maximum number of unique results across all queries. The minimum of 5 protects the Actor's per-run economics; public search-index depth varies by keyword.
recent_postsNoSearch mode only. For post searches, prefer results indexed during the past week. Explicit dates take precedence.
locationNoSearch mode only. Optional city, region or country added to the search, for example Austin, Texas or London, UK.
start_dateNoSearch mode only. Optional earliest index date in YYYY-MM-DD format.
end_dateNoSearch mode only. Optional latest index date in YYYY-MM-DD format.
queriesNoSearch mode only. Optional additional search terms processed in the same run.

Last verified: 2026-09

More scrapers at thirdwatch.dev.