Facebook Followers Following Scraper avatar

Facebook Followers Following Scraper

Pricing

Pay per event

Go to Apify Store
Facebook Followers Following Scraper

Facebook Followers Following Scraper

Export public Facebook follower and following identities with names, profile URLs, IDs, images, and relationship metadata from sections visible without login.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Export the follower and following identities that a Facebook Page or profile exposes publicly without login. The Actor turns the visible relationship cards into structured records with profile names, Facebook URLs, IDs, image URLs, source context, and relationship type.

Use it to refresh public audience samples, compare overlap between Pages, prepare spreadsheet exports, or feed a repeatable community-research pipeline. It does not log in, bypass privacy settings, or claim access to a complete private follower list.

What does Facebook Followers Following Scraper do?

Give the Actor one or more Facebook Page or profile URLs. It visits the requested public followers and/or following section in a resource-efficient browser, validates visible relationship cards, removes duplicates, and writes accepted records to the default Apify dataset.

The Actor:

  • accepts Page/profile URLs and direct /followers or /following URLs;
  • supports followers, following, or both relationship types;
  • uses sticky Apify datacenter browser sessions with bounded rotation;
  • retries login-only/challenged responses with a fresh bounded session;
  • stops at your global maxItems limit;
  • charges only for records actually saved;
  • fails clearly when no requested source exposes useful public identities.

Who is this Facebook audience exporter for?

  • Audience researchers comparing the publicly displayed communities around several Pages.
  • Creator and partnership teams collecting a small public sample for manual qualification.
  • Analysts refreshing source-attributed relationship rows for overlap analysis.
  • Automation builders loading typed Facebook relationship data into Sheets, a warehouse, or a CRM review queue.
  • Trust and safety researchers studying only information that Facebook displays while logged out.

This Actor is designed for source-specific public audience research. It is not a Facebook Dating scraper, Facebook Ad Library scraper, contact extractor, or account-growth tool.

Why use this Actor?

Facebook's public relationship pages are dynamic and may return a login screen to an ordinary request. This Actor packages the working browser, datacenter proxy, session rotation, validation, deduplication, output schema, and Apify integrations into one repeatable task.

Unlike a follower-count scraper, it returns the visible profile identities, not only an aggregate count. Every row retains its source and relationship type so multi-Page exports remain analysis-ready.

What Facebook follower data can I extract?

FieldMeaning
sourceUrlCanonical Page/profile URL inspected
sourceNamePublic source display name, when available
sourceProfileIdNumeric source ID exposed by public metadata, when available
relationshipTypefollowers or following
profileNamePublic name shown on the relationship card
profileUrlCanonical public URL of the related profile/Page
profileIdNumeric ID parsed from the public URL, when available
usernameVanity username parsed from the URL, when available
profileImageUrlPublic image URL shown on the card; CDN URLs can expire
subtitlePublic card subtitle when Facebook supplies one
scrapedAtISO timestamp of extraction

Fields are nullable where Facebook does not expose a value.

How to export public Facebook followers

  1. Create or sign in to your Apify account.
  2. Open Facebook Followers Following Scraper.
  3. Add one or more public Facebook Page/profile URLs.
  4. Choose followers, following, or both.
  5. Set the maximum number of records.
  6. Click Start.
  7. Open the Dataset tab and download JSON, CSV, Excel, XML, or another supported format.

The prefilled Leonardo DiCaprio followers URL is a real public source that currently yields useful rows while logged out.

Input parameters

InputTypeDefaultDescription
startUrlsarrayrequiredPublic facebook.com Page/profile URLs. A direct relationship URL overrides the general relationship setting for that URL.
relationshipTypestringbothInspect followers, following, or both.
maxItemsinteger100Global accepted-record limit, from 1 to 10,000.
maxSessionRetriesinteger3Fresh sticky datacenter sessions allowed for a login-only/challenged page, from 1 to 3.

Example input:

{
"startUrls": [
{ "url": "https://www.facebook.com/NASA/followers" },
{ "url": "https://www.facebook.com/BarackObama/followers" }
],
"relationshipType": "followers",
"maxItems": 16,
"maxSessionRetries": 3
}

Output example

A real run produces records with this shape (personal values below are anonymized):

{
"sourceUrl": "https://www.facebook.com/samplepage",
"sourceName": "Sample Public Page",
"sourceProfileId": "100012345678901",
"relationshipType": "followers",
"profileName": "Example Profile",
"profileUrl": "https://www.facebook.com/people/Example-Profile/61500000000001",
"profileId": "61500000000001",
"username": null,
"profileImageUrl": "https://scontent.example.fbcdn.net/example-profile.jpg",
"subtitle": null,
"scrapedAt": "2025-01-15T12:00:00.000Z"
}

Results are stored in the run's default dataset, so normal Apify exports and integrations work without a custom dataset name.

How much does it cost to export Facebook followers?

The Actor uses pay-per-event pricing:

  • a $0.005 Actor start event once per run;
  • one public relationship record event per accepted dataset row.

At the Bronze tier, each accepted row is $0.00368. Approximate Bronze totals are:

Accepted rowsApproximate total
1$0.00868
10$0.04180
25$0.09700
100$0.37300

Your actual tier may have a lower item price. Failed, duplicate, rejected, and empty cards are not charged as item events. Facebook often exposes only a small public subset per section, so a 100-row run generally requires several sources rather than one Page.

Public visibility and list-size limits

Facebook decides whether a followers/following section is public and how many identities it displays to a logged-out visitor. The number of displayed profiles can be much smaller than the aggregate follower count.

The Actor cannot:

  • reveal private or login-only identities;
  • guarantee that both sections exist;
  • turn an aggregate follower count into a full identity list;
  • bypass a Facebook checkpoint or privacy control;
  • preserve an expiring Facebook CDN image URL indefinitely.

When one requested section is unavailable but another yields rows, the run keeps the useful rows. When every requested source yields zero identities after bounded retries, the run fails instead of returning a misleading successful empty dataset.

Tips for reliable runs

  • Start with a URL that you can open in a private/incognito window without signing in.
  • Use a direct /followers URL when you only need followers; this avoids checking an unavailable following section.
  • Use several source URLs for overlap work because one public section commonly exposes only a sample.
  • Schedule moderate refresh intervals; repeated rapid runs do not make Facebook expose more public identities.
  • Store downloaded images yourself if your lawful workflow needs them later; source CDN links can expire.

Refresh and compare public audience lists

Create an Apify Schedule for a weekly or monthly run. Export each dataset with its scrapedAt, sourceUrl, relationshipType, and profileUrl fields. In your warehouse or spreadsheet:

  1. use sourceUrl + relationshipType + profileUrl as a stable comparison key;
  2. compare the newest snapshot with the prior snapshot;
  3. label newly visible and no-longer-visible public rows;
  4. distinguish source visibility changes from definitive follow/unfollow events.

Because Facebook shows only a public sample, describe changes as changes in the visible sample, not proof of a person's private activity.

Export to Google Sheets or a data pipeline

From the Dataset tab, download CSV/Excel directly or attach an Apify integration. Common workflows include:

  • append public relationship rows to Google Sheets;
  • send a webhook after each scheduled run;
  • load JSON into BigQuery, Snowflake, or a custom warehouse;
  • trigger Make or Zapier only after a successful run;
  • join profiles from two sources by profileUrl for overlap analysis.

Apply your own retention, access-control, and deletion policies downstream.

Run with the Apify API using cURL

Replace YOUR_TOKEN with your Apify API token:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~facebook-followers-following-scraper/runs?token=YOUR_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://www.facebook.com/LeonardoDiCaprio/followers"}],
"relationshipType":"followers",
"maxItems":5
}'

Fetch items from the defaultDatasetId returned by the run.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/facebook-followers-following-scraper').call({
startUrls: [{ url: 'https://www.facebook.com/NASA/followers' }],
relationshipType: 'followers',
maxItems: 8,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/facebook-followers-following-scraper").call(
run_input={
"startUrls": [{"url": "https://www.facebook.com/BarackObama/followers"}],
"relationshipType": "followers",
"maxItems": 8,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/facebook-followers-following-scraper"

Claude Desktop, Cursor, and VS Code MCP setup

Use this same configuration in Claude Desktop, Cursor, or VS Code where HTTP MCP servers are supported:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/facebook-followers-following-scraper"
}
}
}

Example prompts:

  • "Export up to 8 publicly displayed followers from NASA's Facebook Page."
  • "Run the public Facebook followers exporter for NASA and Barack Obama, then group rows by source URL."
  • "Schedule this input monthly and summarize changes in the visible public sample."

Responsible use and legality

The Actor collects only relationship cards Facebook presents to a logged-out visitor. Public availability does not remove your legal obligations.

Use the data only with a lawful purpose. Consider privacy, data-protection, database-right, contractual, and anti-discrimination rules that apply to your location and use case. Minimize collection, avoid sensitive profiling, respect deletion requests, secure exports, and retain records only as long as needed. Do not use this Actor for harassment, surveillance, spam, or decisions that unfairly affect individuals.

When in doubt, obtain qualified legal advice for your workflow.

Troubleshooting

Why did the run say no public identities were extracted?

Open the same /followers or /following URL in an incognito browser. The section may be hidden, login-only, temporarily challenged, or may display only a count. Try a known public section such as the prefilled followers URL. The Actor retries challenged sessions but does not bypass privacy controls.

Why are there only eight records for a Page with millions of followers?

The aggregate count and the public identity sample are different surfaces. Facebook commonly displays only a small logged-out sample. maxItems is a ceiling, not a promise that the source exposes that many identities.

Why is username or subtitle null?

Many Facebook profile links use a numeric /people/.../<id> route rather than a vanity username, and current public cards often contain no subtitle. The numeric profileId and canonical profileUrl remain available when exposed.

Why did a profile image stop loading?

Facebook CDN URLs are temporary. Download images promptly when your lawful workflow requires durable media storage.

Frequently asked questions

Does this Actor need Facebook credentials?

No. It intentionally supports only sections visible while logged out and does not accept account credentials or cookies.

Can it scrape both followers and following?

Yes, when Facebook publicly exposes both sections. A direct relationship URL requests only that section. If a section is not public, the Actor reports the limitation and keeps useful rows from other requested sections.

Does it return follower counts?

The primary output is one visible relationship identity per row. The Actor does not market aggregate counts as identity records.

Can I monitor changes?

Yes. Use Apify Schedules to create repeat snapshots and compare public sample keys downstream. Do not interpret sample visibility changes as definitive private follow/unfollow behavior.

Can I export CSV or Excel?

Yes. Use the standard download options on the run's default dataset.

Combine this public audience sample with:

Each Actor has a separate input/output and pricing contract. Use only the minimum public data needed for your workflow.