META Ad Leads Extractor avatar

META Ad Leads Extractor

Pricing

from $3.50 / 1,000 leads

Go to Apify Store
META Ad Leads Extractor

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

Alexandre Manguis

Maintained by Community

Actor stats

3

Bookmarked

60

Total users

19

Monthly active users

3.4 hours

Issues response

15 days ago

Last modified

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

FieldExample
Facebook URLhttps://facebook.com/bmturkiyeclinic
Emailinfo@bmturkiye.com
Phone+905528006000
Websitehttps://bmturkiye.com
AddressCherni Vrah 47A, Sofia, Bulgaria, 1404
Instagram Usernamebmturkiyeclinic
Instagram Followers16537
Page NameBM Türkiye
CategoryHealth/Beauty
Facebook Likes1415
Facebook VerificationNOT_VERIFIED
CountryTR
Ad Creation Date2023-11-14
Ad Start Date2023-11-15
Keyworddental clinic

How it works

  1. Searches the Meta Ad Library (ads_archive) by keyword + country using your Meta access token
  2. Collects unique advertiser page IDs from the results
  3. For each page, scrapes the Facebook profile to extract email, phone, website and address from JSON-encoded page data
  4. Also enriches with Instagram data via the Facebook Ad Library typeahead API
  5. Optionally applies pageFilter post-processing (name / address)
  6. 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

ParameterTypeDescriptionDefault
keywordsstringComma-separated search terms (e.g. dentist, lawyer)dental clinic
countrystring2-letter ISO country codeFR
adStatusselectActive, Inactive, or AllActive
maxLeadsintegerMax leads to extract (1–1000)100
matchAllKeywordsbooleanAND logic: only pages matching ALL keywordsfalse
pageFilterobjectPost-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-fieldDescriptionExample
nameContainsKeep only pages whose Facebook name contains this string (case-insensitive)"formosa"
addressContainsKeep 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

CodeCountry
🇦🇪 AEUnited Arab Emirates
🇦🇷 ARArgentina
🇦🇹 ATAustria
🇦🇺 AUAustralia
🇧🇪 BEBelgium
🇧🇭 BHBahrain
🇧🇴 BOBolivia
🇧🇷 BRBrazil
🇧🇬 BGBulgaria
🇨🇦 CACanada
🇨🇭 CHSwitzerland
🇨🇮 CIIvory Coast
🇨🇱 CLChile
🇨🇲 CMCameroon
🇨🇴 COColombia
🇨🇷 CRCosta Rica
🇨🇿 CZCzech Republic
🇩🇪 DEGermany
🇩🇰 DKDenmark
🇩🇴 DODominican Republic
🇩🇿 DZAlgeria
🇪🇨 ECEcuador
🇪🇬 EGEgypt
🇪🇸 ESSpain
🇫🇮 FIFinland
🇫🇷 FRFrance
🇬🇧 GBUnited Kingdom
🇬🇭 GHGhana
🇬🇷 GRGreece
🇬🇹 GTGuatemala
🇭🇰 HKHong Kong
🇭🇳 HNHonduras
🇭🇷 HRCroatia
🇭🇺 HUHungary
🇮🇩 IDIndonesia
🇮🇪 IEIreland
🇮🇱 ILIsrael
🇮🇳 INIndia
🇮🇶 IQIraq
🇮🇹 ITItaly
🇯🇴 JOJordan
🇯🇵 JPJapan
🇰🇪 KEKenya
🇰🇷 KRSouth Korea
🇰🇼 KWKuwait
🇱🇧 LBLebanon
🇱🇺 LULuxembourg
🇲🇦 MAMorocco
🇲🇽 MXMexico
🇲🇾 MYMalaysia
🇳🇬 NGNigeria
🇳🇮 NINicaragua
🇳🇱 NLNetherlands
🇳🇴 NONorway
🇳🇿 NZNew Zealand
🇵🇦 PAPanama
🇵🇪 PEPeru
🇵🇭 PHPhilippines
🇵🇱 PLPoland
🇵🇹 PTPortugal
🇵🇾 PYParaguay
🇶🇦 QAQatar
🇷🇴 RORomania
🇸🇦 SASaudi Arabia
🇸🇪 SESweden
🇸🇬 SGSingapore
🇸🇮 SISlovenia
🇸🇰 SKSlovakia
🇸🇳 SNSenegal
🇸🇻 SVEl Salvador
🇹🇭 THThailand
🇹🇳 TNTunisia
🇹🇷 TRTurkey
🇹🇼 TWTaiwan
🇺🇦 UAUkraine
🇺🇾 UYUruguay
🇺🇸 USUnited States
🇻🇪 VEVenezuela
🇻🇳 VNVietnam
🇿🇦 ZASouth 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