Facebook Ads Library Search Scraper avatar

Facebook Ads Library Search Scraper

Pricing

from $130.00 / 1,000 ad returneds

Go to Apify Store
Facebook Ads Library Search Scraper

Facebook Ads Library Search Scraper

Search the Facebook Ads Library by keyword, brand, or page name. Returns full ad details — body text, CTA, images, videos, dates, status, platforms. Built for competitor research, ad spy, and marketing intelligence. Covers Facebook and Instagram ads. Pay only per ad returned.

Pricing

from $130.00 / 1,000 ad returneds

Rating

0.0

(0)

Developer

EndSpec

EndSpec

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Search Facebook Ads Library by keyword. Returns active and historical ads with full metadata — ad copy, images, video URLs, page details, run dates, call-to-action.

Fast. Reliable. Bulk-ready.


Simple Input-Output Example

Input:

{
"query": "nike",
"country": "US",
"maxResults": 30
}

Output (one dataset item per ad):

{
"query": "nike",
"country": "US",
"adArchiveId": "1869276447125570",
"pageName": "Nike",
"pageProfileUrl": "https://www.facebook.com/nike/",
"pageLikeCount": 39651940,
"isActive": true,
"startDate": "2025-12-15T00:00:00.000Z",
"endDate": "2026-05-16T00:00:00.000Z",
"bodyText": "Celebra tu cumpleaños con Nike y obtén acceso a productos exclusivos...",
"ctaText": "Install now",
"ctaType": "INSTALL_MOBILE_APP",
"linkUrl": "http://itunes.apple.com/app/id1095459556",
"publisherPlatforms": ["facebook", "instagram"],
"images": ["https://scontent-lga3-1.xx.fbcdn.net/.../image.jpg"],
"videos": []
}

Important Notes:

  • Returns both active and historical ads by default. Set activeOnly: true to filter.
  • Paginates automatically up to 1,500 ads per query (upstream API cap).
  • Multi-card ads return a cards array with per-card body, images, videos, and CTAs.
  • Both image and video ads are supported.
  • Returns success even if the query has no results.
  • If the upstream API rate-limits us, you will not be charged.
  • Contact for any issue / enquiry: contact@endspec.net

Full Actor Documentation

Facebook Ads Library Search Scraper

Search Meta's Ads Library by keyword and get back every active and historical ad matching your query. Ideal for competitive intelligence, ad-creative research, paid-media benchmarking, and brand monitoring.


Overview

The Facebook Ads Library Search Scraper is an Apify Actor that searches the public Meta Ads Library and returns structured data for every ad matching your query. You can search by brand name, keyword, page name, or topic.

What You Can Do

  • Search by Keyword — brand names, product names, topics, page names
  • Active or Historical Ads — toggle to filter only currently-running campaigns
  • Multi-Country — search any country jurisdiction (US, GB, DE, IN, BR, etc.)
  • Full Ad Metadata — body text, images, videos, CTA, link URLs, run dates
  • Multi-Card Ads Supported — returns per-card detail for carousel/album ads
  • Page Context — page name, profile URL, like count, categories

Data Availability

All data returned by this actor is publicly available information from Meta's Ads Library. This is data Meta provides to comply with political and commercial advertising transparency requirements. No private data, no logged-in-only fields.


Actor Input Parameters

The actor accepts the following input parameters:

query (required) • Type: string • Description: Search term. Brand name, keyword, page name, or topic. • Example: "nike", "electric vehicle", "weight loss"

country (optional) • Type: string • Default: "US" • Description: Two-letter country code for the Ads Library jurisdiction.

maxResults (optional) • Type: integer • Default: 30 • Range: 1–1500 • Description: Maximum number of ads to return. The actor paginates automatically. Upstream API caps at ~1,500 results per query.

activeOnly (optional) • Type: boolean • Default: false • Description: If true, only currently-running ads are returned. If false, both active and inactive historical ads are included.


Input Examples

Example 1: Brand Research

{ "query": "nike", "country": "US", "maxResults": 100 }

Example 2: Topic Research, Active Ads Only

{
"query": "electric vehicle charger",
"country": "US",
"maxResults": 200,
"activeOnly": true
}

Example 3: International Brand

{
"query": "adidas",
"country": "DE",
"maxResults": 500
}

Output Schema

Each ad is pushed as one dataset item. Field summary:

FieldTypeDescription
querystringThe search query that surfaced this ad
countrystringThe country jurisdiction searched
adArchiveIdstringMeta's archive ID for this ad
pageIdstringFacebook page ID
pageNamestringFacebook page name
pageProfileUrlstringURL of the page's profile
pageProfilePictureUrlstringURL of the page's profile picture
pageLikeCountintegerPage like count at scrape time
pageCategoriesarrayPage category labels
isActivebooleanWhether the ad is currently active
startDateISO 8601When the ad started running
endDateISO 8601When the ad ended (or expected to end)
daysActiveintegerNumber of days the ad has been live
bodyTextstringMain ad body text
ctaTextstringCall-to-action text (e.g. "Shop Now")
ctaTypestringCTA type identifier
displayFormatstringAd format (IMAGE, VIDEO, DPA, etc.)
linkUrlstringPrimary landing-page URL
linkDescriptionstringLanding-page description text
titlestringAd title
captionstringAd caption / domain text
imagesarray of URLsImage URLs across all cards
videosarray of URLsVideo URLs (HD preferred) across all cards
cardsarrayPer-card details: title, body, image, video, link, CTA
publisherPlatformsarrayWhere the ad ran (facebook, instagram, etc.)
categoriesarrayAd category labels
containsSensitiveContentbooleanSensitive-content flag
containsDigitalCreatedMediabooleanAI/digital-created media flag
gatedTypestringEligibility/gating status
currencystringAd spend currency (for political/issue ads)
spendobjectSpend range (for political/issue ads)
impressionsIndex / impressionsTextint/stringImpression range (when available)
reachEstimateobjectReach estimate (when available)
scrapedAtISO 8601When this row was extracted

Use Cases

Competitive Intelligence

  • Track what ads competitors are running right now
  • Identify ad creative trends in your industry
  • Benchmark ad cadence, formats, and CTAs

Ad-Creative Research

  • Find high-performing creative concepts before launching your own
  • Study CTA wording that converts
  • Identify which platforms (FB vs. Instagram) competitors prioritize

Brand Monitoring

  • Track unauthorized use of your brand in ads
  • Find lookalike/copycat brands targeting your customers
  • Monitor partner & affiliate compliance
  • Compare campaign duration patterns across competitors
  • Identify seasonal campaign cycles
  • Build databases of ads-by-vertical for agency research

Pricing

This actor uses pay-per-result pricing. You pay only for ads actually returned to your dataset — failed runs (rate limits, API errors) are not charged.


Support

For support and questions:

If you need related Meta data (Instagram ads, page details, ad-spend forecasting), reach out — we can build it.


Changelog

Version 1.0.0

  • Initial release
  • Search by keyword across any country jurisdiction
  • Automatic pagination up to 1,500 ads per query
  • Full ad + page + creative metadata
  • Multi-card carousel/album ads supported
  • Active-only filter