# Facebook Page Scraper: Follower Count, Email & Growth Tracker (`s_actors/facebook-page-scraper`) Actor

Scrape public Facebook pages without login or cookies: exact followers, talking about and check-ins, follower growth between runs, email, phone, website, address with coordinates, rating, page creation date, ads status, Ad Library ID, last post engagement. By URL, username or page ID.

- **URL**: https://apify.com/s_actors/facebook-page-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Social media, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 pages

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Facebook Page Scraper: Follower Count, Email & Growth Tracker

**Scrape public Facebook pages without login or cookies**: the **exact follower count** (28,716,724, not "28M"), people talking about the page, check-ins ("were here"), category, verified badge, intro, **email, phone, website, address with coordinates**, Instagram and other linked accounts, opening status, services, price range, rating and review count, confirmed owner, **page creation date and ads status** (Page transparency), page ID with its Ad Library link, and the **latest post** with reactions, comments, shares and engagement rate.

Every run saves each page's follower count, so the next run shows **follower growth**: how many followers a page gained or lost since your last check, in numbers and percent. Schedule it daily, weekly or monthly and you have a **Facebook follower count tracker** for your brand, clients or competitors.

Give it any mix of **page links, usernames or page IDs**. A Facebook page data API with clean JSON, CSV or Excel output: for lead generation, competitor monitoring, local business research and CRM enrichment.

#### What makes it different

| | |
| --- | --- |
| 🔢 **Exact counts** | `followers` 954,353, `talkingAbout` 55,661 and `wereHere` 529,778, the full numbers instead of the rounded "954K" on the page |
| 📈 **Follower growth between runs** | `previousFollowers`, `followersChange`, `followersGrowthPct` and a `followersHistory` of up to 90 checks per page |
| 🔔 **Follower change alerts** | *Only report follower changes* returns only the pages whose follower count moved since the last check; unchanged pages are free |
| 🔍 **Page transparency included** | `createdAt` (page creation date), `runningAds` (is the page advertising right now), `confirmedOwner`, `adLibraryUrl`: in the price, no add-on |
| 📇 **Contacts for leads** | `email`, `phone`, `website`, `address` with `latitude` / `longitude`, `socialLinks` (Instagram, TikTok, YouTube...), opening status, price range |
| 📰 **Is the page active?** | `lastPostAt`, `daysSinceLastPost`, reactions, comments, shares and `lastPostEngagementRate` of the latest post |
| 🔒 **No account, no cookies** | Only public pages, as any logged-out visitor sees them; your Facebook account is never used or at risk |

#### Example

Input: `https://www.facebook.com/katzsdeli`, `NASA`, `https://www.facebook.com/shakeshack`. Real run, 11 Oct 2026:

| Page | Category | Followers | Talking about | Were here | Email | Page created | Running ads | Last post |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Katz's Delicatessen | Deli | 954,362 | 55,661 | 529,779 | cs@katzsdelicatessen.com | 2009-06-12 | yes | 1 day ago, 2,432 reactions |
| NASA | Government organization | 28,716,731 | 99,260 | | public-inquiries@hq.nasa.gov | 2009-03-04 | no | 1 day ago, 6,551 reactions |
| Shake Shack | Burger Restaurant | 474,518 | 9,182 | 158,619 | share@shakeshack.com | 2009-02-06 | yes | 3 days ago, 4,477 reactions |

Katz's Delicatessen also returned phone (212) 254-2246, address 205 E Houston St, New York, NY 10002 (40.72222, -73.98751), Instagram, "Open now", services (Dine-in, Outdoor seating, In-store pickup), price range $$, rating "98% recommend (52,495 reviews)" and the confirmed owner KATZ DELICATESSEN OF HOUSTON STREET INC.

What the *Follower growth* view looks like on the next scheduled run (illustration):

| Page | Followers | Before | Change | Growth % | Days since |
| --- | --- | --- | --- | --- | --- |
| Katz's Delicatessen | 954,364 | 953,130 | +1,234 | 0.129 | 7 |
| NASA | 28,716,734 | 28,716,733 | +1 | 0.0 | 7 |

#### Input

| Field | What it does |
| --- | --- |
| **Facebook pages** | One per line, any mix: `https://www.facebook.com/NASA`, `NASA`, `@NASA`, `https://www.facebook.com/profile.php?id=100064530531036`, `/people/...` or `/pages/...` links, or a numeric page ID (`54971236771`) |
| **Include page transparency** | Page creation date, ads status and confirmed owner (on by default, included in the price) |
| **Include the latest post** | Date, text, reactions, comments, shares and engagement rate of the latest post (on by default) |
| **Only report follower changes** | For scheduled runs: only pages whose follower count changed since the last check |
| **Parallel requests** | How many pages are loaded at the same time (1-20) |

#### Output

| Field | Example |
| --- | --- |
| `name`, `username`, `url`, `type`, `category`, `verified` | Katz's Delicatessen, katzsdeli, https://www.facebook.com/katzsdeli/, Page, Deli, false |
| `followers`, `talkingAbout`, `wereHere`, `following` | 954362, 55661, 529779, 0 |
| `previousFollowers`, `followersChange`, `followersGrowthPct` | 953130, 1234, 0.129 (from the second check on) |
| `previousTalkingAbout`, `previousCheckAt`, `daysSincePreviousCheck`, `followersHistory` | 50218, 2026-10-04T10:00:00+00:00, 7, `[{date, followers, talkingAbout}]` |
| `email`, `phone`, `website`, `websites` | cs@katzsdelicatessen.com, (212) 254-2246, http://katzsdelicatessen.com/ |
| `socialLinks` | `[{"platform": "Instagram", "handle": "katzsdeli", "url": "https://www.instagram.com/katzsdeli"}]` |
| `address`, `latitude`, `longitude`, `serviceArea` | 205 E Houston St, New York, NY, United States, 10002, 40.72222, -73.98751 |
| `openStatus`, `services`, `priceRange` | Open now, `["Dine-in", "Outdoor seating", "In-store pickup"]`, $$ |
| `rating`, `recommendPercent`, `reviewCount` | 98% recommend (52,495 reviews), 98, 52495 |
| `intro`, `confirmedOwner` | New York City's most iconic deli., KATZ DELICATESSEN OF HOUSTON STREET INC |
| `createdAt`, `runningAds`, `adStatus` | 2009-06-12, true, This Page is currently running ads. |
| `pageId`, `profileId`, `adLibraryUrl` | 89033874836, 100064806517961, the page's ads in the Meta Ad Library |
| `lastPostAt`, `daysSinceLastPost`, `lastPostText`, `lastPostUrl` | 2026-10-09T14:35:10+00:00, 1, Noel makes a crazy combination sandwich!... |
| `lastPostReactions`, `lastPostComments`, `lastPostShares`, `lastPostEngagementRate` | 2432, 74, 70, 0.2699 (% of followers) |
| `profilePictureUrl`, `coverPhotoUrl` | image links |
| `work`, `education`, `currentCity`, `hometown` | public profiles of people only: Founder and CEO at Meta, Harvard University, Palo Alto |
| `input`, `checkedAt` | NASA, 2026-10-11T11:58:59+00:00 |

A page that Facebook does not show (deleted, renamed, or restricted to logged-in users) returns a free row with `input` and `error`.

#### Pricing

Pay per event: **$0.001** per run and **$0.00219** per page (**$2.19 per 1 000 pages**). Apify Scale plan: $1.79 per 1 000, Business plan and above: $1.49 per 1 000. Page transparency is included. Pages not found and unchanged pages in *Only report follower changes* mode are free.

| Example | Cost |
| --- | --- |
| 100 pages | ~$0.22 |
| 1 000 pages | ~$2.19 |
| Daily follower check of 50 competitor pages for a month | ~$3.30 |
| Weekly check of 500 pages, 120 changed, *Only report follower changes* | ~$0.26 per run |

#### Other Facebook tools

| Tool | What it does |
|---|---|
| [Facebook Email Scraper](https://apify.com/s_actors/facebook-email-scraper) | Emails of Facebook pages from the page and its website, mail server checked |
| [Facebook Follower Count Checker](https://apify.com/s_actors/facebook-follower-count-checker) | Exact follower count of many pages and its growth over 7 and 30 days |
| [Facebook Page Search](https://apify.com/s_actors/facebook-page-search-scraper) | Facebook business pages by keyword and city, with exact followers, email, phone and address |

#### FAQ

**How do I check the follower count of a Facebook page?** Put the page link or username into **Facebook pages** and run. `followers` is the exact number from the page itself, the same one Facebook rounds to "28M" in the header.

**How do I track Facebook follower growth over time?** Run the same list on a schedule. Every run saves the follower count; from the second run on each row has the change since the previous check, and `followersHistory` keeps up to 90 checks per page. Turn on **Only report follower changes** to get only the pages that grew or shrank.

**How do I find a Facebook page ID?** Every row has `pageId` (the ID the Meta Ad Library and the Graph API use) and `profileId`, plus `adLibraryUrl` that opens the page's ads.

**How do I get the email of a Facebook business page?** `email` and `phone` are the contacts the business shows in its page intro. Not every page publishes them: when a page shows none, the fields are empty.

**When was a Facebook page created? Is it running ads?** With *Include page transparency* on (default), `createdAt` is the creation date from the page's transparency section and `runningAds` tells whether the page is advertising right now.

**Can it scrape personal profiles?** Public profiles (creators, public figures) work: name, followers, category, intro, work, education, city. Private profiles show only to friends and are not available.

**Do I need a Facebook account or cookies?** No. Only data that Facebook shows to any logged-out visitor is read.

#### Tips

- Page links and usernames are the fastest input; a numeric ID opens the same page through a redirect.
- For lead lists use the *Contacts (leads)* view; export it to CSV, Excel or a [Google Sheet](https://apify.com/s_actors/google-sheets-import-export).
- The follower history is kept for your account: any run with the same page, scheduled or manual, adds a point (one per day).
- `daysSinceLastPost` shows abandoned pages at once: useful to clean a lead list or to spot inactive competitors.

#### Limits

- Only the latest post is on the public page; for full post history with comments use a dedicated posts scraper.
- The latest post comes from the page's main view, which Facebook limits after many requests in a short time: on large runs some rows may come without `lastPost...` fields (everything else is still there). Run those pages again later to fill them.
- Pages that Facebook gates for logged-out visitors (age or country: some brand pages) return their name, category, creation date and ads status, but no follower count.
- New-style Facebook pages show followers only; `likes` appears only on older pages that still show it.
- Opening hours by day, reviews text and follower lists need a login, so they are not included.
- Groups, events and Marketplace are not pages and return a free error row.

#### Ready-made tasks

| Task | What it does |
| --- | --- |
| [Facebook Follower Count Tracker: Page Growth Over Time](https://apify.com/s_actors/facebook-page-scraper/examples/facebook-follower-count-tracker) | Exact followers of a page list now and at the previous check, for scheduled growth tracking |

#### Related tools

| Tool | What it does |
|---|---|
| [Threads Scraper](https://apify.com/s_actors/threads-scraper) | Profiles, posts, views and engagement of Threads accounts |
| [TikTok Profile Scraper](https://apify.com/s_actors/tiktok-profile-scraper) | All videos and stats of TikTok profiles |
| [Google Maps Email Extractor](https://apify.com/s_actors/google-maps-email-extractor) | Emails and social links of local businesses from Google Maps |
| [LinkedIn Company Scraper](https://apify.com/s_actors/linkedin-company-scraper) | Exact employee count and headcount growth of companies |
| [Google Sheets Import & Export](https://apify.com/s_actors/google-sheets-import-export) | Send the pages to a Google Sheet |

#### Use with the API and AI agents

Run it via the [Apify API](https://docs.apify.com/api/v2) from Python, Node.js or any HTTP client, or connect it to Claude, ChatGPT and other AI agents through the [Apify MCP server](https://mcp.apify.com): "Which of these 30 restaurant pages grew fastest this month, and which haven't posted in 30 days?"

```json
{
    "pages": ["https://www.facebook.com/katzsdeli", "NASA", "https://www.facebook.com/shakeshack"],
    "includeTransparency": true,
    "includeLastPost": true,
    "onlyChanges": false
}
```

Each row is one page with `followers`, `followersChange` (from the second check on), `category`, `email`, `phone`, `website`, `createdAt`, `runningAds` and `url`; inputs not found have `error`.

#### Is it legal?

The Actor collects only public page data that Facebook shows to any visitor, without logging in. Use personal data such as names, emails and phone numbers in line with GDPR and other privacy laws, and respect copyright when you reuse post texts and images.

# Actor input Schema

## `pages` (type: `array`):

One per line, any mix: a page or profile link (facebook.com/<name>, also profile.php?id=, /people/... and /pages/... links), the page username ("NASA", "@NASA") or its numeric page id or profile id. Groups, events and posts are not pages.

## `includeTransparency` (type: `boolean`):

Also opens the "Page transparency" section of each page: the page creation date, whether the page is running ads right now, and the confirmed owner. Included in the price; turn off only for faster runs.

## `includeLastPost` (type: `boolean`):

Adds the page's latest post: date, days since, text, reactions, comments, shares and engagement rate. Facebook limits its main page after many requests, so on large runs some rows may come without it; every other field is still there.

## `onlyChanges` (type: `boolean`):

For scheduled runs: return only pages whose follower count changed since the last check (and pages checked for the first time). Unchanged pages are free.

## `maxConcurrency` (type: `integer`):

How many pages are loaded at the same time.

## Actor input object example

```json
{
  "pages": [
    "https://www.facebook.com/katzsdeli",
    "NASA",
    "https://www.facebook.com/shakeshack"
  ],
  "includeTransparency": true,
  "includeLastPost": true,
  "onlyChanges": false,
  "maxConcurrency": 8
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per page: exact followers, category, contacts, page created, ads, last post.

## `contacts` (type: `string`):

Business contacts: email, phone, website, address with coordinates, other accounts, rating, owner.

## `growth` (type: `string`):

Followers now and at the previous check, change and growth %.

## `activity` (type: `string`):

Is the page active: last post, its reactions / comments / shares, engagement, ads status and Ad Library link.

## `all` (type: `string`):

Every field of every row.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "pages": [
        "https://www.facebook.com/katzsdeli",
        "NASA",
        "https://www.facebook.com/shakeshack"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/facebook-page-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "pages": [
        "https://www.facebook.com/katzsdeli",
        "NASA",
        "https://www.facebook.com/shakeshack",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("s_actors/facebook-page-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "pages": [
    "https://www.facebook.com/katzsdeli",
    "NASA",
    "https://www.facebook.com/shakeshack"
  ]
}' |
apify call s_actors/facebook-page-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/facebook-page-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qgbitO9eb4KObzgBH/builds/J1913AVISa4VucSTb/openapi.json
