Install
openclaw skills install @nikhonit/scrapersocial-facebookFacebook data toolkit via ScraperSocial — video transcripts, AI summaries, post and page stats, comments, reels, ads, marketplace, events, groups and reviews.
openclaw skills install @nikhonit/scrapersocial-facebookRead public Facebook data as clean JSON. This Facebook API skill is the broadest surface in the repo after LinkedIn: video transcripts and AI summaries, post and page statistics, comment threads and replies, reels and photos, the ad library, Marketplace listings, events, group posts, follower graphs and page reviews.
If you have tried to get this data yourself, you know the problem — Facebook is aggressive about blocking automated reads. These endpoints return structured JSON without a browser, a session cookie or a proxy pool.
This skill wraps 23 live Facebook endpoints from the ScraperSocial API. Public data only, returned as clean JSON.
export SCRAPERSOCIAL_KEY=sk_live_... # https://scrapersocial.com/app/keys
Signing up at scrapersocial.com/signup includes 100 free credits, no card required.
These scripts do exactly three things and nothing else: read one environment variable (SCRAPERSOCIAL_KEY), send HTTPS requests to https://api.scrapersocial.com (the host is a constant in the code, not configurable), and print JSON. They run as node scripts/<name>.js with no other shell use, no file writes and no persistence. call_endpoint.js accepts only the 23 documented /v1/facebook/ paths in the table below and refuses anything else before a request is made.
| Script | What it does | Input | Credits |
|---|---|---|---|
get_stats.js | Reactions, comments and shares for a Facebook post or video. | url | 5 credits |
get_stats.js --section=page-stats | Followers, likes and metadata for a Facebook page. | url | handle |
get_transcript.js | Full transcript of a Facebook video with timestamped segments. | url | 15 credits |
get_transcript.js --section=summary | Short AI summary of a Facebook video, built on its transcript. | url | 17 credits |
get_comments.js | Paginated comments on a Facebook post; charged per comment returned. | url | 3 credits per comment |
get_comments.js --section=comment-replies | List Facebook comment replies. | url | 3 credits per reply |
get_posts.js --section=channel-posts | Latest posts from a Facebook page with per-post metrics. | url | handle |
get_posts.js --section=group-posts | List Facebook group posts. | url | handle |
get_posts.js --section=photos | List Facebook photos. | url | handle |
get_posts.js --section=reels | List Facebook reels. | url | handle |
get_audience.js --section=followers | List Facebook followers. | url | handle |
get_audience.js --section=following | List Facebook following. | url | handle |
get_page.js --section=ads | List Facebook page ads. | url | handle |
get_page.js --section=events | List Facebook page events. | url | handle |
get_page.js --section=search | List Facebook page search. | query | 4 credits per page |
get_ads.js --section=ad | Get Facebook ad. | url | 5 credits |
get_ads.js --section=search | List Facebook ads search. | query | 4 credits per ad |
get_marketplace.js --section=item | Get Facebook marketplace item. | url | 3 credits |
get_marketplace.js --section=search | List Facebook marketplace search. | query | 3 credits per listing |
get_events.js --section=event | Get Facebook event. | url | 3 credits |
get_events.js --section=search | List Facebook events search. | query | 3 credits per event |
get_reviews.js | List Facebook reviews. | url | handle |
get_download.js | Resolves a downloadable media URL for a Facebook video (URL expires within 1h). | url | 10 credits |
call_endpoint.js | Call any /v1/facebook/ endpoint directly | path + params | varies |
Every script also accepts --limit, --cursor, --fields, --format and --fresh. --limit is clamped to 50: above that the API returns an async job instead of data.
node skills/facebook-api/scripts/get_page.js "specialty coffee roasters" --section=search
Every response uses the same envelope:
{ "data": {}, "meta": { "count": 20, "next_cursor": "..." }, "request_id": "a18e4ef88ad4b00b" }
meta appears on paginated endpoints only. Keep request_id — support traces calls with it.
| Endpoint | Input | Returns | Credits | Paginated |
|---|---|---|---|---|
/v1/facebook/ad | url | ad | 5 credits | no |
/v1/facebook/ads-search | query | ad | 4 credits per ad | yes |
/v1/facebook/channel-posts | url | handle | post | 3 credits per post |
/v1/facebook/comment-replies | url | reply | 3 credits per reply | yes |
/v1/facebook/comments | url | comment | 3 credits per comment | yes |
/v1/facebook/download | url | video | 10 credits | no |
/v1/facebook/event | url | event | 3 credits | no |
/v1/facebook/events-search | query | event | 3 credits per event | yes |
/v1/facebook/followers | url | handle | profile | 3 credits per profile |
/v1/facebook/following | url | handle | profile | 3 credits per profile |
/v1/facebook/group-posts | url | handle | post | 3 credits per post |
/v1/facebook/marketplace-item | url | listing | 3 credits | no |
/v1/facebook/marketplace-search | query | listing | 3 credits per listing | yes |
/v1/facebook/page-ads | url | handle | ad | 4 credits per ad |
/v1/facebook/page-events | url | handle | event | 3 credits per event |
/v1/facebook/page-search | query | page | 4 credits per page | yes |
/v1/facebook/page-stats | url | handle | page | 10 credits |
/v1/facebook/photos | url | handle | photo | 3 credits per photo |
/v1/facebook/reels | url | handle | reel | 3 credits per reel |
/v1/facebook/reviews | url | handle | review | 3 credits per review |
/v1/facebook/stats | url | post | 5 credits | no |
/v1/facebook/summary | url | video | 17 credits | no |
/v1/facebook/transcript | url | video | 15 credits | no |
Costs shown per item for paginated endpoints, per call otherwise. Failed calls are not charged.
get_transcript.js with the video URL returns the spoken content for 15 credits. --section=summary returns an AI summary instead, for 17 credits — it reads the video directly, so you do not need the transcript first.
Yes. get_stats.js --section=page-stats returns page-level metrics for 10 credits. Plain get_stats.js returns post-level stats for a single post URL, for 5.
Yes. get_ads.js --section=search searches the ad library by keyword, get_ads.js --section=ad fetches a single ad by URL, and get_page.js --section=ads lists the ads running for a given page. This script has no default section, so --section is required.
No. ScraperSocial is independent and not affiliated with Meta. It returns publicly available data only. If you administer the page, Meta's Graph API is the better and cheaper route.
The post is private, deleted, or the URL is a redirect. The API returns not_found rather than guessing, and failed calls are not charged.
ScraperSocial is an independent product and is not affiliated with, endorsed by, or sponsored by any platform named in this repository. All product names, logos and brands are property of their respective owners. These skills return only publicly available data.