
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Extract posts from public Facebook groups, including text, authors, timestamps, reaction counts, comment counts, and photos.
Scrape posts from public Facebook groups without a Facebook login. Paste one or more group URLs and get back the post text, author, timestamp, reaction, comment and share counts, photos and the group each post came from, as clean JSON, CSV or Excel.
It is built for monitoring communities, collecting questions and announcements, and feeding group content into a spreadsheet or a downstream workflow. Posts are priced at $1.00 per 1,000.
| Field | Type | Description |
|---|---|---|
startUrls | array (required) | Public group URLs such as https://www.facebook.com/groups/874728723021553. |
resultsLimit | integer | Posts to save from each group. Default 10. |
viewOption | string | Sorting applied before the limit. Default CHRONOLOGICAL. Buy-and-sell sorting applies to buy-and-sell groups. |
onlyPostsNewerThan | string | Keep posts from this date forward. Use YYYY-MM-DD, an ISO timestamp, or a relative value such as 2 days. |
proxyConfiguration | object | Residential proxies by default. Public group feeds do not load from datacenter addresses. |
{
"startUrls": [
{ "url": "https://www.facebook.com/groups/874728723021553" }
],
"resultsLimit": 10,
"viewOption": "CHRONOLOGICAL",
"onlyPostsNewerThan": "2 days"
}
Each dataset row is one post.
| Field | Description |
|---|---|
url | Link to the post. |
facebookUrl | The group URL. |
groupTitle | Name of the group. |
time | Publish time in UTC. |
text | Post text. |
user | Author: id, name, profilePic, profileUrl. |
likesCount | Reaction count. |
commentsCount | Comment count. |
sharesCount | Share count. |
attachments | Photos with image URL, dimensions and caption. |
legacyId | Numeric post id. |
inputUrl | The URL you supplied. |
Example item (trimmed):
{
"facebookUrl": "https://www.facebook.com/groups/874728723021553",
"url": "https://www.facebook.com/groups/874728723021553/permalink/2637465390081202/",
"time": "2026-10-13T14:28:17.000Z",
"user": {
"id": "1000000000000001",
"name": "Jane Doe",
"profileUrl": "https://www.facebook.com/jane.doe.example"
},
"text": "Welcome to our new members! Introduce yourself below.",
"likesCount": 1,
"commentsCount": 0,
"sharesCount": 0,
"attachments": [
{
"__typename": "Photo",
"photo_image": { "uri": "https://scontent.fagc1-1.fna.fbcdn.net/...", "height": 154, "width": 500 },
"url": "https://www.facebook.com/photo/?fbid=1575157851307409&set=gm.2637465390081202&idorvanity=874728723021553",
"ocrText": "May be a doodle of crowd and text"
}
],
"groupTitle": "Maths Formulas",
"legacyId": "2637465390081202",
"inputUrl": "https://www.facebook.com/groups/874728723021553"
}
A group that is private, deleted, or not a group URL is returned as a single row with error set to not_available.
Each saved post costs $0.001, which is $1.00 per 1,000 posts. Posts that are not available are not charged.
Platform usage is billed separately: compute at $0.30 per GB-hour and residential proxy traffic at $2 per GB. A run at the default 256 MB that saves 10 posts costs about $0.015 in total including compute and proxy. For 1,000 posts, the event fees are $1.00 plus usage that grows with run time and proxy traffic (about 0.08 GB of residential traffic, so about $0.16).
Is it legal to scrape Facebook groups? This actor reads only publicly visible content. You are responsible for using the data in line with applicable law, Facebook's terms and privacy rules, especially for personal data.
Do I need a login or my own proxy? No login. Residential proxies are selected by default because datacenter addresses get a login page for these feeds.
Which groups work?
Public groups. A private group, or a URL that does not point at a group, comes back as not_available.
Can I scrape several groups in one run? Yes. Add each group URL. The post limit applies to each group separately.
What if a field is empty? Counts are always included. Fields such as attachments or comment text are present when the feed contains them.
Can I schedule it or call it from the API? Yes. Use schedules for regular monitoring and the API to start runs and read the dataset.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayRequiredFacebook group URLs
Public Facebook group URLs, such as https://www.facebook.com/groups/874728723021553. Private groups are not available.
resultsLimitintegerOptionaldefault 10Number of posts
How many posts to save from each group.
viewOptionenumOptionaldefault "CHRONOLOGICAL"Sorting
Order posts before the limit is applied. Buy and sell applies to buy-and-sell groups.
Optional limits on which posts are returned.
onlyPostsNewerThanstringOptionalPosts newer than
Keep posts from this date forward. Use YYYY-MM-DD, an ISO timestamp, or a relative value such as 1 day, 2 weeks, or 3 hours.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Residential proxies are used by default. Public group feeds do not load from datacenter addresses. Proxy traffic is billed per GB, and compute is billed separately.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| facebookUrl | string | URL of the Facebook group. |
| url | string | URL of the post. |
| time | string | When the post was published, in UTC. |
| text | string | Post text. |
| user | object | Author of the post. |
| likesCount | integer | Reaction count. |
| commentsCount | integer | Comment count. |
| sharesCount | integer | Share count. |
| groupTitle | string | Name of the group. |
| legacyId | string | Numeric post id. |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Post | One public group post saved to the dataset. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/facebook-groups-scraper').call({
"startUrls": [
{
"url": "https://www.facebook.com/groups/874728723021553"
}
],
"resultsLimit": 10,
"viewOption": "CHRONOLOGICAL",
"onlyPostsNewerThan": "2024-01-01",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/facebook-groups-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/facebook-groups-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Get the top posts of a public Facebook group from the last two weeks.
Get the most recently active posts of a public Facebook group.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.