Facebook Group Scraper API
Our Facebook group scraper targets a public group's about surface and returns structured JSON: the group name, member count, privacy setting, description, and category. It reads the Open Graph tags and any embedded group entity in the page. Be aware that Facebook gates group pages behind a login for logged-out requests, so the endpoint is honest about when it can and cannot return group data.
Getting Facebook Group data is harder than it looks
Facebook gates group pages behind a login for logged-out visitors: even a large public group returns the generic consent wall rather than its about details, and there is no official Graph API endpoint that reads a group you do not administer. So a reliable, populated group feed generally needs an authenticated session.
Hit the Facebook Group Scraper API with one request
curl "https://api.facebookscraperapi.com/api/v1/facebook/group?url=https://www.facebook.com/groups/publicspeaking&api_key=$API_KEY" import requests
BASE = "https://api.facebookscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a group URL or id. The response follows the documented group shape below.
data = requests.get(
f"{BASE}/api/v1/facebook/group",
params={
"url": "https://www.facebook.com/groups/publicspeaking",
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["name"], "-", data["members_count"], "members")
print("privacy:", data["privacy"])
print(data["description"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
url | optional | - | A full facebook.com/groups/ |
id | optional | - | The group id or slug (the segment after /groups/). One of url or id is required. |
country | optional | - | Optional two-letter country code to fetch the group as seen from that region. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
The Facebook Group Scraper API output schema
{
"id": "publicspeaking",
"url": "https://www.facebook.com/groups/publicspeaking/",
"name": "Public Speaking",
"members_count": 48213,
"privacy": "public",
"description": "A community for people who want to improve their public speaking and presentation skills.",
"category": "Community",
"cover_image": "https://scontent.xx.fbcdn.net/v/t39.30808-6/example_group_cover.jpg",
"thumbnail": "https://scontent.xx.fbcdn.net/v/t39.30808-6/example_group_cover.jpg",
"source": "facebook",
"data_source": "relay-entity"
} | Field | Type | Description |
|---|---|---|
id | string | The group id or slug from the URL. |
url | string | The canonical group URL. |
name | string | The group name from the embedded entity or og:title. |
members_count | integer | The member count from the group entity, or parsed from the member-count sentence. Null when only the wall is served. |
privacy | string | Normalized to public or private from the group's join-privacy or visibility text. |
description | string | The group description from the entity, og:description, or the intro card. |
category | string | The group category when the entity exposes it. |
cover_image | string | URL of the group's cover image. Also returned as thumbnail. |
data_source | string | relay-entity when read from the embedded group entity, or opengraph when only og tags resolved. |
Build with Facebook data
Community sizing
Group directories
Privacy classification
Description mining
Cover asset capture
Session-based pipelines
Why teams ship on our Facebook Group Scraper API
We force the request onto a US residential exit and parse the group name, member count, privacy, and category from the Open Graph tags and any embedded group entity. When only Facebook's login wall is returned, which is the common logged-out case for groups, the endpoint reports a clear diagnostic instead of a fabricated row, so you always know whether the data is real.
URL or id input
Documented group shape
Privacy normalization
Residential routing built in
Honest wall handling
Data-source flag
How the Facebook Group Scraper API compares
| Our API | DIY (requests / headless) | Facebook Graph API | |
|---|---|---|---|
| Read a public group | When it renders, else honest diagnostic | Usually the consent wall | No public group read endpoint |
| Setup | API key only | Residential proxies, headless browser, parsers | Not available for non-owned groups |
| Member count and privacy | Returned when the group renders | You parse it yourself | Not exposed |
| Anti-bot and proxies | Built in, US residential | You build and maintain it | Not applicable |
| Logged-out reality | Honest diagnostic when walled | Walled with no clear signal | Not applicable |
| Output | Flat, validated JSON | Whatever you parse | Not applicable |
Pricing built for scale
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
A Facebook group scraper reads a public group's about surface and returns it in a structured format. Our Facebook group scraper API takes a group URL or id and, when the group renders, returns the name, member count, privacy setting, description, category, and cover image as JSON. The extractor reads the Open Graph tags and any embedded group entity in the page.
Often not, and the endpoint is honest about it. Facebook gates group pages behind a login for logged-out visitors, and even large public groups commonly return the generic consent wall rather than their about details. When that happens, the endpoint returns a clear diagnostic instead of a fabricated row. For a reliably populated group feed, run the endpoint with an authenticated session.
When a group page renders its data, you get the group id, canonical URL, name, member count, a normalized privacy flag (public or private), description, category, and cover image, plus a data_source flag showing whether the fields came from the embedded group entity or only the Open Graph tags. Member count is null if only the wall was served.
The member count comes from the embedded group entity or the member-count sentence in the rendered page. If Facebook serves only the login or consent wall, that data is not present, so members_count is null and the response reflects that the group did not fully render. We never estimate a member count from wall metadata.
No. You authenticate with a single facebookscraperapi key. There is also no official Graph API endpoint that reads a group you do not administer, so this endpoint fills a gap the official API leaves entirely open. The free tier includes 1,000 requests so you can test which groups render.
Treat it as a group-metadata endpoint that returns the documented shape when a group renders and reports a classifiable diagnostic when Facebook walls the page logged-out. Teams that need consistent group data run it with an authenticated session, and use the honest failure signal to detect and retry walled captures rather than silently accepting empty rows.