# Facebook Profile Scraper — Followers, Emails & Phone Numbers (`scrapepilot/istrame-scraper`) Actor

Extract followers, likes, emails, phone numbers, websites, category and verified status from any Facebook page or profile. Direct URL mode and Google SERP keyword discovery. Desktop and mbasic fallback. No login required. Pay only for successful results.

- **URL**: https://apify.com/scrapepilot/istrame-scraper.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 scraped facebook profiles

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 📘 Facebook Profile Scraper — Extract Followers, Emails, Phones & Contact Data from Any Facebook Page

> **Paste any Facebook page or profile URL — get followers, likes, emails, phone numbers, websites, category and verified status instantly.**
> The fastest Facebook profile data extractor on Apify. Direct URL mode and Google SERP discovery mode. No login. No API key. Pay only for successful results.

***

### 💰 Simple, Transparent Pricing

```
┌──────────────────────────────────────────────────────────┐
│                                                          │
│   Per result scraped            $5.00  / 1,000           │
│   Actor start                   $0.005 per run           │
│                                                          │
│   ✅ Failed profiles are NEVER charged                   │
│   ✅ Only successful extractions are billed              │
│   ✅ Stop anytime — spending limit always respected       │
│                                                          │
│   Example: Scrape 200 Facebook pages                     │
│   = $1.00 total + $0.005 start = $1.005                  │
│                                                          │
└──────────────────────────────────────────────────────────┘
```

***

### 🎯 What Does This Actor Do?

**Facebook Profile Scraper** takes any Facebook page, profile, or group URL and extracts complete public data — followers, likes, emails, phone numbers, external websites, category, verification status, bio, avatar, and Facebook ID.

Two powerful input modes:

- **Direct URL mode** — paste Facebook URLs and get data instantly
- **Google SERP mode** — type any keyword and the actor discovers matching Facebook pages automatically via Google search, then scrapes them

No Facebook account. No cookies. No API key. Just input and results.

#### Real-World Example

**You provide:**

```
https://www.facebook.com/nike
https://www.facebook.com/nasa
```

**You get back:**

```json
{
  "source": "facebook",
  "status": "success",
  "profileUrl": "https://www.facebook.com/nike",
  "facebookId": "9190187016",
  "profileType": "page",
  "name": "Nike",
  "category": "Sportswear Store",
  "verified": true,
  "bio": "Just Do It.",
  "followersCount": 34200000,
  "likesCount": 33800000,
  "avatarUrl": "https://scontent.cdninstagram.com/...",
  "emails": ["press@nike.com"],
  "phones": ["+1 503-671-6453"],
  "websites": ["https://www.nike.com"],
  "fetchStrategy": "desktop",
  "scrapedAt": "2025-06-05T11:19:00+00:00"
}
```

One clean record per Facebook page or profile. All contact data. Ready for your CRM.

***

### 🏆 Why This Is the Best Facebook Profile Scraper on Apify

| Feature | ✅ This Actor | ❌ Manual Research | ⚠️ Other Scrapers |
|---|:---:|:---:|:---:|
| Followers + likes count | ✅ | ❌ Slow | ⚠️ Partial |
| Email addresses | ✅ | ❌ | ❌ |
| Phone numbers | ✅ International | ❌ | ❌ |
| External websites | ✅ | ❌ | ⚠️ |
| Category & verified status | ✅ | ❌ | ❌ |
| Facebook ID extraction | ✅ | ❌ | ⚠️ |
| Bio / page description | ✅ | ❌ | ⚠️ |
| Google SERP discovery mode | ✅ | ❌ | ❌ |
| Direct URL batch mode | ✅ | ❌ | ⚠️ |
| Desktop + mbasic fallback | ✅ Auto | N/A | ❌ |
| No login or API key | ✅ | ✅ | ⚠️ |
| Pay only for results | ✅ | N/A | ❌ |

***

### 📊 All Data Fields Extracted

#### 🏢 Page / Profile Identity

| Field | Description | Example |
|---|---|---|
| `name` | Page or profile name | `"Nike"` |
| `profileUrl` | Clean canonical Facebook URL | `"https://facebook.com/nike"` |
| `facebookId` | Numeric Facebook page/user ID | `"9190187016"` |
| `profileType` | page / profile / group | `"page"` |
| `category` | Business category | `"Sportswear Store"` |
| `verified` | Verified badge status | `true` |
| `bio` | Page description / bio text | `"Just Do It."` |
| `avatarUrl` | Profile image URL | `"https://scontent..."` |

#### 📈 Audience Metrics

| Field | Description | Example |
|---|---|---|
| `followersCount` | Total followers | `34200000` |
| `likesCount` | Total page likes | `33800000` |

#### 📞 Contact Information

| Field | Description | Example |
|---|---|---|
| `emails` | Email addresses found on page | `["press@nike.com"]` |
| `phones` | Phone numbers (international format) | `["+1 503-671-6453"]` |
| `websites` | External website URLs | `["https://www.nike.com"]` |

#### 🔍 Scrape Metadata

| Field | Description | Example |
|---|---|---|
| `fetchStrategy` | desktop / mbasic | `"desktop"` |
| `status` | success / partial | `"success"` |
| `scrapedAt` | UTC timestamp | `"2025-06-05T11:19Z"` |

***

### 🚀 Top Use Cases

#### 🏢 B2B Lead Generation & CRM Enrichment

Upload a list of Facebook business pages → get emails, phone numbers, websites, and follower counts in minutes. Enrich your CRM with verified contact data — no manual browsing needed.

#### 📊 Competitor & Market Intelligence

Scrape follower counts, categories, and verified status across competitor Facebook pages. Map your entire industry's social presence and audience size at scale.

#### 🔍 Facebook Page Discovery via Keyword

Use **SERP mode** to find Facebook pages by keyword — type "digital marketing agency London" and the actor finds and scrapes all matching Facebook pages automatically, with no manual URL research needed.

#### 🤝 Influencer & Partnership Research

Extract follower counts, contact emails, and websites from Facebook pages before any outreach. Find the right contact information without visiting each page manually.

#### 🗂️ Business Directory & Database Building

Build structured directories of businesses in any niche — with category, contact info, follower count, and verification status — from Facebook page lists at scale.

#### 📣 PR & Media Outreach

Find press contact emails from media pages, news organizations, and brand Facebook pages. Build targeted outreach lists with real contact data from public page info.

***

### ⚙️ Input — Two Powerful Modes

#### Mode 1 — Direct URL Scraping

```json
{
  "mode": "direct_urls",
  "profileUrls": [
    "https://www.facebook.com/nike",
    "https://www.facebook.com/nasa",
    "https://www.facebook.com/profile.php?id=123456789"
  ],
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

#### Mode 2 — Google SERP Discovery

```json
{
  "mode": "google_serp",
  "keyword": "digital marketing agency New York",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

> **💡 SERP mode automatically adds `site:facebook.com` to your keyword** — so you get only Facebook results. Just type what you're looking for.

#### All Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `direct_urls` | `direct_urls` or `google_serp` |
| `profileUrls` | array | — | Facebook page/profile URLs (direct\_urls mode) |
| `keyword` | string | — | Search keyword for Facebook page discovery (google\_serp mode) |
| `maxResults` | integer | `10` | Maximum profiles to scrape per run |
| `requestTimeoutSecs` | integer | `15` | HTTP request timeout in seconds |
| `retriesPerStrategy` | integer | `1` | Retries per URL per fetch strategy |
| `delaySeconds` | float | `0.5` | Delay between requests (seconds) |
| `proxyConfiguration` | object | Residential | Proxy configuration |

***

### 🔄 How It Works — Smart Dual Strategy

```
INPUT: Facebook URLs  ──OR──  Keyword (SERP mode)
              │                        │
              │               Google SERP search
              │               discovers Facebook URLs
              │                        │
              └──────────┬─────────────┘
                         ▼
             ┌─────────────────────────┐
             │  Strategy 1: Desktop    │  ← Full page HTML
             │  www.facebook.com       │
             └────────────┬────────────┘
                          │ (if blocked or login wall)
                          ▼
             ┌─────────────────────────┐
             │  Strategy 2: mbasic     │  ← Lightweight HTML
             │  mbasic.facebook.com    │
             └────────────┬────────────┘
                          │
                          ▼
             Extract: name · ID · followers · likes
                      emails · phones · websites
                      category · verified · bio
                          │
                          ▼
             ✅ SUCCESS → Charged + Saved
             ❌ FAILED  → Not charged, warning logged
```

**Login wall detection** — if Facebook redirects to a login page, the actor automatically detects this, skips the URL, and does **not charge** for it.

***

### 📤 Export Your Results

All results stored in the Apify dataset — export anytime:

```
✅ JSON          — for developers and APIs
✅ CSV           — for Excel, Google Sheets
✅ Excel (.xlsx) — ready to filter and sort
✅ JSONL         — for data pipelines
✅ XML           — for enterprise integrations
```

***

### ⚡ Performance

| Profiles | Estimated Time |
|:---:|:---:|
| 10 | ~1–2 minutes |
| 50 | ~3–6 minutes |
| 100 | ~6–12 minutes |
| 500 | ~25–50 minutes |

- Results saved **immediately** as each profile completes
- Requests spaced with configurable delay to avoid rate limiting
- Residential proxy automatically used for best success rates

***

### ❓ Frequently Asked Questions

**Q: Do I need a Facebook account or login?**
No. This scraper extracts publicly visible page data only. No account, session, or cookie is needed.

**Q: What is SERP mode and how does it work?**
In SERP mode, you type any keyword (e.g. "dentist clinic London"). The actor searches Google for `site:facebook.com dentist clinic London`, collects all matching Facebook page URLs from the results, then scrapes each one automatically. No manual URL collection needed.

**Q: Why are some fields null or empty?**
Not all Facebook pages publish every data point publicly. Pages without a listed email, phone, or website will return empty arrays for those fields. Follower/like counts may be null if Facebook does not expose them in the public page HTML without login.

**Q: What is `status: "partial"`?**
Partial means the page was successfully fetched and some data was extracted, but the page name could not be confidently identified. All other available fields are still populated and the result is still charged.

**Q: What happens if Facebook shows a login wall?**
The actor detects login walls automatically. If both fetch strategies (desktop and mbasic) are blocked by a login wall, the URL is skipped and **you are not charged**.

**Q: What phone number formats are supported?**
All international formats are supported. Numbers are normalized to international format (e.g. `+1 503-671-6453`, `+44 20 7946 0958`).

**Q: Can I scrape Facebook groups?**
Yes. Group URLs are supported and the `profileType` field will return `"group"`.

**Q: How many profiles can I scrape in one run?**
Set `maxResults` to any number. There is no hard limit per run.

**Q: Can I export to Excel or CSV?**
Yes. All results are in the Apify dataset and can be exported to CSV, Excel, JSON, JSONL, or XML from the Apify Console.

***

### 📜 Changelog

#### v1.0.0 — Current Release

- ✅ Page name, bio, category, verified status
- ✅ Facebook numeric ID extraction
- ✅ Followers and likes count
- ✅ Email address extraction (text + JSON + meta)
- ✅ Phone number extraction (international normalization)
- ✅ External website URL extraction
- ✅ Avatar / profile image URL
- ✅ Profile type detection: page / profile / group
- ✅ Direct URL mode — batch scrape any Facebook URLs
- ✅ Google SERP discovery mode — find pages by keyword
- ✅ Dual fetch strategy: desktop + mbasic fallback
- ✅ Login wall detection — blocked URLs never charged
- ✅ Pay-per-result: only successful extractions charged
- ✅ Spending limit respected — stops cleanly at cap
- ✅ Residential proxy support (automatic)

***

### ⚖️ Legal & Terms of Use

This actor scrapes publicly accessible Facebook pages and profiles in the same way a regular logged-out user views them in a browser.

- Use extracted data only for **lawful purposes** — lead generation, market research, CRM enrichment, and competitive analysis are common legitimate uses
- Do not use this actor to harvest personal data for spam, robocalls, or any purpose that violates privacy laws (GDPR, CCPA, CAN-SPAM)
- Respect Facebook's Terms of Service when running at scale
- The actor developer is not responsible for how extracted data is used

***

### 🤝 Support

- **Issue or bug?** → Contact via the Apify actor page
- **Feature request?** → Post in the Apify Community forum
- **Loving it?** → Please leave a ⭐ review — it helps other users find this actor!

***

<p align="center">
  <strong>📘 Facebook Profile Scraper — Followers · Emails · Phones · Websites · Contact Data</strong><br/>
  <em>Direct URL Mode · Google SERP Discovery · No Login · Pay Per Result</em><br/><br/>
  <strong>💰 $5.00 per 1,000 results · $0.005 per run · Only pay for successful results</strong>
</p>

***

#### 🏷️ Tags

`facebook profile scraper` `facebook page scraper` `facebook data extractor` `facebook followers scraper` `facebook contact scraper` `facebook email extractor` `facebook phone number scraper` `facebook lead scraper` `facebook page data` `facebook business scraper` `facebook likes scraper` `facebook verified page scraper` `facebook SERP scraper` `social media lead extractor` `facebook page contact info` `facebook followers count` `no login facebook scraper` `facebook bulk scraper`

# Actor input Schema

## `mode` (type: `string`):

Select Direct URL scraping or Keyword discovery via Google SERP.

## `profileUrls` (type: `array`):

List of Facebook URLs to scrape directly.

## `keyword` (type: `string`):

Keyword to find Facebook profiles. Example: 'Plumbers in New York'.

## `maxResults` (type: `integer`):

Maximum number of profiles to scrape.

## Actor input object example

```json
{
  "mode": "direct_urls",
  "profileUrls": [
    "https://www.facebook.com/zuck"
  ],
  "maxResults": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Collection of extracted Facebook profiles and pages including contact info, followers, categories, and bio.

# 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 = {
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/istrame-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 = { "maxResults": 10 }

# Run the Actor and wait for it to finish
run = client.actor("scrapepilot/istrame-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 '{
  "maxResults": 10
}' |
apify call scrapepilot/istrame-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapepilot/istrame-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/hI7OhZ7SC39xsDWMc/builds/31ZVrAxgzhiMo55Zn/openapi.json
