# Facebook Pages Scraper: Followers, Contacts, Creation Date (`themineworks/facebook-pages-scraper`) Actor

Scrape public Facebook Pages: category, About text, followers, likes, rating, address and map pin, phone, email, websites, social links, price range, creation date, ad status, verification and pictures. One row per Page. No login.

- **URL**: https://apify.com/themineworks/facebook-pages-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.86 / 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 Pages Scraper: Followers, Contacts, Creation Date

[![Facebook Page details with creation date, ad status, About text, contacts and map pin, one row per Page](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/facebook-pages-scraper-hero.png)](https://console.apify.com/actors/GciL7nIkQeEBbhYbO/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

Updated 25 Oct 2026: first release. Page links, usernames or ids in, one row per public Page out, with creation date, ad status, the full About text and map pin on top of the contact and reputation fields. Bookmark this Actor on its Store page so it is one click away next time.

### Why choose this actor?

- **One row per Page with the fields people ask for.** Name, categories, short bio and full About text, exact follower count, rating and recommend share, address with latitude and longitude, phone, email, websites, Instagram, X, YouTube, TikTok, LinkedIn and WhatsApp links, price range, opening status, verified badge, creation date, whether the Page is running ads right now, and profile and cover picture links.
- **You pay only for Pages that came back.** Pages that do not exist, were removed or are limited by age or country, personal profiles, groups, events and duplicates each get a free status row with the reason, in a separate dataset named `facebook-page-status`. They never appear in your results and are never charged.
- **Honest about what Facebook shows.** No Facebook account, no cookies of yours, no browser. In our test of 41 entries, 37 came back as Pages; 31 of those had a creation date and 19 had a long About text, and the rest are in the FAQ below with the reason. A field a Page does not show is left out of its row instead of filled with a guess.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/GciL7nIkQeEBbhYbO/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Social media and video family:** [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the JSON tab of the input page. It returns a restaurant, a Vancouver restaurant and a global brand. In our test it took 9 seconds for the three, with every extra read on; one of the three came back without its creation date because Facebook refused that tab read (see the FAQ).

```json
{
  "startUrls": [
    { "url": "https://www.facebook.com/copperkettleyqr" },
    { "url": "https://www.facebook.com/kissatanto" },
    { "url": "https://www.facebook.com/Visa" }
  ]
}
```

Each entry can be a Page link (`https://www.facebook.com/<name>`, with or without `www`, from `m.facebook.com`, `web.facebook.com`, `fb.com` or a language subdomain), a link to a tab or post of the Page (`/about`, `/reviews`, `/posts/<id>`, cut back to the Page), an old style link (`facebook.com/pages/<name>/<id>`), a `profile.php?id=<id>` link, a username such as `copperkettleyqr` or `@copperkettleyqr`, or a numeric Page id. Put usernames and ids in `pages`, links in `startUrls`, or mix them; both lists are read.

Apify's free plan includes $5 of credit every month, which covers about 460 results at this actor's price.

#### Copy to your AI assistant

```text
themineworks/facebook-pages-scraper on Apify. Reads public Facebook Pages as a logged out visitor and returns one row per Page: name, categories, intro, about_text, followers, following, talking_about, were_here, address, city, country, latitude, longitude, phone, email, websites, Instagram, X, YouTube, TikTok, LinkedIn and WhatsApp links, price_range, rating_text, recommend_percent, review_count, hours_status, verified, creation_date, ad_status, running_ads, page ids, picture links and the Meta Ad Library link. Call ApifyClient("TOKEN").actor("themineworks/facebook-pages-scraper").call(run_input={"startUrls": [{"url": "https://www.facebook.com/copperkettleyqr"}]}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give startUrls (Page links) and or pages (usernames or numeric ids). Optional: includeCreationDate (default true), includeAboutText (default true), includeCoordinates (default true), proxyConfiguration. Skip rows with a _type field (info rows are never charged). Pages that could not be read are not in the results; each is listed with a status and reason in the key-value store record OUTPUT (status_rows) and in the named dataset facebook-page-status. Full spec: GET https://api.apify.com/v2/acts/themineworks~facebook-pages-scraper/builds/default (Bearer TOKEN). Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Creation date and ad status.** With `includeCreationDate` on, the Page's transparency tab is read and gives `creation_date` as YYYY-MM-DD, Facebook's own `ad_status` line and `running_ads` as true or false.
- **Short bio and full About text.** `intro` is the short bio under the Page name; `about_text` is the long description from the About details tab, when the Page has one.
- **Map pin.** `latitude` and `longitude` for Pages with an address. Most come from the map link Facebook shows with the address, so they cost nothing extra; the rest are read from the Contact info tab.
- **Exact follower counts.** Read from the Page's own summary (3,317, not 3.3K), together with `following`, people talking about it and check ins.
- **Contacts and links.** Phone, email, the first website and every other website listed, and the accounts the Page lists on other networks, each in its own column.
- **Ad Library link on every Page.** Built from the classic Page id, so you can open a Page's ads in one click.
- **Business Pages only.** Personal profiles are recognised from the Page header and skipped with a status row. Nothing from a personal profile is extracted.
- **A status for every entry.** `not_available`, `personal_profile`, `not_a_page`, `invalid_input`, `duplicate`, `incomplete`, `blocked` or `skipped`, with a plain reason, in the `facebook-page-status` dataset and in the run summary. None is charged.

### How to use it

#### Basic: a handful of Pages

```json
{
  "pages": ["copperkettleyqr", "kissatanto", "https://www.facebook.com/Visa"]
}
```

#### Fast and light: counts and contacts only

Turn the three extra reads off. Each Page is then one request of about 1 MB, which is the quickest way through a long list. Creation date, ad status and About text come back empty; map pins still come back when the Page's map link carries one.

```json
{
  "pages": ["copperkettleyqr", "kissatanto"],
  "includeCreationDate": false,
  "includeAboutText": false,
  "includeCoordinates": false
}
```

#### Competitor and brand research

Run a list of brand Pages and sort on `followers`, `creation_date` and `running_ads` to see who is big, who is old and who is advertising today. Open `ad_library_url` for the ads themselves, or use our [Meta Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) on the same Pages.

#### Enrich a lead list

If your leads come from a directory or a maps export that carries a Facebook link but no email, run those links here and join the rows back on `input`, which holds each entry exactly as you gave it. Restaurants, hotels, bars and shops fill phone, email and address most often, because Facebook asks local businesses for them.

#### Keep a list fresh every month

Save your input as a task and add a schedule (Console, this actor, Schedules, Add schedule, monthly). Each run reads every Page again, so follower counts, ad status and changed contact details show up; a closed Page moves to the status dataset and stops costing you anything.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `startUrls` | array of links | 3 sample Pages (the ones in "Try it in one minute") | Facebook Page links. Up to 5,000 Pages per run across `startUrls` and `pages`. |
| `pages` | array of strings | empty | Usernames, `@names` or numeric Page ids, one per line. Read together with `startUrls`. |
| `includeCreationDate` | boolean | `true` | Reads the transparency tab: `creation_date`, `ad_status`, `running_ads`. About 0.5 MB and 2 seconds more per Page. |
| `includeAboutText` | boolean | `true` | Reads the About details tab: `about_text`. About 0.5 MB more per Page, up to 1.2 MB for a Page that has no About text. |
| `includeCoordinates` | boolean | `true` | Adds `latitude` and `longitude` for Pages with an address, from the Contact info tab when the map link has no pin. |
| `proxyConfiguration` | object | `{"useApifyProxy": true}` | Apify datacenter proxy, which is all this actor needs. Residential proxy is not used, even if selected. |

The price is the same with all three extra reads on or off. There is no maximum results setting: you get one row for each Page you list that Facebook shows to logged out visitors.

### What data do you get?

One row per Page. Fields that a Page does not show are left out of that row rather than filled with empty values.

**Identity**: `name`, `page_url`, `username`, `page_id` (the Page's profile id), `classic_page_id` (the id Meta's Ad Library and Graph API use), `category` and `categories`, `verified`, `confirmed_owner` (the organisation Facebook confirms is responsible for the Page), `intro` (short bio), `about_text` (full About text).

**Contact and place**: `phone`, `email`, `website`, `websites`, `address`, `city`, `country`, `map_url`, `latitude`, `longitude`, `service_area`.

**Social accounts**: `instagram_url`, `x_url`, `youtube_url`, `tiktok_url`, `linkedin_url`, `whatsapp_url`, and `social_links`, a list of every other account the Page shows, each with `network`, `url` and `handle`.

**Reputation**: `followers`, `likes` (only for Pages that still show a like count), `following`, `talking_about`, `were_here` (check ins), `rating_text`, `recommend_percent`, `review_count`, `rating` (for the few Pages that still show stars), `price_range`, `hours_status` (Open now, Closed now, Always open), `services`.

**History and ads**: `creation_date`, `ad_status`, `running_ads`, `ad_library_url`.

**Media**: `profile_picture_url`, `cover_photo_url`.

**Run fields**: `input` (your entry exactly as given), `status` (always `ok` in this dataset), `intro_loaded`, `details_loaded` (which extra reads worked for this row: `transparency`, `about`, `location`, `map_link`), `scraped_at`.

#### Stable fields for automations

These fields were present in every row of our test run and are safe to build on:

| Field | What it holds |
|---|---|
| `input` | Your entry exactly as you gave it |
| `status` | Always ok in this dataset |
| `name` | Page name |
| `page_url` | Link to the Page |
| `page_id` | Facebook profile id of the Page |
| `classic_page_id` | Classic Page id, used by the Ad Library |
| `category` | Categories joined with commas |
| `categories` | Categories as a list |
| `followers` | Follower count |
| `verified` | True when the Page has the verified badge |
| `ad_library_url` | Meta Ad Library link for the Page |
| `intro_loaded` | True when the Intro section was read |
| `details_loaded` | Which extra reads worked, as a list |
| `scraped_at` | When the row was read, ISO 8601 UTC |

These names will not change. New fields may be added; existing ones will not be renamed or removed.

#### What Facebook does not show a logged out visitor

- **Opening hours as a schedule.** Only the status (`hours_status`: Open now, Closed now, Always open) is public. The day by day table is not.
- **Page admins and the country they are in.** The transparency tab shows these only after login.
- **Likes.** Most Pages now show followers only, so `likes` is usually missing.
- **Phone, email and address** when the Page owner has not listed them. Big brands often list a website only.

#### The status dataset

Every entry that did not produce a row gets one status row in the named dataset `facebook-page-status` (open it from Storage, Datasets in Console) and in the run's `OUTPUT` record under `status_rows`. Each status row has `input`, `status`, `reason`, `page_url`, `attempts`, `run_id` and `scraped_at`. Filter on `run_id` to see one run, because a named dataset keeps rows from all your runs.

| Status | Meaning |
|---|---|
| `not_available` | Facebook showed its login page on all 6 tries, in two passes, while other Pages loaded. It does this for Pages that do not exist, were removed or renamed, or are limited by age or country, and now and then for a working Page while it is refusing a connection. |
| `personal_profile` | A personal profile, not a business Page. Skipped; nothing is extracted. |
| `not_a_page` | A group, event, Marketplace, watch, share or photo link, or a link to another site. |
| `invalid_input` | Not a Facebook link, name or id. |
| `duplicate` | The same Page as an earlier entry in the run (`same_as` names it). |
| `incomplete` | Facebook sent the page without its Page data on every try. |
| `blocked` | Facebook showed a security checkpoint on every try. |
| `skipped` | Not read because the run stopped (your spending limit, the run's time limit, or Facebook refusing the run's connections for several minutes). Run these entries again. |

#### Output examples

**The Copper Kettle Restaurant** (Pizza place), picture links trimmed:

```json
{
  "input": "copperkettleyqr",
  "status": "ok",
  "page_url": "https://www.facebook.com/copperkettleyqr",
  "page_id": "100064027242849",
  "classic_page_id": "851606664870954",
  "name": "The Copper Kettle Restaurant",
  "username": "copperkettleyqr",
  "category": "Pizza place",
  "categories": [
    "Pizza place"
  ],
  "followers": 3317,
  "following": 434,
  "talking_about": 39,
  "were_here": 1164,
  "intro": "Longstanding local restaurant. Mediterranean specialties, signature gourmet pizzas (Best of YQR for",
  "about_text": "A downtown landmark housed in a heritage building designed circa 1920s with floor to ceiling windows capturing beautiful views of Victoria Park. Family owned...",
  "address": "1953 Scarth Street, Regina, SK, Canada, Saskatchewan",
  "city": "Regina",
  "country": "Canada",
  "map_url": "https://maps.google.com/maps?q=50.44777950%2C-104.61026997%281953+Scarth+Street%2C+Regina%2C+SK%2C+Canada%2C+Saskatchewan%29&hl=en",
  "latitude": 50.4477795,
  "longitude": -104.61027,
  "phone": "+1 306-525-3545",
  "email": "copperkettle.events@gmail.com",
  "website": "http://www.thecopperkettle.online/",
  "websites": [
    "http://www.thecopperkettle.online/"
  ],
  "instagram_url": "https://www.instagram.com/copperkettleyqr",
  "social_links": [
    {
      "network": "instagram",
      "url": "https://www.instagram.com/copperkettleyqr",
      "handle": "copperkettleyqr"
    }
  ],
  "price_range": "$$",
  "rating_text": "94% recommend (201 reviews)",
  "recommend_percent": 94,
  "review_count": 201,
  "hours_status": "Open now",
  "services": "Outdoor seating",
  "verified": false,
  "creation_date": "2014-10-29",
  "ad_status": "This Page is currently running ads.",
  "running_ads": true,
  "profile_picture_url": "https://scontent.xx.fbcdn.net/...",
  "cover_photo_url": "https://scontent.xx.fbcdn.net/...",
  "ad_library_url": "https://www.facebook.com/ads/library/?view_all_page_id=851606664870954",
  "intro_loaded": true,
  "details_loaded": [
    "transparency",
    "about"
  ],
  "scraped_at": "2026-10-25T03:58:57.218Z"
}
```

**Starbucks** (Food & beverage company), picture links trimmed, About text shortened:

```json
{
  "input": "Starbucks",
  "status": "ok",
  "page_url": "https://www.facebook.com/Starbucks",
  "page_id": "100064487329582",
  "classic_page_id": "22092443056",
  "name": "Starbucks",
  "username": "Starbucks",
  "category": "Food & beverage company",
  "categories": [
    "Food & beverage company"
  ],
  "followers": 34061987,
  "following": 67,
  "talking_about": 111607,
  "were_here": 1902854,
  "intro": "The Starbucks Coffee Company ☕️",
  "about_text": "Come on in. This space is not so different from your neighborhood Starbucks. It’s a place where people from all over come together for conversation and great...",
  "website": "https://www.starbucks.com/",
  "websites": [
    "https://www.starbucks.com/"
  ],
  "social_links": [],
  "confirmed_owner": "STARBUCKS CORPORATION",
  "verified": true,
  "creation_date": "2008-03-11",
  "ad_status": "This Page is currently running ads.",
  "running_ads": true,
  "profile_picture_url": "https://scontent.xx.fbcdn.net/...",
  "cover_photo_url": "https://scontent.xx.fbcdn.net/...",
  "ad_library_url": "https://www.facebook.com/ads/library/?view_all_page_id=22092443056",
  "intro_loaded": true,
  "details_loaded": [
    "transparency",
    "about"
  ],
  "scraped_at": "2026-10-25T03:59:10.032Z"
}
```

**Tesla** (a Page with no address), picture links trimmed:

```json
{
  "input": "tesla",
  "status": "ok",
  "page_url": "https://www.facebook.com/tesla",
  "page_id": "61557420848648",
  "classic_page_id": "254515547747520",
  "name": "Tesla",
  "username": "tesla",
  "category": "Tech",
  "categories": [
    "Tech"
  ],
  "followers": 113533,
  "following": 0,
  "talking_about": 7878,
  "intro": "Electric vehicles, giant batteries & solar, AI & robotics",
  "about_text": "Electric vehicles, giant batteries & solar",
  "address": "1 Tesla Road, Austin, TX, United States, Texas",
  "city": "Austin",
  "country": "United States",
  "map_url": "https://maps.google.com/maps?q=1+Tesla+Road%2C+Austin%2C+TX%2C+United+States%2C+Texas&hl=en",
  "website": "https://www.tesla.com/",
  "websites": [
    "https://www.tesla.com/"
  ],
  "social_links": [],
  "confirmed_owner": "Tesla Inc",
  "verified": true,
  "creation_date": "2024-03-21",
  "ad_status": "This Page is currently running ads.",
  "running_ads": true,
  "profile_picture_url": "https://scontent.xx.fbcdn.net/...",
  "cover_photo_url": "https://scontent.xx.fbcdn.net/...",
  "ad_library_url": "https://www.facebook.com/ads/library/?view_all_page_id=254515547747520",
  "intro_loaded": true,
  "details_loaded": [
    "transparency",
    "about"
  ],
  "scraped_at": "2026-10-25T04:09:36.748Z"
}
```

### Pricing

Pay per event: you pay for the Page rows you receive, plus a flat $0.003 per run, whatever memory you choose. The creation date, About text and map pin reads cost nothing extra.

| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
| `page-scraped` | Once per Page row stored in your dataset | $10.80 per 1,000 | $7.38 per 1,000 | $5.85 per 1,000 | $4.86 per 1,000 |
| `run-start` | Once per run, when the first Page row is delivered | $0.003 | $0.003 | $0.003 | $0.003 |

The price per single Page is the price per 1,000 divided by 1,000. A Page costs the same whether it lists one contact detail or twenty, and whether the extra reads are on or off.

Never charged:

- Pages that do not exist, were removed, or are limited by age or country;
- personal profiles, groups, events, Marketplace and other links that are not Pages;
- duplicates of a Page already in the run;
- Pages the run could not read (incomplete loads, checkpoints, Pages skipped when the run stopped);
- status rows and the information row at the end of the run;
- a run with no valid input, or one whose Pages all fail: the start fee is charged only once the first Page row is delivered;
- anything past your "Max cost per run". The actor checks the budget before each row and stops while the total is still below your limit, so the run ends SUCCEEDED with a partial result and a status message saying so.

### Run it on a schedule

1. Open the actor in Apify Console, set your input and click **Save as a new task**.
2. In the task, open **Schedules**, click **Add schedule** and pick how often (every day, every Monday at 08:00 and so on).
3. Compare runs on `page_id` and `followers` to see growth, and on `running_ads` to see when a competitor starts or stops advertising.
4. Optional: add an integration (Google Sheets, Slack, a webhook) so each run lands where your team works.

### FAQ

#### What does this actor read?

The public Facebook Page of a business, brand, venue or organisation, as Facebook shows it to someone who is not logged in: the header (name, followers, verified badge, pictures), the Intro box (category, address, phone, email, websites, other accounts, hours status, price range, rating) and, with the extra reads on, three of the Page's About tabs (transparency, details, contact info). It does not read posts, comments, reviews, groups, events or Marketplace. For reviews use our [Facebook Reviews Scraper](https://apify.com/themineworks/facebook-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

#### Do I need a Facebook account, cookies or a token?

No. The actor never logs in and never asks for your cookies. It reads what any visitor sees on the open web.

#### Why is `creation_date` or `about_text` missing on some Pages?

`creation_date` is missing when Facebook did not show the transparency tab to that visit. In our test of 37 Pages it came back on 31; the other tab reads were refused with Facebook's login page, and one retry on the same visitor did not change that. Running the missing Pages again usually fills them. `about_text` is missing when the Page has no About text of its own (19 of 37 Pages had one; many big brands do not) or when the tab was refused the same way. `details_loaded` on each row says which extra reads worked.

#### How long does a run take, and how much data does it download?

A Page takes about 2 to 4 seconds on its own; with all three extra reads on, about 10 seconds. The Page itself is about 1 MB. The creation date read adds about 0.4 MB, the About text read about 0.5 MB (up to 1.2 MB for a Page with no About text), because each tab is closed as soon as the part holding the field has arrived. In our test run that came to about 2.4 MB per delivered row with everything on, including the refused tries. Three Pages are read at the same time. The default run time limit is one hour; raise it in the run options for long lists, or turn the extra reads off.

#### Why did some of my Pages come back as not available?

Facebook sends logged out visitors to its login page for Pages that do not exist, were removed or renamed, and for Pages limited by age or country. In our test 3 of 38 entries that looked like real Pages ended this way after 6 tries in two passes, the second pass only after a known public Page had loaded on the same run. They are free. If you know the Page exists, run it again later.

#### What happens if Facebook starts refusing the run?

Facebook sometimes shows its login page to a whole connection for a while after many visits. When 6 Pages in a row fail, the actor loads a known public Page. If that loads, the run carries on. If it is refused too, every worker pauses for 1 minute, then 2, then 4, checking again each time. After 4 refused checks in a row, or 20 minutes of pauses in one run, the run stops, and the Pages it did not read are listed as `skipped` and not charged.

#### Is the data fresh?

Yes. Every run reads the live Page at that moment. Opening status (`hours_status`) and `running_ads` are as of the time in `scraped_at`. Picture links from Facebook's image servers expire after some days, so download pictures soon if you need them.

#### Are personal profiles included?

No. A personal profile is recognised from its header and returned only as a `personal_profile` status row. Its name, work, city and other details are not extracted.

#### Which proxy does it use?

Apify datacenter proxy, which comes with every Apify plan. You do not need to change anything. Each try of a Page is a new anonymous visitor on a new proxy session.

#### Can I get the data in Excel, CSV or Google Sheets?

Yes. Download the dataset as CSV, Excel, JSON, XML or HTML from the run page, or send it to Google Sheets with the Apify integration. The main columns are flat; lists such as `websites`, `social_links` and `details_loaded` are spread over numbered columns.

#### How is this different from your Facebook Page Contacts Scraper?

[Facebook Page Contacts Scraper](https://apify.com/themineworks/facebook-page-contacts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) returns the header and Intro fields only and is the lighter, quicker choice when you need phone, email and website. This actor returns the same fields plus creation date, ad status, the full About text and the map pin.

#### Can I use it from Claude, ChatGPT or another AI assistant?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/facebook-pages-scraper

- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http facebook-pages-scraper "https://mcp.apify.com/?tools=themineworks/facebook-pages-scraper"`

#### Is it legal to scrape Facebook Pages?

The actor reads only public business Pages that Facebook shows to anyone without logging in, and it skips personal profiles. Facebook's terms restrict automated collection, so decide for yourself whether your use is acceptable to you. Business contact details can still be personal data in some cases (a sole trader's own phone number, for example). You are responsible for how you use the data and for following Facebook's terms and data protection law such as the GDPR and the CCPA. This is general information, not legal advice.

### Integrations

- **Google Sheets**: send each run's rows to a sheet with the Google Sheets integration.
- **Make, Zapier and n8n**: start a run from a new row in your CRM or sheet, and pass the Page rows on when the run finishes.
- **Webhooks**: get a call when a run succeeds and fetch the dataset from it.
- **API**: start runs and read results from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT, Cursor and others, through the connector URL above.

### More from The Mine Works

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Twitter / X Scraper](https://apify.com/themineworks/twitter-x-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [YouTube Transcript](https://apify.com/themineworks/youtube-transcript-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Xiaohongshu (RED) Scraper](https://apify.com/themineworks/xiaohongshu-explore-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Telegram Channel Scraper](https://apify.com/themineworks/telegram-channel-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Telegram Channel Finder](https://apify.com/themineworks/telegram-channel-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Pinterest Profile Scraper](https://apify.com/themineworks/pinterest-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a Page that should work and does not, or a field you need? Open an issue in the Issues tab with the Page link and the run ID. For new sources or a custom version, email dmineworks@gmail.com.

*Facebook Pages Scraper turns a list of Facebook Pages into one row each, with followers, contacts, map pin, creation date, ad status and About text, and charges only for the Pages that come back.*

# Actor input Schema

## `startUrls` (type: `array`):

Page links such as https://www.facebook.com/copperkettleyqr (also m.facebook.com, profile.php?id=, /about or /posts links, which are cut back to the Page). Up to 5,000 Pages per run. Groups, events, Marketplace and personal profiles are not read; each gets a free status row.

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

Usernames like copperkettleyqr, @copperkettleyqr, or numeric Page ids, one per line. Used together with the links above.

## `includeCreationDate` (type: `boolean`):

On: one extra read of the Page's transparency tab gives creation_date, ad_status and running_ads. Same price either way; a run takes about 2 seconds longer per Page.

## `includeAboutText` (type: `boolean`):

On: one extra read of the Page's About details tab gives about_text, the long description (intro is the short bio). Same price either way; about 2 seconds more per Page.

## `includeCoordinates` (type: `boolean`):

On: Pages with an address get latitude and longitude. Most come free from the Page's map link; the rest need one extra read of the Contact info tab.

## `proxyConfiguration` (type: `object`):

Apify datacenter proxy, which is all this actor needs. Each try of a Page goes out as a new anonymous visitor. Residential proxy is not used, even if selected.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.facebook.com/copperkettleyqr"
    },
    {
      "url": "https://www.facebook.com/kissatanto"
    },
    {
      "url": "https://www.facebook.com/Visa"
    }
  ],
  "includeCreationDate": true,
  "includeAboutText": true,
  "includeCoordinates": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.facebook.com/copperkettleyqr"
        },
        {
            "url": "https://www.facebook.com/kissatanto"
        },
        {
            "url": "https://www.facebook.com/Visa"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/facebook-pages-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 = {
    "startUrls": [
        { "url": "https://www.facebook.com/copperkettleyqr" },
        { "url": "https://www.facebook.com/kissatanto" },
        { "url": "https://www.facebook.com/Visa" },
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/facebook-pages-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 '{
  "startUrls": [
    {
      "url": "https://www.facebook.com/copperkettleyqr"
    },
    {
      "url": "https://www.facebook.com/kissatanto"
    },
    {
      "url": "https://www.facebook.com/Visa"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call themineworks/facebook-pages-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/facebook-pages-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/GciL7nIkQeEBbhYbO/builds/tFIuEEkPCg3ZeK55r/openapi.json
