Facebook Public Discovery
Resolve public Facebook Page photos, owner-verified reels, individual posts, reel captions, and structured logged-out post comments with transparent best-effort semantics.
Workspace
Configure
Inputs stay here while results become exportable artifacts.
Start from an example
Results
Preview, inspect, copy, or export the complete output.
Your result will become an artifact
Run the tool to inspect structured rows, raw JSON, execution details, and downloadable JSON, CSV, and Markdown files.
Overview
Facebook Public Discovery gives agents a no-login, source-linked view of Page-owned photos, individual posts, and comments that Facebook exposes to logged-out visitors. It is intentionally best-effort and never claims private, authenticated, or complete Facebook coverage.
Last validated: Jul 15, 2026
Input
mode"profile_photos" | "profile_reels" | "post" | "post_comments" | "comment_replies" | "post_transcript"requiredDiscover Page photos or reels, resolve one Page post/reel, fetch public comments or replies, or read a reel's public captions.
languagestringPreferred 2 or 3 letter caption language for post_transcript mode. Defaults to English.
page_urlstringPublic Facebook Page URL for profile modes.
post_urlstringPublic Facebook Page post or reel URL for post, post_comments, and post_transcript modes.
page_slugstringPublic Facebook Page slug for profile modes.
comment_idstringNumeric parent comment ID required for comment_replies mode.
max_resultsintegerdefault: 10Maximum photos, reels, or comments to return.
Output
modestringrequiredResolved operation.
postobjectResolved individual Page post.
post.textstringIndexed visible post text.
post.titlestringIndexed result title.
post.post_idstringPost identifier inferred from the URL.
post.post_urlstringCanonical Page post URL.
post.page_slugstringPage slug inferred from the URL.
post.media_typestringPost or reel.
post.owner_namestringPublic reel owner name.
post.view_countintegerVisible reel view count.
post.thumbnail_urlstringPublic reel thumbnail URL.
post.reaction_countintegerVisible reel reaction count.
countintegerrequiredNumber of records returned.
postsobject[]requiredResolved public Page post records.
reelsobject[]requiredOwner-verified public Facebook Page reels.
cursorstringFacebook cursor when the captured public response exposes another page.
photosobject[]requiredIndexed public Page photo records.
post_idstringFacebook reel id used by post_transcript mode.
commentsobject[]Structured comments Facebook exposes to logged-out visitors.
languagestringCaption locale selected for the transcript.
page_urlstringCanonical Facebook Page URL.
segmentsobject[]Timestamped public SRT caption segments.
source_urlstringrequiredRendered Google results URL.
transcriptstringClean transcript assembled from Facebook's public SRT caption track.
total_countintegerTotal public comment count reported by Facebook.
has_next_pagebooleanWhether Facebook reports another public comment page.
subtitle_sourcestringPublic Facebook CDN caption URL fetched for this result.
is_auto_generatedbooleanWhether Facebook labels the selected caption track as auto-generated.
parent_comment_idstringRequested parent comment identifier for comment_replies mode.
transcript_not_availablebooleanTrue when Facebook exposes no usable public caption track for the reel.
Examples
nasa-photos
{
"mode": "profile_photos",
"page_slug": "NASA",
"max_results": 5
}public-reel-post
{
"mode": "post",
"post_url": "https://www.facebook.com/reel/757964209457316/"
}nasa-post-comments
{
"mode": "post_comments",
"post_url": "https://www.facebook.com/NASA/posts/1532461158249255/",
"max_results": 10
}nasa-comment-replies
{
"mode": "comment_replies",
"post_url": "https://www.facebook.com/NASA/posts/10158616987496772/",
"comment_id": "10158619660096772",
"max_results": 10
}mrbeast-reels
{
"mode": "profile_reels",
"page_slug": "mrbeast",
"max_results": 3
}mrbeast-reel
{
"mode": "post",
"post_url": "https://www.facebook.com/reel/757964209457316/"
}mrbeast-reel-transcript
{
"mode": "post_transcript",
"language": "en",
"post_url": "https://www.facebook.com/reel/599915296536318/"
}Use cases
FAQ
Does this need a Facebook login?
No. It resolves public indexed URLs and structured comments exposed to logged-out visitors.
Is coverage complete?
No. Photo and post coverage depends on public indexing, while comments depend on Facebook's logged-out response.
Can it access private posts or photos?
No. It only returns public indexed URLs.
Use it anywhere
MCP (Claude, ChatGPT, Codex)
# After connecting https://betterfetch.co/api/mcp, ask your AI to:
1. Call search_tools for "Facebook Public Discovery"
2. Call run_tool with:
name: "facebook_discovery_scraper"
input: {"mode":"profile_photos","page_slug":"NASA","max_results":5}REST
curl -sS -X POST "https://betterfetch.co/api/tools/facebook_discovery_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"mode":"profile_photos","page_slug":"NASA","max_results":5}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/facebook-discovery-scraper && cd facebook-discovery-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"profile_photos","page_slug":"NASA","max_results":5}'