Facebook Pages Scraper - Emails, Phones & Followers
Eimantas V · @amethyst
Scrape Facebook Pages by link, username or ID: email, phone, website, address, exact followers, category, rating and social links. No login or cookies.

About
Facebook Pages Scraper extracts business contact details and Page data from public Facebook Pages: email, phone, website, full address with map coordinates, exact follower counts, category, rating, opening status, price range, services and the Page's Instagram, TikTok, YouTube, X and LinkedIn accounts. Paste Page links, usernames or Page IDs and get one clean row per Page. No login, no cookies, no browser.
name The Copper Kettle Restaurant followers 3311 (exact)
category Pizza place rating 94% recommend (201 reviews)
email [email protected] price $$
phone +1 306-525-3545 hours Closed now
website http://www.thecopperkettle.online/ instagram https://www.instagram.com/copperkettleyqr
address 1953 Scarth Street, Regina, SK, Canada, S4P 2H1 (50.4477795, -104.610269968)
add-ons created 2014-10-29 · currently running ads · full About text
Benchmark: 80 brand Pages in 32 seconds, a list of 12 restaurants and creators in 18 seconds, about one request per Page.
What does Facebook Pages Scraper do?
It reads the public information Facebook shows on a Page's About section to anyone who is not logged in, and turns it into a spreadsheet-ready row: who the business is, how to contact it, where it is, how popular it is and where else it is active. It is built for lead generation, local-business research, influencer and brand lists, and CRM enrichment.
- Every Page link works. facebook.com/name, profile.php?id= links, /p/ links, share links, @usernames and numeric Page IDs. Two spellings of the same Page are returned once.
- Lead-ready contacts. Every email, phone and website the Page lists, the street address with postal code and map coordinates, and linked social accounts in their own columns.
- Exact numbers. Followers to the last digit (not "3.3K"), "talking about this", check-ins, following, and the rating as % recommend plus the review count.
- Optional add-ons. Page transparency: the date the Page was created, whether it is running ads right now, and its confirmed owner. About text: the Page's full description.
- Clear errors. Pages that are missing, hidden from logged-out visitors or blocked return an error row instead of failing the run.
- Built for automation. Run it on a schedule, call it from the API, or connect it to an AI agent through the Bytewells MCP server.
Why it is fast and cheap
There is no browser. The Actor requests the same server-rendered About page Facebook sends any logged-out visitor and stops downloading as soon as the Page's fields have arrived: about 100 KB per Page instead of the 10-20 MB the full page weighs. It starts without a proxy and switches to residential IPs only when Facebook asks for that, so residential traffic is spent only where it is needed.
What data can you extract from Facebook Pages?
| Field | Example | What it is |
|---|---|---|
name | The Copper Kettle Restaurant | The Page's name |
category, categories | Pizza place | The Page's categories |
email, emails | [email protected] | Every email address the Page lists |
phone, phones | +1 306-525-3545 | Every phone number the Page lists |
website, websites | http://www.thecopperkettle.online/ | Real website addresses (not Facebook's redirect links) |
address | 1953 Scarth Street, Regina, SK, Canada, S4P 2H1 | Street address, usually with the postal code |
latitude, longitude | 50.4477795, -104.610269968 | Map pin of the address |
followers | 3311 | Exact follower count |
talkingAbout, checkins, following | 56, 1166, 433 | "Talking about this", "were here", and Pages followed |
rating, ratingCount | 94, 201 | % of reviewers who recommend it, and how many reviews |
priceRange, services | $$, ["Outdoor seating"] | Price range and services (dine-in, delivery...) |
hoursStatus, openNow | Closed now, false | Opening status when the Page was read |
instagramUrl, tiktokUrl, youtubeUrl, xUrl, linkedinUrl | https://www.instagram.com/copperkettleyqr | Linked accounts; socialLinks lists all of them with handles |
verified, intro | false, "Longstanding local restaurant..." | Verified badge and the short intro |
pageId, profileId, username, pageUrl | 851606664870954 | Ids and the canonical link |
profilePictureUrl, coverPhotoUrl | https://scontent... | Profile and cover photos |
adLibraryUrl | https://www.facebook.com/ads/library/?...view_all_page_id=851606664870954 | The Page's ads in Meta's Ad Library |
createdAt, runningAds, adStatus, confirmedOwner | 2014-10-29, true | Page transparency add-on |
about | A downtown landmark housed in a heritage building... | About text add-on: the full description |
otherFields | business_service_area: Portland | Any other About field the Page shows |
How to scrape Facebook Pages
- Click Try for free and paste Page links, usernames or Page IDs into Facebook Pages, one per line.
- Turn on Page transparency and About text if you need them, and set Max Pages (your cost cap).
- Click Start. A list of 100 Pages usually takes under a minute.
- Open the Output tab (views: Overview, Contacts, Audience & business, Ads & About), or read the dataset as JSON.
How much does it cost to scrape Facebook Pages?
One flat monthly rental, shown on this page, with a free trial. There is no per-Page fee: scrape as many Pages as you need.
Runs use your credits for compute and proxy traffic, as every Actor does. Measured on Bytewells: 2 Pages with full details in 8 seconds for $0.0007 of credits, both answered without a proxy. When Facebook refuses an address, the Actor moves to the datacenter and then the residential proxy, about 100 KB of residential traffic per Page, so even an all-residential run stays under $1 per 1,000 Pages.
Input
{
"targets": [
"https://www.facebook.com/oysterbarny",
"nasaearth",
"https://www.facebook.com/profile.php?id=100067499490396"
],
"includeTransparency": true,
"includeAbout": false,
"maxItems": 1000
}
| Field | Default | Notes |
|---|---|---|
| Facebook Pages | 2 example Pages | Page links, usernames or numeric Page IDs, one per line. Public profiles of people work too |
| Start URLs | none | The same, as a URL list from another Actor |
| Page transparency | off | Creation date, running ads, confirmed owner: one more request per Page |
| About text | off | The full About description: one more request per Page |
| Max Pages | 1,000 | Total across the run: your cost cap |
| Concurrency, timeout, retries | 8, 20 s, 1 | Tuned defaults; the Actor picks its own addresses, so there are no proxy settings |
Output
Each Page is one row in the dataset. The Overview view shows the key columns; every export includes all fields.
{
"recordType": "page",
"input": "https://www.facebook.com/copperkettleyqr",
"name": "The Copper Kettle Restaurant",
"pageUrl": "https://www.facebook.com/copperkettleyqr",
"username": "copperkettleyqr",
"pageId": "851606664870954",
"profileId": "100064027242849",
"profileType": "PAGE",
"category": "Pizza place",
"categories": ["Pizza place"],
"intro": "Longstanding local restaurant. Mediterranean specialties, signature gourmet pizzas (Best of YQR for",
"followers": 3311,
"following": 433,
"talkingAbout": 56,
"checkins": 1166,
"verified": false,
"email": "[email protected]",
"emails": ["[email protected]"],
"phone": "+1 306-525-3545",
"phones": ["+1 306-525-3545"],
"website": "http://www.thecopperkettle.online/",
"websites": ["http://www.thecopperkettle.online/"],
"address": "1953 Scarth Street, Regina, SK, Canada, S4P 2H1",
"latitude": 50.4477795,
"longitude": -104.610269968,
"rating": 94,
"ratingCount": 201,
"ratingText": "94% recommend (201 reviews)",
"priceRange": "$$",
"services": ["Outdoor seating"],
"hoursStatus": "Closed now",
"openNow": false,
"instagramUrl": "https://www.instagram.com/copperkettleyqr",
"tiktokUrl": null,
"xUrl": null,
"youtubeUrl": null,
"linkedinUrl": null,
"socialLinks": [{ "network": "instagram", "url": "https://www.instagram.com/copperkettleyqr", "handle": "copperkettleyqr" }],
"profilePictureUrl": "https://scontent.fplq1-2.fna.fbcdn.net/v/t39.30808-1/...",
"coverPhotoUrl": "https://scontent.fplq1-2.fna.fbcdn.net/v/t39.30808-6/...",
"adLibraryUrl": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=ALL&view_all_page_id=851606664870954",
"transparencyIncluded": true,
"createdAt": "2014-10-29",
"adStatus": "This Page is currently running ads.",
"runningAds": true,
"confirmedOwner": null,
"aboutIncluded": true,
"about": "A downtown landmark housed in a heritage building designed circa 1920s with floor to ceiling windows capturing beautiful views of Victoria Park. Family owned by the Gardikiotis' for 57 years...",
"otherFields": [],
"scrapedAt": "2026-10-20T07:22:40.021Z"
}
A Page that cannot be read becomes a row with "recordType": "error" and an errorCode instead of failing the whole run:
errorCode | Meaning |
|---|---|
NOT_AVAILABLE | Facebook shows the Page only to signed-in users, or it does not exist. Pages limited by age or country (alcohol brands, for example) are hidden from logged-out visitors |
NOT_FOUND | No Page at that link or id |
NOT_A_PAGE | A share link that opens a post, video or group |
DUPLICATE | Another input in the same run named the same Page; it was returned once |
RATE_LIMITED | Facebook refused every address the run tried for this Page; run it again later |
PARSE_FAILED | Facebook returned a page the Actor could not read; please report it |
Tips and limits
- Paste links or usernames, not names. Facebook's search needs a login, so "Joe's Pizza Austin" cannot be looked up. To find the Pages of a list of businesses, run Google Maps Scraper first: it returns the Facebook links businesses publish.
- What logged-out Facebook does not show: likes counts, the full weekly opening hours (only "Open now" / "Closed now"), reviews, posts and photo lists. For a Page's posts, use Facebook Posts Scraper.
- Long intros are shortened by Facebook to about 80 characters with "..."; turn on About text for the full description.
- Follower counts are exact for almost every Page. A few celebrity Pages publish only a rounded figure (84M), which is returned as 84000000.
- Photo links expire after a few weeks (Facebook signs them). Download the images if you keep them.
FAQ
Is it legal to scrape Facebook Pages?
This Actor collects only data that Facebook shows publicly to logged-out visitors, mostly business contact details that Pages publish to be contacted. Results can still contain personal data (a public figure's profile, an employee's work email), which laws such as the GDPR protect. Scrape personal data only for a legitimate purpose, and ask a lawyer if you are unsure. Facebook is a trademark of Meta Platforms; this Actor is not affiliated with or endorsed by Meta.
Do I need a Facebook account, cookies or an API key?
No. Nothing is logged in, so no account can be banned, and there are no cookies to renew.
Can I use it through the API?
Yes. Every run can be started through the API and returns the dataset as JSON. Runs can also be scheduled and followed with webhooks.
Can AI agents use it?
Yes. Agents connected to the Bytewells MCP server can find and run this Actor as a tool.
Why did I get fewer results than I asked for?
Some Pages are hidden from logged-out visitors or do not exist (their error rows say which), or the run reached its timeout. The log says which, and nothing collected before that is lost.
Related scrapers
- Facebook Posts Scraper: the posts these Pages publish, with only new posts on scheduled runs.
- Meta Ads Library Scraper: the ads behind
runningAds, with copy, dates and reach. - Google Maps Scraper: find local businesses by keyword and city, with their websites.
- Instagram Profile Scraper: followers and posts of the Instagram accounts these Pages link.
FAQ
- What data does it return for each Facebook Page?
- Email, phone, website, full address with map coordinates, exact follower count, category, rating, opening status, price range, services, and the Page's Instagram, TikTok, YouTube, X and LinkedIn links. Optional: the Page's creation date, whether it is running ads, and its full About text.
- Do I need a Facebook account, cookies or an API key?
- No. Nothing is logged in, so no account can be banned and there are no cookies to renew.
- Can I search for Pages by business name?
- No. Facebook's search needs a login, so give Page links, usernames or Page IDs. To find the Pages of a list of businesses, run Google Maps Scraper first: it returns the Facebook links businesses publish.
- How much does it cost?
- One flat monthly rental, shown on this page, with a free trial and no per-Page fee. Runs use your Bytewells credits for compute and any proxy traffic. Most Pages answer without a proxy; when Facebook refuses an address, the Actor moves to the datacenter and then the residential proxy (about 100 KB per Page), so even an all-residential run stays under $1 per 1,000 Pages.
- What does Facebook not show without a login?
- Likes counts, the full weekly opening hours (only Open now or Closed now), reviews, posts and photo lists. For a Page's posts, use Facebook Posts Scraper by the same publisher.
- Can I use it through the API or from AI agents?
- Yes. Start runs through the Bytewells API (bytewells.com/docs/api), schedule them and read the dataset as JSON; webhooks work too. The API is Apify-compatible, so apify-client works with the Bytewells base URL. AI agents can run it as a tool through the Bytewells MCP server (bytewells.com/docs/mcp).
- Is it legal to scrape Facebook Pages?
- It collects only data Facebook shows publicly to logged-out visitors, mostly contact details businesses publish to be contacted. Results can still contain personal data protected by laws such as the GDPR: use it for a legitimate purpose and ask a lawyer if you are unsure. This Actor is not affiliated with or endorsed by Meta.
Input
Preview of the input form. Rent the Actor to fill it in and start runs from the console.
targetsOne Page per line: a link (https://www.facebook.com/nasaearth, profile.php?id=..., /p/... and share links), a username (nasaearth) or a numeric Page ID. Public profiles of people work too. Groups, posts, events and plain names with spaces are not Pages and are skipped with a warning.
startUrlsThe same Pages in the URL-list shape other Actors output, so a previous Actor's results (a list of Facebook links found on websites, for example) can be fed straight in. Use this or the field above.
includeTransparencyAdd-on: also read each Page's transparency section: the date it was created, whether it is currently running ads, and its confirmed owner. One more request per Page, charged as its own event and only for Pages where it was read.
includeAboutAdd-on: also read each Page's full About description (the long text, not the short intro). One more request per Page, charged as its own event and only for Pages that have an About text.
The defaults are tuned for speed and cost. The Actor picks its own addresses (no proxy settings needed).
maxItemsStop after this many Pages in total. You pay per Page, so this is also your cost cap for the run.
maxConcurrencyHow many Pages are read at the same time.
requestTimeoutSecsHow long to wait for one response before trying another address.
maxRetriesExtra tries on the same address after a dropped connection. Refused addresses are always replaced by new ones, whatever this says.
API
Bytewells speaks the Apify API. Existing integrations keep working: point apify-client at https://bytewells.com/api and use your Bytewells API token (Console → Settings → API access). The Actor ID is amethyst/facebook-pages-scraper (or amethyst~facebook-pages-scraper in URLs).
JavaScript · apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.BYTEWELLS_TOKEN,
baseUrl: 'https://bytewells.com/api',
});
const input = {
"targets": [
"https://www.facebook.com/oysterbarny",
"https://www.facebook.com/nasaearth"
],
"includeTransparency": false,
"includeAbout": false,
"maxItems": 1000,
"maxConcurrency": 8,
"requestTimeoutSecs": 20,
"maxRetries": 1
};
const run = await client.actor('amethyst/facebook-pages-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Python · apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["BYTEWELLS_TOKEN"], api_url="https://bytewells.com/api")
run_input = {
"targets": [
"https://www.facebook.com/oysterbarny",
"https://www.facebook.com/nasaearth"
],
"includeTransparency": False,
"includeAbout": False,
"maxItems": 1000,
"maxConcurrency": 8,
"requestTimeoutSecs": 20,
"maxRetries": 1
}
run = client.actor("amethyst/facebook-pages-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)HTTP · curl
curl -X POST "https://bytewells.com/api/v2/acts/amethyst~facebook-pages-scraper/runs" \
-H "Authorization: Bearer $BYTEWELLS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"targets":["https://www.facebook.com/oysterbarny","https://www.facebook.com/nasaearth"],"includeTransparency":false,"includeAbout":false,"maxItems":1000,"maxConcurrency":8,"requestTimeoutSecs":20,"maxRetries":1}'Runs are billed as compute from your credit balance. Paid Actors need an active rental or trial; otherwise the API answers 402 rental-required.
Related
More Actors from the same publisher.

Facebook Posts Scraper - Pages, Profiles & Reactions
Eimantas V · @amethyst
Scrape posts from public Facebook Pages and profiles: text, date, reactions by type, comments, shares, video views and media. Date filters and new-post alerts.
Social mediaMarketingLead generation$19/mo7-day free trial
Instagram Profile Scraper - Followers, Posts & Emails
Eimantas V · @amethyst
Scrape Instagram profiles by username or URL: exact followers, following and posts, bio, links, emails and phones from bios, engagement rate, latest posts.
Social mediaLead generationMarketing$19/mo7-day free trial
Instagram Search Scraper - Users, Hashtags, Places
Eimantas V · @amethyst
Search Instagram by keyword without logging in: profiles with exact followers, hashtags with post counts, places with addresses, and popular reels.
Social mediaMarketingLead generation$19/mo7-day free trial
TikTok Creator & Profile Scraper
Eimantas V · @amethyst
Scrape TikTok creator profiles in bulk: exact followers, likes and video counts, verified and business flags, Shop seller status, bio links and bio emails.
Social mediaMarketingLead generation$19/mo7-day free trial
Facebook Ads Library Scraper - Meta Ads, All Countries
Eimantas V · @amethyst
Scrape the Facebook Ads Library in any country: ad copy, images, videos, landing pages, CTAs, run dates and advertiser Pages. No login, no token needed.
MarketingSocial mediaBusiness$29/mo7-day free trial
Google Search Results Scraper - SERP API
Eimantas V · @amethyst
Scrape Google search results by keyword: organic results with ranks, places, top stories, knowledge panel, related searches, News and Videos. Any country.
SEO toolsMarketingLead generation$19/mo7-day free trial