Facebook Page Profile Scraper — Contact Info, Transparency
Pricing
$8.00 / 1,000 page records
Facebook Page Profile Scraper — Contact Info, Transparency
Records of public Facebook Pages in bulk: name, category, verification, followers, phone, e-mail, website, address, open-now status, price range, rating and review count, social links, page transparency (created on, running ads, confirmed owner), optional contacts from the Page's website. No login.
Pricing
$8.00 / 1,000 page records
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Facebook Page Profile Scraper — Contact Info, Transparency 🚀
foXLabs Facebook series: Page Posts · Post Comments · Page Reviews · Page Videos · Page Events
🎉 Records of public Facebook Pages in bulk, exactly as Facebook shows them to a signed-out visitor — one row per Page with name, category, verification, followers, phone, e-mail, every website, address, open-now status, price range, recommendation rate and review count, social links, pictures, the Page transparency fields (created on, running ads now, who's responsible) and, optionally, e-mails and phone numbers from the Page's own website. No login, no cookies, no account of anyone. Built for contact lists and brand monitoring.
🔍 What is the Facebook Page Profile Scraper — and when should you use it?
Give this Actor a list of public Facebook Pages and it returns one clean firmographic row each — the contact section, the transparency tab and (optionally) contact details pulled from the Page's own website.
Use it when you need: B2B contact lists from Facebook Pages (phone, e-mail, website, address); brand monitoring (followers, verification, running-ads status); or who's behind a Page (transparency owner + creation date).
Use something else when: you need the Page's posts → Page Posts; its reviews → Reviews; its videos → Videos; its events → Events.
🤖 Use with AI agents
Already on the Apify MCP server? Ask for this Actor by name: foxlabs/facebook-page-profile-scraper. An agent can discover it, run it and read the dataset over MCP.
Real-time Standby API. This Actor ships a Standby endpoint so an agent can fetch a Page's record on demand — GET /page?page=NASA&transparency=1&website=0 returns the row immediately, billed with the same page event.
Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want public Facebook Page profiles & contacts using the Apify Actor`foxlabs/facebook-page-profile-scraper`.Input: `pages` is a list of Pages (name, @handle, numeric id or URL); `includeTransparency`adds the transparency tab; `enrichFromWebsite` pulls e-mails/phones from the Page's own site.Each row has name, category, phone, email, website(s), address, followers, isRunningAds.Start with:{ "pages": ["NASA", "themet"], "includeTransparency": true }Ask me which Pages to profile, run the Actor, then summarise them as a contact table.
The machine-readable API, MCP config and OpenAPI definition live at apify.com/foxlabs/facebook-page-profile-scraper.md.
📋 Overview
Everything you need to turn public Facebook Pages into clean firmographic + contact rows — in one Actor, with no login, cookies or account.
Why teams pick this Actor:
- ✅ Contact-ready — phone, e-mail, every website and address in one row.
- 🔎 Transparency — created-on date, running-ads status, the organisation Facebook names as responsible.
- 🌐 Website enrichment — optionally pull e-mails and phone numbers from the Page's own site.
- 🎯 Honest nulls — a value Facebook does not give is
null, never0/""for "unknown". - 💰 Pay only for results — one
pageevent per delivered row; status rows and unreadable Pages are free. - 🤖 Agent-ready — MCP + a real-time Standby API.
✨ Features
- 🔍 Full Page record — name, @username, category (all), verification, followers/following.
- 📞 Contact section — phone, e-mail, every website, address, open-now status, price range.
- ⭐ Reputation — recommendation rate and review count.
- 🔗 Social links — Instagram, X, YouTube, TikTok, LinkedIn, Threads, Pinterest.
- 🏛️ Transparency —
createdOn,isRunningAds,confirmedOwner. - 🌐 Website enrichment (optional) —
websiteEmails,websitePhones, with afound/unreachable/no-websitestatus.
🎬 Quick Start
curl -X POST "https://api.apify.com/v2/acts/foxlabs~facebook-page-profile-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"pages": ["NASA", "themet"], "includeTransparency": true}'
🚀 Getting Started (3 steps)
- Choose your Pages — one per line: name,
@handle, numeric id or URL. - Pick depth — keep
includeTransparencyon; turn onenrichFromWebsitefor site contacts. - Run and export — get a clean dataset as JSON, CSV or Excel.
📥 Input
| Field | Default | What it does |
|---|---|---|
pages | — | One Page per line: a name (NASA), @NASA, a numeric id, or a URL. A Page written twice is read once. |
includeTransparency | true | Reads the Page transparency tab too: createdOn, isRunningAds, confirmedOwner. |
enrichFromWebsite | false | Opens the Page's own website (home + contact/legal page) and adds the e-mails and phone numbers it publishes. |
proxyConfiguration | residential Apify Proxy | Nothing to change for normal use. |
📤 Output
One row per Page (type: "page"). A value Facebook does not give is null — never 0/"".
| Field | What it is |
|---|---|
name, username, url, pageId, userId | name, @username, URL and the two ids |
category, categories | the first category and all of them |
isVerified | the blue badge |
followersText/Approx, followingText/Approx | followers/following as text and as rounded numbers |
phone, email, website, websites, address | the contact section |
hoursStatus | "Open now" / "Closed now" |
priceRange | "$$" and the like |
ratingText, ratingPercent, reviewCount | recommendation rate and review count |
socialLinks | Instagram, X, YouTube, TikTok, LinkedIn, Threads, Pinterest |
createdOn, isRunningAds, confirmedOwner | the transparency tab |
profilePictureUrl, coverUrl | the pictures |
websiteEmails, websitePhones, websiteStatus | with enrichFromWebsite |
type, error | page, or status + error for a free row explaining an empty line |
{"type": "page","name": "NASA - National Aeronautics and Space Administration","url": "https://www.facebook.com/NASA","category": "Government organization","isVerified": true,"followersText": "28M followers","followersApprox": 28000000,"email": "public-inquiries@hq.nasa.gov","website": "http://www.nasa.gov/","websites": ["http://www.nasa.gov/", "https://www.nasa.gov/nasa-app/"],"createdOn": "2009-03-04","isRunningAds": false,"confirmedOwner": "NATIONAL AERONAUTICS AND SPACE ADMINISTRATION","input": "NASA"}
A business Page like The Met fills the other half: phone "+1 212-535-7710", address "1000 5th Ave, New York, NY 10028", hoursStatus "Open now", ratingPercent 100, reviewCount 119567.
💼 Use cases
1. B2B contact lists — turn a list of Facebook Pages into phone/e-mail/website/address rows.
Input: target Pages, enrichFromWebsite on. Output: contact fields per Page. Use: feed a CRM or outreach.
2. Brand & competitor monitoring — track followers, verification and whether a Page is running ads. Input: competitor Pages, scheduled weekly. Output: firmographic rows over time. Use: watch presence and ad activity.
3. Due diligence — who's behind a Page and when it was created.
Input: Pages, includeTransparency on. Output: confirmedOwner + createdOn. Use: verify a brand's provenance.
🔗 Integration
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('foxlabs/facebook-page-profile-scraper').call({pages: ['NASA', 'themet'], includeTransparency: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('foxlabs/facebook-page-profile-scraper').call(run_input={'pages': ['NASA', 'themet'], 'includeTransparency': True})for item in client.dataset(run.default_dataset_id).iterate_items():print(item)
Written for apify-client 3 for Python, where call() returns a run object; with version 1 or 2 it returns a dict — write run['defaultDatasetId'] there.
Automation (n8n / Zapier / Make): schedule or webhook → HTTP request to the Actor API with your pages → handle the JSON dataset → push to a sheet, CRM or dashboard.
📊 Pricing
Pay per event: page for every delivered Page row — whatever it carries. The price is on the Pricing tab. Nothing else is charged: no start fee, nothing for a status row, nothing for a Page that could not be read, nothing extra for the transparency tab or the website look-up.
❓ FAQ
Do I need a Facebook account, login or cookies? No. It reads only what Facebook shows a signed-out visitor on public Pages.
Where do the contacts come from? The Page's own contact section, plus (with enrichFromWebsite) the Page's website — never private data.
Can I get opening hours? Only "Open now"/"Closed now" — the weekly schedule is not on the visitor's page.
Can I export to CSV / Excel / JSON? Yes — directly from the Apify dataset.
What happens for a bad Page? You get a free status row saying why (not a Page, no such Page, signed-in only) — not charged.
🐛 Troubleshooting
- Few contact fields — big brands rarely publish a phone/e-mail/address on Facebook (measured: 6 of 20 did); the fields are returned only when present, never faked.
websiteStatus: unreachable— the Page's site answers 429 or blocks a plain request (metmuseum.org did); the row says so instead of pretending.- Wording varies by exit — "Government organization"/"organisation" and differently-formatted phones were both seen for one Page on different addresses.
- A Page returns a status row — it's a personal profile, group, or signed-in-only Page (free, not charged).
How it reads Facebook: opens the contact tab and the transparency tab as a signed-out visitor, reading the records they carry. Facebook serves public Pages to residential addresses only, so Apify Proxy residential is used by default; rate-limited exits are dropped and replaced. With enrichFromWebsite the Page's site is opened directly (no proxy), home + contact/legal page, 20 s each. Every run starts with a one-call check and ends with a clear message if Facebook's queries changed. A Page's tab HTML can be up to 14 MB, so the run uses 1 GB of memory.
⚠️ Trademark
Independent, third-party tool. Not affiliated with, endorsed by or connected to Meta Platforms, Inc. "Facebook" and related marks belong to their owners and are used here for identification only.
⚖️ Is it legal to scrape this data?
It reads only what Facebook shows a signed-out visitor, about Pages (businesses and organisations). Contact details are what the Page and its website publish for the public; personal data is protected by the GDPR and similar laws (and marketing law), so only collect and process it with a legitimate basis. The Actor does not log in, use anyone's account or cookies, or solve CAPTCHAs. See Apify's blog post on the legality of web scraping.
🤝 Support & contact
- 🌐 Website: data.foxlabs.com.tr
- 📧 Email: info@foxlabs.com.tr
- 🐛 Issues: open a ticket in the Actor's Issues tab — include the run id; the run's
SOURCE_REPORTrecord holds what was asked, what Facebook answered and why the run stopped. - 🧰 More clean data actors: Fox Labs on Apify
Changelog
0.1.3 — 2026-10-11 — the shared core of the family
- The shared core was updated with the Page Videos, Events and Reviews Actors; Page rows are unchanged.
0.1.2 — 2026-10-11 — 1 GB, two Pages at once
- Reads two Pages side by side and asks for 1 GB of memory (a tab's HTML is up to 14 MB); the compute share of a Page's cost stays well under a tenth of a cent.
0.1.1 — 2026-10-11 — memory on long lists, website clean-up
- Only the header and fields travel with a Page now (fixing out-of-memory on 20-Page runs); a Page naming its own Facebook address as its website gets no website from it; the same site named twice is one website.
0.1.0 — 2026-10-11 — first release
- One record per public Facebook Page: name, username, category (all), verification, followers/following, phone, e-mail, website(s), address, open-now, price range, recommendation rate and review count, social links, pictures, ids; the transparency tab (
includeTransparency); website contacts (enrichFromWebsite). Free status rows for lines that bring nothing; restarted runs continue without duplicates. Standby mode prepared; published in batch mode.