How to get Facebook group posts
GET request to /v1/facebook/group-posts with your input. You get clean JSON back in seconds for ~20 credits (1/result) per call — no OAuth, scraping or platform SDKs. Newest posts from a public Facebook group — caption, author, engagement, sortBy; 1 credit per post.How to get Facebook group posts (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Facebook Group Posts API
Send an authenticated GET request to /v1/facebook/group-posts with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/facebook/group-posts?url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2Fdogspotting" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"url": "https://www.facebook.com/groups/dogspotting",
"totalReturned": 2,
"posts": [
{
"platform": "facebook",
"url": "https://www.facebook.com/groups/dogspotting/posts/10165927007174467/",
"id": "10165927007174467",
"caption": "Dog in a basket…I repeat…dog in a basket!",
"description": "Dog in a basket…I repeat…dog in a basket!",
"publishedAt": "2026-07-27T16:34:51.000Z",
"author": {
"displayName": "Beth Oxford"
},
"engagement": {
"likes": 87,
"comments": 0
},
"isVideo": false,
"permalink": "https://www.facebook.com/groups/dogspotting/posts/10165927007174467/"
},
{
"platform": "facebook",
"url": "https://www.facebook.com/groups/dogspotting/posts/10165913663824467/",
"id": "10165913663824467",
"caption": "Waiting patiently in the Mustang.",
"description": "Waiting patiently in the Mustang.",
"publishedAt": "2026-07-24T22:16:11.000Z",
"thumbnailUrl": "https://scontent-iad6-1.xx.fbcdn.net/v/t39.30808-6/754824625_10163571025602896_890543610805686018_n.jpg?stp=dst-jpg_tt6&cstp=mx2048x1536&ctp=p600x600&_nc_cat=107&ccb=1-7&_nc_sid=63...",
"author": {
"displayName": "Chet Rhodes"
},
"engagement": {
"likes": 36,
"comments": 2
},
"isVideo": false,
"permalink": "https://www.facebook.com/groups/dogspotting/posts/10165913663824467/"
}
],
"sortBy": "CHRONOLOGICAL"
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | 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. |
| limit | integer | No | 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. |
| sortBy | string | No | TOP_POSTS | RECENT_ACTIVITY | CHRONOLOGICAL (default) | CHRONOLOGICAL_LISTINGS. Maps to Facebook sorting_setting. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Frequently asked questions
What does the Facebook Group Posts API do?
The Facebook Group Posts API lets you list items in bulk with metadata from a public Facebook post using one GET request to /v1/facebook/group-posts. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Facebook Group Posts API cost?
At the default limit this endpoint costs 20 credits (1 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Facebook API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.
Why did I get fewer posts than I asked for?
truncatedReason says why. listing-window: the group had fewer posts available than your limit. per-call-cap: you asked for more than 80, so you got the newest 80 (hasMore is true). You are billed 1 credit per post actually returned, minimum 2.
Where is permalink? And why did shares have no *IsApproximate?
permalink does not ship — it was an embed-alias of url and is gone. Use posts[].url. shares: null is a present key, so sharesIsApproximate is now always stamped (false when the count is null). comments and commentsIsApproximate are always keyed too — never treat a missing comments key as 0.
Do topComments include the commenter's gender?
No. Facebook sometimes exposes an inferred gender on group commenters; we drop it. topComments is {id, text, publishTime, author{id,name,url}}.
Is the Facebook Group Posts API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Facebook group posts?
Start free with 100 credits — no credit card required.
Get your free API key