Facebook Group Posts API
Newest posts from a public Facebook group — caption, author, engagement, sortBy; 1 credit per post.
Pass a public Facebook group URL and get its newest posts as clean JSON: id (the numeric post id), caption, publishedAt, author (id when Facebook exposes it — never the group slug as username), url (https://www.facebook.com/groups/{slug}/posts/{id} — there is no permalink twin), thumbnailUrl when the post has a still, and engagement. sortBy maps to Facebook's group sort (TOP_POSTS | RECENT_ACTIVITY | CHRONOLOGICAL default | CHRONOLOGICAL_LISTINGS). Up to 80 posts per call (about 7s for a handful, about 35s for 50); a larger limit returns the first 80 with hasMore true and truncatedReason per-call-cap. The envelope names the yield: requested, totalReturned, hasMore (true when the page came back full), truncatedReason (listing-window when the group had fewer posts than limit), and fetchedAt. likes / comments / views / shares are always keyed (null when unknown — never treat a missing key as 0), each with *IsApproximate. Billing is 1 credit per returned post, minimum 2; empty results and failures are 0 credits. Pass cache=true for the 24h shared cache. Private groups (or groups that show nothing to non-members) answer 404 with code FACEBOOK_GROUP_PRIVATE and retryable false at 0 credits. A deleted group is 404. Other failures are 502 or 503 (90s deadline), both with a body and 0 credits — retry those; a recent good page may be served instead as stale: true at 0 credits.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/facebook/group-posts
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Public Facebook group URL, e.g. https://facebook.com/groups/ID. Must contain /groups/ — profile/page URLs are a definitive 400 (use /v1/facebook/profile-posts for those). The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Max posts to return (default 20, max 200; up to 80 per call — above that you get 80 with truncatedReason per-call-cap). Billed 1 credit per returned post, minimum 2.
TOP_POSTS | RECENT_ACTIVITY | CHRONOLOGICAL (default) | CHRONOLOGICAL_LISTINGS. Maps to Facebook sorting_setting.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.