Facebook Hashtag Scraper
Pricing
from $2.49 / 1,000 results
Facebook Hashtag Scraper
Facebook Hashtag Scraper SD - Facebook Hashtag Scraper is a social media data tool that extracts public Facebook posts for any #hashtag: text, author, date, reactions by type, comments and shares counts, photos and videos, top or recent, page after page, no login.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Neuro Scraper
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 days ago
Last modified
Categories
Share
Facebook Hashtag Scraper - public posts for any #hashtag
Facebook Hashtag Scraper collects the public Facebook posts that Facebook shows for a hashtag
(facebook.com/hashtag/<tag>), without logging in. For every post you get the text, author, date,
reactions (total and per type), comments and shares counts, photos, videos and links - page after
page, from the Top tab or the Recent tab. Export the dataset as JSON, CSV or Excel, or use the Apify
API, webhooks, Make, Zapier or n8n integrations.
How it works
Facebook's hashtag page preloads its own posts query together with the session values. The Actor reads the query id, its variables and the cursor from that page on every run (nothing is hardcoded) and asks the same query for the next page with the cursor. Comments are read with Facebook's comment queries, whose ids come from a post page's JavaScript bundles each run.
Input
| Field | What it does |
|---|---|
hashtags | Hashtags with or without #, or facebook.com/hashtag/... URLs, one per line |
maxItems | Max posts per hashtag (default 20) |
sortBy | top (Top posts) or recent (Recent posts) - Facebook's two hashtag tabs |
onlyPostsNewerThan / onlyPostsOlderThan | Date window: 2026-09-01, an ISO time, or 7 days, 3 months, 1 year |
postTypes | Keep only photo, video, reel, text, link, share |
keywords | Keep only posts whose text contains any of these words |
maxComments, commentsSort, maxRepliesPerComment | Attach public comments (and replies) to every post |
onlyNewPosts | Skip posts delivered in earlier runs (monitoring) |
includeRaw | Add Facebook's complete post object as raw |
maxPagesPerHashtag, maxTotalItems, proxyConfiguration | Safety limits and proxy (RESIDENTIAL by default) |
Output (one row per post)
| Field | Meaning |
|---|---|
postId, storyId, feedbackId, url | Post ids and permalink |
text, hashtags, mentions, links | Post text and the entities in it |
time, timestamp | Publication time (ISO UTC and Unix seconds) |
postFormat | photo, video, reel, text, link or share |
authorName, authorId, authorUrl, authorType, authorProfilePictureUrl | Who posted |
reactionsCount, reactionLikeCount ... reactionAngryCount | Reactions, total and by type |
commentsCount, sharesCount, viewsCount | Engagement counts (views for videos) |
media, imageUrls, videoUrls | Photos (full size, alt text) and videos (MP4 link, thumbnail, duration) |
linkUrl, linkTitle, linkDescription, linkSource | Shared outside link |
groupId, groupName, groupUrl | When the post was made in a public group |
comments, commentsScraped | With maxComments > 0 |
hashtag, inputHashtag, sortBy, position, scrapedAt | Run context |
Measured limits (local runs, 2026-10-03, see TEST_REPORT.md)
- Facebook shows a limited set per hashtag and tab logged out: #travel 88 posts (Top) / 87 (Recent), #nasa 62 (Top), then the cursor ends. Run both tabs for more unique posts.
- About 5-6 posts per page request; 60 posts took 36-40 s (13 pages).
- The results are Facebook's own selection and change between runs; no total post count is shown.
- Comments: about 10 per request; the comment count includes replies.
Example
{"hashtags": ["travel", "#foodie"], "maxItems": 50, "sortBy": "recent", "onlyPostsNewerThan": "30 days"}
