Facebook hub

Facebook group posts API

Page public posts from a Facebook group URL — text, permalink, publish time, reaction and comment counts, author, and video metadata when present — with cursor pagination in the shared Social Fetch envelope.

GET /v1/facebook/groups/posts

1 credit Failed requests are free

About this endpoint

GET /v1/facebook/groups/posts lists public posts for a Facebook group. Pass a full public group url (facebook.com/groups/{id-or-slug}/…), not a profile or Page URL. Optional sortBy accepts top, recentActivity, chronological, or chronologicalListings (use chronologicalListings for Buy/Sell marketplace groups). Branch on data.lookupStatus before you write rows — found or not_found. On found, read data.posts and data.page. Each post can include id, url, text, publishedAt (ISO-8601), reactionCount, commentCount, author (id, name, url), and video (thumbnailUrl, durationMs, sdUrl, hdUrl) when Facebook exposes them. Facebook often returns only a few posts per page. When data.page.hasMore is true, pass data.page.nextCursor as the cursor query param on the next call. There is no server-side keyword filter — filter on text after you fetch pages. Bill from meta.creditsCharged; each page bills separately, including not_found.

This route is the group feed only. For the group's About-page profile use GET /v1/facebook/groups. For a Page or profile feed use GET /v1/facebook/profiles/posts. For one post by permalink use GET /v1/facebook/posts.

Facebook group posts API FAQ

How do I list Facebook group posts via API?

Call GET /v1/facebook/groups/posts with your Social Fetch API key (x-api-key) and a public Facebook group url query param. Read data.lookupStatus, data.posts, and data.page in the JSON response. See the API docs for parameters and examples.

How much does the Facebook group posts endpoint cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

What URL should I pass for Facebook group posts?

Pass a full public Facebook group URL such as facebook.com/groups/{id-or-slug}/…. Profile and Page URLs belong on GET /v1/facebook/profiles/posts, not this route. Wrong or unresolved group URLs often resolve as lookupStatus: not_found.

How does sortBy work on Facebook group posts?

Optional sortBy accepts top, recentActivity, chronological, or chronologicalListings. Use chronological for a general group feed. Use chronologicalListings for Buy/Sell marketplace groups. Omit sortBy when the default order is fine.

How does pagination work on Facebook group posts?

Each response includes data.page.nextCursor and data.page.hasMore. When hasMore is true, pass nextCursor as the cursor query param on the next request. The cursor is opaque. Facebook often returns a small number of posts per page (often around three).

What fields are in each Facebook group post?

Items can include id, public post url, text, publishedAt (ISO-8601), reactionCount, commentCount, author (id, name, url), and video metadata (thumbnailUrl, durationMs, sdUrl, hdUrl) when the post includes video. Coverage follows what is publicly visible for that group.

Group posts vs profile posts vs a single Facebook post?

Use this route to page a public group feed by group URL. Use GET /v1/facebook/groups for the group's About-page profile (privacy, members, admins, rules). Use GET /v1/facebook/profiles/posts for a Page or profile feed. Use GET /v1/facebook/posts when you already have a post or Reel permalink. They are separate operations on the Facebook hub.

Do I need Meta Graph API access or group admin rights?

No. Social Fetch returns publicly visible group posts for enrichment-style lookups. Meta's Graph and Marketing APIs are for assets and ads accounts you control or that authorize your app — not arbitrary public competitor groups.