Facebook Page Contact Details — Email, Phone, Hours, No Login
Pricing
from $3.00 / 1,000 results
Facebook Page Contact Details — Email, Phone, Hours, No Login
Contact details for any public Facebook page, logged out: email, phone, address, website, Instagram and other social handles, open/closed status, price range, rating and review count, category and verified badge. One HTTP request per page, no cookies, no browser.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
2
Bookmarked
104
Total users
8
Monthly active users
a day ago
Last modified
Categories
Share
Facebook Page Contact Details Scraper
Email, phone, address, website, social handles, opening status, price range, rating and review count for any public Facebook page — plus exact likes, followers, verified badge and profile picture. Paste page URLs, names or ids. No login, no cookies, no browser.
Why Use This Scraper?
- It reads the About tab, not the intro card. Contact details live on
/about_contact_and_basic_info, and Facebook renders them there keyed by a stable field enum. Scrapers that read the page root or the intro widget return blanks for most of these fields; this one returns the address, hours status, price range and social handles that the leading alternative does not. - Exact likes, not rounded. The page head publishes
5,472 likes · 8 talking about this · 58 were hereto a logged-out client. That exact figure is returned alongside the rounded5.4K followerslabel. - Any way you write the page.
https://www.facebook.com/humansofnewyork,humansofnewyork,profile.php?id=61569673074519, the bare id61569673074519, anm.facebook.comlink, or a URL with/aboutor/reelson the end — all normalised, duplicates fetched and billed once. - Locale-proof. Extraction anchors on Facebook's internal field enum, not the visible labels, so a German or Croatian run (
languageinput) extracts the same fields as an English one. - Cheap on the wire. Each page is streamed and the connection cut the moment the contact section has arrived: about 100 KB per page instead of the 2 MB the full About tab weighs.
- A page that cannot be read says why.
not_found,login_wall,no_about_taborblocked— as a row, not charged, rather than a silently shorter dataset.
Overview
One row per page, 36 fields. Give it fifty pages and you get fifty rows, each carrying inputUrl so a batch stays attributable.
Supported Inputs
| Input | Example |
|---|---|
| Page URL | https://www.facebook.com/BlueSpringsSidingandWindows |
| Vanity name | humansofnewyork |
| Numeric id | 61569673074519 or https://www.facebook.com/profile.php?id=61569673074519 |
| Any host | m.facebook.com, facebook.com, www.facebook.com |
| Any tab | /about, /reels, /videos — stripped, the About tab is fetched regardless |
Use Cases
- Lead lists — pull email, phone and website for every business page a search or category scrape returned.
- CRM enrichment — one row per page with address, rating and verified badge, keyed on
pageId. - Local SEO audits — category, hours status, price range and review count across a set of competitors.
- Social graph — Instagram, TikTok and other handles a business lists on Facebook, with the URL built for each.
How It Works
Each input is normalised to the page's About tab URL. That page is fetched over a residential proxy as a stream and read only until the contact section has arrived — roughly the first 5% of the document. The page root's <head> is then fetched the same way, about 4 KB, for the profile picture. Every contact field is read from Facebook's own field_type enum, emails are decoded from the \u0040 form Facebook serves, and the website is taken from the clean destination rather than the l.facebook.com redirect wrapper.
No login and no cookies. Pure HTTP, no browser.
Input Configuration
| Field | Type | Default | Notes |
|---|---|---|---|
startUrls | array | required | Page URLs, vanity names or numeric ids. De-duplicated on the normalised page. |
maxItems | integer | — | Stop after this many pages. |
language | string | en-US | Accept-Language for the request. Extraction is locale-independent; this changes only free-text values Facebook localises, such as the category name. |
proxyConfiguration | object | — | Non-paying sample runs only. Paying runs always use a built-in residential proxy, because Facebook serves a login wall to datacenter IPs. |
Example input
{"startUrls": ["https://www.facebook.com/BlueSpringsSidingandWindows","humansofnewyork","61569673074519"]}
Output Overview
One flat row per page. A page that cannot be read yields { inputUrl, error, message } instead and is not charged.
Output Sample
A real row from a live run. The profile picture URL is abbreviated here; it arrives in full.
{"facebookUrl": "https://www.facebook.com/BlueSpringsSidingandWindows","pageUrl": "https://www.facebook.com/BlueSpringsSidingandWindows","pageName": "Blue Springs Siding & Windows","title": "Blue Springs Siding & Windows","pageId": "100063837091544","facebookId": "100063837091544","category": "Construction Company","categories": ["Construction Company"],"address": "2201 NW Jefferson Street, Blue Springs, MO, United States, 64015","addressUrl": "https://maps.google.com/maps?q=2201%20NW%20Jefferson%20Street%2C%20Blue%20Springs%2C%20MO%2C%20United%20States%2C%2064015","phone": "+1 816-439-8048","email": "info@bsswin.com","website": "https://bluespringssidingandwindows.com/","websites": [],"followers": "5.4K followers","rating": "82% recommend (76 reviews)","ratings": "82% recommend (76 reviews)","ratingOverall": 82,"ratingCount": 76,"business_hours": "Closed now","likes": 5472,"talkingAbout": 8,"wereHere": 58,"following": "41 following","intro": "Providing quality remodeling services to the Kansas City metropolitan area and surrounding locations!","profilePictureUrl": "https://scontent.fcrk3-4.fna.fbcdn.net/v/t39.30808-1/281412954_5968711679812581_1539915091538558437_n.jpg?…","isVerified": true,"ratingPercent": 82,"reviewCount": 76,"hoursStatus": "Closed now","priceRange": "$$$","socialLinks": [{"platform": "Instagram","handle": "bluespringssidingandwindows","url": "https://www.instagram.com/bluespringssidingandwindows"}],"instagram": "https://www.instagram.com/bluespringssidingandwindows","fieldsFound": ["category","address","profile_phone","profile_email","website","screenname","ratings","business_hours","business_price"],"inputUrl": "https://www.facebook.com/BlueSpringsSidingandWindows","scrapedAt": "2026-09-15T11:24:51.684Z"}
Key Output Fields
| Field | Notes |
|---|---|
email / phone / address / website | From the About tab's contact section. null where the page lists none. |
websites | Every external site the page links, clean destinations. |
socialLinks / instagram | Platform, handle and a built URL for each social handle the page lists. instagram is the Instagram URL alone, for convenience. |
hoursStatus | Open now / Closed now / Always open, as Facebook renders it. The per-day schedule is not served to a logged-out client and is not guessed. |
priceRange | $ to $$$$. |
rating / ratingPercent / reviewCount | 82% recommend (76 reviews) and its parsed parts. |
likes / talkingAbout / wereHere | Exact counts from the page head. |
followers / following | Facebook's rounded labels — 5.4K followers. |
category / categories | The page's category as Facebook names it in the request language. |
isVerified | The blue badge. |
intro | The page's own intro line. |
profilePictureUrl | Signed CDN link, valid for a few hours. |
pageId / facebookId | The numeric page id. |
fieldsFound | Which of Facebook's contact field types this page rendered — so an empty phone is distinguishable from a page that never listed one. |
error / message | Present only on a failure row: not_found, login_wall, no_about_tab, blocked, invalid_url. |
FAQ
Do I need a Facebook account or cookies? No. Every figure in this README came from logged-out requests with no cookies of any kind.
Why is phone null for a page I can see a number on?
Check fieldsFound. If profile_phone is absent, the page does not list a phone in its About section — the number you see is in a post or the intro text, which is not a structured field. If it is present and phone is still null, that is a bug; open an issue with the page URL.
Can I get opening hours by day?
Not logged out. Facebook renders only the current open/closed status server-side; the day-by-day schedule loads on click and is absent from the document a logged-out client receives. hoursStatus is what exists.
Why are likes exact but followers rounded? Because that is how Facebook publishes them. The page head carries the exact like count in its OpenGraph description; followers appear only as the rounded label.
What happens to a private or removed page?
You get one row with error and a message saying which, and you are not charged for it.
Am I charged twice if I list the same page twice?
No. humansofnewyork and https://www.facebook.com/humansofnewyork/about normalise to the same page and are fetched once.
Support
Open an issue on the Actor's Issues tab. Bug reports with a run id and the page URL get looked at first.
Explore More Scrapers
- Facebook Search Scraper — find pages by keyword and location, then feed them here
- Facebook Reels Scraper — every reel on a page with play counts
- Facebook Video Downloader — MP4s from reel and video URLs
- Facebook Comments Scraper — comment threads on any public post
🤖 For AI Agents & LLM Apps
Purpose: Return contact and profile details for public Facebook pages — email, phone, address, website, social handles, open/closed status, price range, rating, exact likes, verified badge, profile picture — from page URLs, names or ids.
Minimal tested input:
{ "startUrls": ["https://www.facebook.com/BlueSpringsSidingandWindows"] }
Output: array of flat objects, one per page. Fields: facebookUrl, pageUrl, pageName, title, pageId, facebookId, category, categories, address, addressUrl, phone, email, website, websites, followers, following, rating, ratings, ratingOverall, ratingCount, ratingPercent, reviewCount, business_hours, hoursStatus, priceRange, likes, talkingAbout, wereHere, intro, profilePictureUrl, isVerified, socialLinks, instagram, fieldsFound, inputUrl, scrapedAt.
Agent-relevant behaviour: a null contact field means the page does not list it — check fieldsFound to tell "not listed" from "not extracted". likes is exact; followers is Facebook's rounded label and should not be presented as exact. hoursStatus is the only hours information a logged-out client can obtain. A row carrying error is a page-level failure, not a page. profilePictureUrl expires within hours.
Billing: per delivered row. Failure rows are free.
⚠️ Disclaimer
This Actor reads only publicly available Facebook page information — no login, no cookies, no private content. You are responsible for using the output lawfully, including under the GDPR, the CCPA and Facebook's terms where they apply to you. Nothing here is legal advice.
SEO Keywords
facebook page contact scraper, facebook page email scraper, facebook business phone number, facebook page address scraper, facebook page details, facebook about scraper, facebook page info api, facebook page likes exact, facebook business contact details, facebook page social links, facebook page hours, facebook page rating scraper, facebook lead generation, facebook page scraper no login, apify facebook page contact info