META Ad Leads Extractor
Pricing
from $3.50 / 1,000 leads
META Ad Leads Extractor
Extract enriched leads from Facebook Ad Library. Enter a keyword + country → get email, phone, website, adress, Instagram & more for every advertiser found. Powered by Leadsbrary.com. Pay only for results.
Pricing
from $3.50 / 1,000 leads
Rating
4.4
(2)
Developer
Alexandre Manguis
Maintained by CommunityActor stats
3
Bookmarked
60
Total users
19
Monthly active users
3.4 hours
Issues response
15 days ago
Last modified
Categories
Share
Facebook Ads Lead Extractor — Emails, Phones, Address & Contacts
Extract enriched business leads directly from Facebook's Ad Library using the Meta Graph API. Enter keywords and country — get a ready-to-use dataset with contact details for every advertiser found.
v1.1 — New features:
- 🔀 matchAllKeywords — AND logic: only pages whose ads contain ALL keywords (perfect for geo + niche targeting)
- 🔍 pageFilter.nameContains — post-filter by Facebook page name
- 📍 pageFilter.addressContains — post-filter by physical address (scraped from the profile page)
- 🏠 Address field — physical address extracted from each Facebook business page
Requires a Meta access token set as the META_ACCESS_TOKEN environment variable in actor settings.
What you get per lead
| Field | Example |
|---|---|
| Facebook URL | https://facebook.com/bmturkiyeclinic |
| info@bmturkiye.com | |
| Phone | +905528006000 |
| Website | https://bmturkiye.com |
| Address | Cherni Vrah 47A, Sofia, Bulgaria, 1404 |
| Instagram Username | bmturkiyeclinic |
| Instagram Followers | 16537 |
| Page Name | BM Türkiye |
| Category | Health/Beauty |
| Facebook Likes | 1415 |
| Facebook Verification | NOT_VERIFIED |
| Country | TR |
| Ad Creation Date | 2023-11-14 |
| Ad Start Date | 2023-11-15 |
| Keyword | dental clinic |
How it works
- Searches the Meta Ad Library (
ads_archive) by keyword + country using your Meta access token - Collects unique advertiser page IDs from the results
- For each page, scrapes the Facebook profile to extract email, phone, website and address from JSON-encoded page data
- Also enriches with Instagram data via the Facebook Ad Library typeahead API
- Optionally applies
pageFilterpost-processing (name / address) - Saves everything to a clean dataset (CSV / JSON / Excel / JSONL)
Setup
Set the META_ACCESS_TOKEN environment variable in the actor's Environment variables settings.
Input
| Parameter | Type | Description | Default |
|---|---|---|---|
| keywords | string | Comma-separated search terms (e.g. dentist, lawyer) | dental clinic |
| country | string | 2-letter ISO country code | FR |
| adStatus | select | Active, Inactive, or All | Active |
| maxLeads | integer | Max leads to extract (1–1000) | 100 |
| matchAllKeywords | boolean | AND logic: only pages matching ALL keywords | false |
| pageFilter | object | Post-processing filters: nameContains, addressContains | {} |
matchAllKeywords — AND logic
By default, keywords are searched independently (OR logic):
formosa, restaurant→ pages with "formosa" in their ads OR pages with "restaurant" globally
With matchAllKeywords: true, only pages appearing in all keyword searches are kept (AND logic):
formosa, restaurant→ only pages whose ads contain both "formosa" and "restaurant"
The actor fetches up to 5× maxLeads candidates per keyword then intersects the sets. This is the recommended setting for geo + niche targeting.
{"keywords": "formosa, restaurant","country": "ALL","adStatus": "ALL","maxLeads": 20,"matchAllKeywords": true}
pageFilter — Post-processing filters
Applied after the Meta API search, before scraping contact info:
| Sub-field | Description | Example |
|---|---|---|
nameContains | Keep only pages whose Facebook name contains this string (case-insensitive) | "formosa" |
addressContains | Keep only pages whose physical address contains this string (case-insensitive) | "sofia" or "bulgaria" |
{"keywords": "restaurant","country": "BG","adStatus": "ACTIVE","maxLeads": 20,"pageFilter": {"nameContains": "formosa","addressContains": "sofia"}}
Both filters can be combined with matchAllKeywords for maximum precision.
Available countries
| Code | Country |
|---|---|
| 🇦🇪 AE | United Arab Emirates |
| 🇦🇷 AR | Argentina |
| 🇦🇹 AT | Austria |
| 🇦🇺 AU | Australia |
| 🇧🇪 BE | Belgium |
| 🇧🇭 BH | Bahrain |
| 🇧🇴 BO | Bolivia |
| 🇧🇷 BR | Brazil |
| 🇧🇬 BG | Bulgaria |
| 🇨🇦 CA | Canada |
| 🇨🇭 CH | Switzerland |
| 🇨🇮 CI | Ivory Coast |
| 🇨🇱 CL | Chile |
| 🇨🇲 CM | Cameroon |
| 🇨🇴 CO | Colombia |
| 🇨🇷 CR | Costa Rica |
| 🇨🇿 CZ | Czech Republic |
| 🇩🇪 DE | Germany |
| 🇩🇰 DK | Denmark |
| 🇩🇴 DO | Dominican Republic |
| 🇩🇿 DZ | Algeria |
| 🇪🇨 EC | Ecuador |
| 🇪🇬 EG | Egypt |
| 🇪🇸 ES | Spain |
| 🇫🇮 FI | Finland |
| 🇫🇷 FR | France |
| 🇬🇧 GB | United Kingdom |
| 🇬🇭 GH | Ghana |
| 🇬🇷 GR | Greece |
| 🇬🇹 GT | Guatemala |
| 🇭🇰 HK | Hong Kong |
| 🇭🇳 HN | Honduras |
| 🇭🇷 HR | Croatia |
| 🇭🇺 HU | Hungary |
| 🇮🇩 ID | Indonesia |
| 🇮🇪 IE | Ireland |
| 🇮🇱 IL | Israel |
| 🇮🇳 IN | India |
| 🇮🇶 IQ | Iraq |
| 🇮🇹 IT | Italy |
| 🇯🇴 JO | Jordan |
| 🇯🇵 JP | Japan |
| 🇰🇪 KE | Kenya |
| 🇰🇷 KR | South Korea |
| 🇰🇼 KW | Kuwait |
| 🇱🇧 LB | Lebanon |
| 🇱🇺 LU | Luxembourg |
| 🇲🇦 MA | Morocco |
| 🇲🇽 MX | Mexico |
| 🇲🇾 MY | Malaysia |
| 🇳🇬 NG | Nigeria |
| 🇳🇮 NI | Nicaragua |
| 🇳🇱 NL | Netherlands |
| 🇳🇴 NO | Norway |
| 🇳🇿 NZ | New Zealand |
| 🇵🇦 PA | Panama |
| 🇵🇪 PE | Peru |
| 🇵🇭 PH | Philippines |
| 🇵🇱 PL | Poland |
| 🇵🇹 PT | Portugal |
| 🇵🇾 PY | Paraguay |
| 🇶🇦 QA | Qatar |
| 🇷🇴 RO | Romania |
| 🇸🇦 SA | Saudi Arabia |
| 🇸🇪 SE | Sweden |
| 🇸🇬 SG | Singapore |
| 🇸🇮 SI | Slovenia |
| 🇸🇰 SK | Slovakia |
| 🇸🇳 SN | Senegal |
| 🇸🇻 SV | El Salvador |
| 🇹🇭 TH | Thailand |
| 🇹🇳 TN | Tunisia |
| 🇹🇷 TR | Turkey |
| 🇹🇼 TW | Taiwan |
| 🇺🇦 UA | Ukraine |
| 🇺🇾 UY | Uruguay |
| 🇺🇸 US | United States |
| 🇻🇪 VE | Venezuela |
| 🇻🇳 VN | Vietnam |
| 🇿🇦 ZA | South Africa |
Your country is missing? Don't hesitate to request it by ../../issues or sending a private message — we'll add it promptly!
Sample output
[{"Facebook URL": "https://www.facebook.com/309686782231976","Email": "info@bmturkiye.com","Phone": "+905528006000","Website": "https://bmturkiye.com/","Address": "Bağcılar, Istanbul, Turkey, 34200","Followers": 1400,"Page ID": "309686782231976","Page Name": "BM Türkiye","Category": "Health/Beauty","Facebook Likes": 1415,"Facebook Verification": "NOT_VERIFIED","Country": "TR","Entity Type": "person_profile","Instagram Username": "bmturkiyeclinic","Instagram Followers": 16537,"Instagram Verified": null,"All Emails": "info@bmturkiye.com","All Phones": "+905528006000","All Websites": "https://bmturkiye.com/","Platforms": "facebook, instagram","Ad Creation Date": "2023-11-14","Ad Start Date": "2023-11-15","Keyword": "dental clinic","Captured At": "2026-04-01T10:22:41Z"}]
Tips for best results
- Use specific keywords for more targeted leads:
dental implants>dentist - Set Ad Status = Active to get advertisers currently spending money
- Enable matchAllKeywords when combining a niche keyword with a location/brand name (e.g.
formosa, restaurant) - Use pageFilter.addressContains to narrow to a city or region (e.g.
sofia,new york) - Use pageFilter.nameContains when the brand name should appear in the page title
- Export as CSV for direct CRM import
Keywords
Facebook ads leads, Meta ad library leads, Facebook advertiser emails, Facebook advertiser contacts, Meta ads email extractor, Facebook business leads, Meta ad library scraper, Facebook page email extractor, Instagram business contacts, Facebook ads prospecting, B2B leads Facebook, social media leads, advertiser contact info, Facebook marketing leads, Meta Graph API leads, Facebook page contacts, email scraper Facebook, phone number Facebook ads, website scraper Meta ads, lead generation Facebook, CRM import Facebook, sales leads Meta, Facebook ads intelligence, advertiser database, Facebook business directory, address scraper Facebook, business address extractor