Browsable Browsable Docs

Facebook group

Scrape public metadata and public initial-page posts from a Facebook group URL or group id.

POST /v1/facebook/group

Request Parameters

Name In Type Required Description
cursor body string No Offset cursor returned as next_cursor from the previous response.
group_id body string No Facebook group id or public group slug. Use this instead of url when you only have the identifier.
max_posts body integer No Maximum number of public posts to return from the initial group page payload.
url body string No Facebook group URL.

Response Structure

Async kickoff response

Polled run result response

Sync response

Declared output schema

Code Examples

Async + polling

RUN=$(curl -s -X POST "https://api.browsable.app/v1/facebook/group" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cursor":"20","group_id":"2379328805667854","max_posts":20,"url":"https://www.facebook.com/groups/2379328805667854/"}')
RUN_ID=$(echo "$RUN" | jq -r '.run_id')
POLL_DELAY=3
while true; do
RESULT=$(curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://api.browsable.app/v1/runs/$RUN_ID")
STATUS=$(echo "$RESULT" | jq -r '.run_status')
if [[ "$STATUS" =~ ^(succeeded|failed|errored|cancelled|canceled|expired)$ ]]; then
echo "$RESULT"
break
fi
sleep "$(awk "BEGIN { print $POLL_DELAY * (0.9 + ($RANDOM % 21) / 100) }")"
POLL_DELAY=$((POLL_DELAY < 30 ? POLL_DELAY * 2 : 30))
[ "$POLL_DELAY" -gt 30 ] && POLL_DELAY=30
done

Sync

curl -X POST "https://api.browsable.app/v1/facebook/group" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cursor":"20","group_id":"2379328805667854","max_posts":20,"url":"https://www.facebook.com/groups/2379328805667854/","_run":{"async":false}}'