agentleFS
nikhonitnikhonit/social-media-api-skills/skills/facebook-api/SKILL.md

facebook-api

Skill3 starsChanged 3 months agoMIT-0View on GitHub

Facebook data toolkit via ScraperSocial — video transcripts, AI summaries, post and page stats, comments, reels, ads, marketplace, events, groups and reviews.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If you have tried to get this data yourself, you know the problem — Facebook is aggressive about blocking automated reads.

    line 36
  2. Distinctive:

    You need to post, comment or reply: Read-only.

    line 53
  3. Distinctive:

    The user only wants the caption they already pasted: No call needed.

    line 54
  4. Very specific:

    Every script also accepts --limit, --cursor, --fields, --format and --fresh.

    line 97
  5. Distinctive:

    Every response uses the same envelope:

    line 105

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Facebook API skill

Read 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.

When to use this skill

  • A user pastes a Facebook video URL and wants a transcript or a summary of it.
  • You are researching a page: follower counts, engagement, what it posts, what people say in reviews.
  • You need comment threads on a post, including replies, for sentiment analysis.
  • You are doing competitive ad research through the ad library.
  • You are monitoring Marketplace listings or public events for a keyword.

Do not use this skill when

  • A Facebook link appears in passing with no question attached. Transcript and summary are among the priciest calls in the API (15 and 17 credits) — do not fire them speculatively.
  • You need private data: friends-only posts, private groups, DMs, or Page Insights that only admins see. Public data only.
  • You manage the page yourself. Meta's Graph API gives owners richer data for free.
  • You need to post, comment or reply. Read-only.
  • The user only wants the caption they already pasted. No call needed.

Setup

export SCRAPERSOCIAL_KEY=sk_live_...   # https://scrapersocial.com/app/keys

Signing up at scrapersocial.com/signup includes 100 free credits, no card required.

Permissions and scope

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.

Scripts

ScriptWhat it doesInputCredits
get_stats.jsReactions, comments and shares for a Facebook post or video.url5 credits
get_stats.js --section=page-statsFollowers, likes and metadata for a Facebook page.urlhandle10 credits
get_transcript.jsFull transcript of a Facebook video with timestamped segments.url15 credits
get_transcript.js --section=summaryShort AI summary of a Facebook video, built on its transcript.url17 credits
get_comments.jsPaginated comments on a Facebook post; charged per comment returned.url3 credits per comment
get_comments.js --section=comment-repliesList Facebook comment replies.url3 credits per reply
get_posts.js --section=channel-postsLatest posts from a Facebook page with per-post metrics.urlhandle3 credits per post
get_posts.js --section=group-postsList Facebook group posts.urlhandle3 credits per post
get_posts.js --section=photosList Facebook photos.urlhandle3 credits per photo
get_posts.js --section=reelsList Facebook reels.urlhandle3 credits per reel
get_audience.js --section=followersList Facebook followers.urlhandle3 credits per profile
get_audience.js --section=followingList Facebook following.urlhandle3 credits per profile
get_page.js --section=adsList Facebook page ads.urlhandle4 credits per ad
get_page.js --section=eventsList Facebook page events.urlhandle3 credits per event
get_page.js --section=searchList Facebook page search.query4 credits per page
get_ads.js --section=adGet Facebook ad.url5 credits
get_ads.js --section=searchList Facebook ads search.query4 credits per ad
get_marketplace.js --section=itemGet Facebook marketplace item.url3 credits
get_marketplace.js --section=searchList Facebook marketplace search.query3 credits per listing
get_events.js --section=eventGet Facebook event.url3 credits
get_events.js --section=searchList Facebook events search.query3 credits per event
get_reviews.jsList Facebook reviews.urlhandle3 credits per review
get_download.jsResolves a downloadable media URL for a Facebook video (URL expires within 1h).url10 credits
call_endpoint.jsCall any /v1/facebook/ endpoint directlypath + paramsvaries

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.

Example

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.

Endpoints

EndpointInputReturnsCreditsPaginated
/v1/facebook/adurlad5 creditsno
/v1/facebook/ads-searchqueryad4 credits per adyes
/v1/facebook/channel-postsurlhandlepost3 credits per postyes
/v1/facebook/comment-repliesurlreply3 credits per replyyes
/v1/facebook/commentsurlcomment3 credits per commentyes
/v1/facebook/downloadurlvideo10 creditsno
/v1/facebook/eventurlevent3 creditsno
/v1/facebook/events-searchqueryevent3 credits per eventyes
/v1/facebook/followersurlhandleprofile3 credits per profileyes
/v1/facebook/followingurlhandleprofile3 credits per profileyes
/v1/facebook/group-postsurlhandlepost3 credits per postyes
/v1/facebook/marketplace-itemurllisting3 creditsno
/v1/facebook/marketplace-searchquerylisting3 credits per listingyes
/v1/facebook/page-adsurlhandlead4 credits per adyes
/v1/facebook/page-eventsurlhandleevent3 credits per eventyes
/v1/facebook/page-searchquerypage4 credits per pageyes
/v1/facebook/page-statsurlhandlepage10 creditsno
/v1/facebook/photosurlhandlephoto3 credits per photoyes
/v1/facebook/reelsurlhandlereel3 credits per reelyes
/v1/facebook/reviewsurlhandlereview3 credits per reviewyes
/v1/facebook/statsurlpost5 creditsno
/v1/facebook/summaryurlvideo17 creditsno
/v1/facebook/transcripturlvideo15 creditsno

Costs shown per item for paginated endpoints, per call otherwise. Failed calls are not charged.

FAQ

How do I transcribe a Facebook video?

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.

Can I get Facebook page statistics?

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.

Does this cover the Facebook ad library?

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.

Is this an official Facebook or Meta API?

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.

Why did I get a 404 for a post that exists?

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.

Links

Disclaimer

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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.