Facebook Pages · Email, Phone & Website
Pricing
from $3.99 / 1,000 results
Facebook Pages · Email, Phone & Website
Paste public Facebook page URLs — email, phone, website, Instagram, category and bio in one row. Free plan: 20 pages / run. No login, no API key.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
39
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
Facebook Page Contacts · Email, Phone & Website
Paste public Facebook page URLs — get phone, email, website, Instagram and category in one CRM-ready row.
No login. No API key. No Facebook app.
Works on vanity URLs (facebook.com/cocacola) and numeric /pages/ links. One URL or a list. Free plan: 20 pages per run. Paid plans use your PPE budget.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| B2B / outbound | Contact list from Facebook business pages | Paste page URLs · export CSV |
| CRM / RevOps | Enrich existing accounts with phone and email | Bulk URLs · keep status |
| Agency | Client pages + competitor pages in one run | 10–200 URLs |
| Local services | Shops and venues that only publish Facebook | City page list |
| Events / sponsorship | Organiser phone and email from event pages | Event page URLs |
What you get by default: one row per page with name, phone, email, websites, social links, Instagram handle, address, category, bio, followers, page ID. Empty contact fields stay empty — status is ok, no_contact, or an error code.
Honest limit: only public intro-card data. If Facebook hides email behind login, you get no_contact, not a guess.
Quick start
- Open the Actor Input tab.
- Paste one Facebook page URL (prefill is a real public page).
- Click Start.
- Download JSON / CSV / Excel from the Dataset tab.
Standby lookup (HTTP)
Console Start is unchanged: paste page URLs, run, download the dataset.
Need one Facebook page (or a few) in n8n, Make, or your own app? Use the Standby tab hostname. Authenticate with Authorization: Bearer <APIFY_TOKEN> (or ?token=).
| Method | Path | Request | Response |
|---|---|---|---|
GET / POST | /lookup | pageUrl or pageUrls (max 5) | { items, count, failed, budgetExhausted, cap } |
GET | / | Header x-apify-container-server-readiness-probe | OK |
Hard cap: 5 pages per request. Bulk scrapes belong on Start. Same PPE as a dataset row. First byte timeout: 5 minutes.
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://<user>--facebook-page-contact-scraper.apify.actor/lookup?pageUrl=https://www.facebook.com/cocacola"
curl -H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"pageUrls":["https://www.facebook.com/cocacola","https://www.facebook.com/nike"]}' \"https://<user>--facebook-page-contact-scraper.apify.actor/lookup"
{ "items": [{ "pageName": "Coca-Cola", "website": "coca-cola.com", "category": "Food and drink", "status": "ok" }], "count": 1, "cap": 5 }
Standby memory 512 MB, idle 60 s (Console → Actor → Standby).
Ready-made examples (published tasks)
| Example | Best for |
|---|---|
| Extract contacts from Africa Eco Race page | Event / sponsorship outreach |
| Extract Coca-Cola Facebook page contacts | Brand page baseline |
| Extract Nike Facebook page contacts | Global brand page |
| Extract Airbnb Facebook page contacts | Travel brand |
| Extract IKEA Facebook page contacts | Retail chain |
| Extract Sephora Facebook page contacts | Beauty retail |
| Extract Decathlon Facebook page contacts | Sport retail |
| Extract Spotify Facebook page contacts | Media / streaming |
| Extract Booking.com Facebook page contacts | Travel marketplace |
| Extract McDonald's Facebook page contacts | QSR brand |
| Extract Lloyd & Davis Facebook contacts | SME / real-estate agency |
| Extract Staycation Paris Facebook contacts | Independent hotel brand |
What you get
| Category | Fields |
|---|---|
| Identity | pageName, pageId, pageUrl, category, bio, followers, profileImageUrl |
| Contact | phone, email, website, websites, address |
| Social | socialLinks, instagramHandle |
| Extra | priceRange (shops / restaurants), status, scrapedAt |
Posts, comments and DMs are not scraped.
Example output
{"pageName": "LLOYD & DAVIS","phone": "01 87 37 55 69","email": "contact@lloyd-davis.com","website": "lloyd-davis.com","websites": ["recrutement-lloyd-davis.com", "lloyd-davis-luxury.com", "lloyd-davis.com"],"socialLinks": ["https://www.instagram.com/lloyddavisluxury", "https://tiktok.com/@lloydanddavis", "https://www.linkedin.com/company/lloyd-davis/"],"instagramHandle": "lloyddavisluxury","category": "Real Estate Agent","bio": "Lloyd & Davis, réseau immobilier international, experts en résidentiel, luxe et en expatriation.","followers": 1996,"pageId": "100057626180863","pageUrl": "https://www.facebook.com/lloydanddavis/","status": "ok","scrapedAt": "2026-04-06T10:00:00.000Z"}
How to use
Accepted URL shapes:
https://www.facebook.com/africaecorace/https://www.facebook.com/cocacolahttps://www.facebook.com/pages/Some-Page/123456789
- Paste URLs in Page URL(s) (one per line).
- Click Start.
- Export from the Dataset tab.
Private profiles, groups and deactivated pages return an error status. Pages that only show contacts to logged-in users return no_contact.
How much does it cost to scrape Facebook page contacts?
Pay-per-event on Apify (see the Actor Pricing tab for live tiers). Typical shape: one charge per page row written to the dataset — on the order of ~$4 per 1,000 pages at list price, plus compute. Residential proxy (default on cloud) is billed per GB when used.
| Scenario | What you pay for |
|---|---|
| 1 page (Try) | 1 result event + a short run |
| 100 pages CRM enrich | ~100 result events |
| 1,000 pages bulk | ~1,000 result events |
Failed / empty-contact rows still occupy a dataset line (status) so you can filter; check Pricing if a given event is billed only on ok.
Is it legal to scrape Facebook page contacts?
This Actor only reads publicly visible intro-card fields — the same data anyone can see without an account. You are responsible for GDPR / e-privacy and Meta’s terms for your use case. Not affiliated with Meta.
Input (API / JSON only)
The Console form only asks for URLs. Default on Apify: residential proxy + up to 5 workers. Override via API / input.json:
| Key | Type | Default | Notes |
|---|---|---|---|
parallelWorkers | integer | 5 with proxy, 1 without | Cap 5 |
delayBetweenRequestsMs | integer | 4500 cloud / 2000 local | Pause after each page |
loginWallCooldownMs | integer | 18000 cloud / 10000 local | Extra wait after a login wall. 0 = off |
proxyConfiguration | object | residential on | { "useApifyProxy": false } for direct |
Also available
- Facebook Ads Library Scraper — public creatives and EU reach/spend when Meta discloses them.
- Social Handle Checker — username availability on Instagram, TikTok, X and more.
Local development
cd facebook-page-contact-scrapernpm installapify run --purge --input-file=./input.json
Use apify run (not npm start). Edit root input.json or pass --input-file. Example:
{"pageUrls": [{ "url": "https://www.facebook.com/cocacola" }]}
npm test runs unit tests (no network). Local storage/ is not synced to Apify Console.
Support
Questions or custom bulk runs: corentin@outreacher.fr.
Does Standby replace Start? No. Start = bulk dataset. Standby = small JSON lookup (max 5 pages). First HTTP byte timeout is 5 minutes.
Ready? Paste a page URL and click Start.
