Meta Ad Library Scraper — Facebook & Instagram Ads Intel avatar

Meta Ad Library Scraper — Facebook & Instagram Ads Intel

Pricing

$5.00 / 1,000 results

Go to Apify Store
Meta Ad Library Scraper — Facebook & Instagram Ads Intel

Meta Ad Library Scraper — Facebook & Instagram Ads Intel

$5/1K flat, no login, no API key. Scrape the Meta Ad Library by keyword, Facebook page URL or page ID: every Facebook & Instagram ad with creatives, copy, CTA, landing link, run dates, days active, platforms, plus spend and impressions for political ads. All countries. MCP-ready.

Pricing

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

Pika Choo

Pika Choo

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Meta Ad Library Scraper — Facebook & Instagram Ads, Creatives & Spend

Meta Ad Library Scraper: $5 per 1,000 ads, everything included, no login, no API key. Turn the Meta Ad Library (Facebook Ad Library) into clean, structured JSON. Search by keyword, Facebook page URL or page ID and get every ad a brand runs across Facebook, Instagram, Messenger, Audience Network and Threads, with the actual creatives, ad copy, call-to-action, landing page, run dates, days active and, for political and issue ads, spend and impression ranges. Covers every country, works with AI agents through MCP, and runs on a schedule or from the API.

Why this Facebook ads scraper

  • 💰 One flat price. $5/1K ads with creatives, copy, dates and spend data included. No actor-start fee, no tiers, no "detail" upcharge.
  • 🔓 No login, no cookies, no developer account. The official Meta Ad Library API needs identity verification by mail and only returns political ads. This Actor returns all ad categories with nothing to set up.
  • ⏱️ Days active per ad. Instantly separate a competitor's long-running winners from fresh tests.
  • 🖼️ Real creatives, not just IDs. Image URLs, video file URLs, every creative variation, headline, primary text, caption, CTA and landing link.
  • 🌍 Worldwide by default. Search all countries at once or pin one ISO country code.
  • Fast. Several result streams paginate in parallel on separate residential IPs: roughly 2,000 ads per minute per query.
  • 🛡️ Does not die mid-run. Every stream rotates its IP and retries automatically when the platform pushes back.

Who uses this

  • Performance marketers and paid-social agencies monitoring competitor Facebook and Instagram ads.
  • Creative strategists building swipe files of ads that have survived for months (high days_active).
  • E-commerce and DTC founders researching what hooks, offers and CTAs competitors run right now.
  • Sales and lead-generation teams screening prospect lists for "does this company run Meta ads?".
  • Journalists, researchers and compliance teams tracking political and issue ads with spend, impressions and paid-for-by disclaimers.
  • AI and data teams feeding structured ad data into models, dashboards and market research.

What you can do with it

ModeHowCost
Scrape every ad of a brandFacebook page URL or page ID in queries$5 per 1K ads
Find ads by topic or productkeyword in queries ("running shoes")$5 per 1K ads
A competitor's full ad historyactiveStatus: "ALL"same rate
Only video (or image) adsformats: ["VIDEO"]pay only for kept ads
Only Instagram adsplatforms: ["instagram"]pay only for kept ads
Political ads with spend & impressionsadType: "POLITICAL"same rate
One country's ads onlycountry: "DE"same rate

Input

{
"queries": ["https://www.facebook.com/nike", "running shoes", "15087023444"],
"country": "ALL",
"maxAdsPerQuery": 100,
"activeStatus": "ACTIVE",
"adType": "ALL",
"formats": [],
"platforms": [],
"exactPhrase": false
}
FieldTypeDefaultWhat it does
queriesarrayAny mix of keywords, Facebook page URLs (https://www.facebook.com/nike) or numeric page IDs. Type is detected automatically.
countrystringALL2-letter ISO country code (US, GB, DE, BR, IN) or ALL for every country.
maxAdsPerQueryinteger100Cap per query, 1–50,000. Ads come sorted by total impressions, highest first.
activeStatusstringACTIVEACTIVE, INACTIVE or ALL.
adTypestringALLALL, POLITICAL, HOUSING, EMPLOYMENT or CREDIT.
formatsarray[]Keep only IMAGE, VIDEO and/or TEXT ads.
platformsarray[]Keep only ads shown on facebook, instagram, messenger, audience_network and/or threads.
exactPhrasebooleanfalseMatch keyword queries as an exact phrase instead of all words in any order.
proxyConfigurationobjectresidentialApify proxy settings. Residential is recommended and prefilled.

What you get

One row per ad. Rows that are hints (no results, bad input) or errors are free.

FieldDescription
ad_id, ad_library_urlAd Library ID and a direct link to the ad.
page_id, page_name, page_url, page_likes, page_verifiedThe advertiser's Facebook page.
is_active, start_date, end_date, days_activeRun status and dates. end_date is null while the ad is live.
formatVIDEO, IMAGE or TEXT.
body, title, caption, description, link_url, cta_text, cta_typeCopy and call-to-action of the primary creative.
image_url, video_urlMedia of the primary creative.
creative_count, creativesEvery creative variation in full.
publisher_platforms, languagesWhere the ad ran.
impressions_low/high, spend_low/high, currency, reach_low/highRanges as the Ad Library reports them (political & issue ads).
funding_entity, disclaimer, bylines, beneficiary_payersPaid-for-by transparency data (political & issue ads).
age_gender_distribution, region_distribution, targeting, estimated_audience_*Audience data when the Ad Library exposes it.
source_query, country, scraped_atProvenance.

Sample JSON output

{
"item_type": "ad",
"ad_id": "968207286264322",
"ad_library_url": "https://www.facebook.com/ads/library/?id=968207286264322",
"page_id": "100281786832302",
"page_name": "Amazon India",
"page_url": "https://www.facebook.com/AmazonIN/",
"page_likes": 10508700,
"is_active": true,
"start_date": "2026-07-06",
"end_date": null,
"days_active": 62,
"format": "IMAGE",
"body": "Shop our selection of deals, best sellers, and interesting finds on Amazon!",
"title": "Red Chief Men's Sneaker | Low Ankle Athletic Shoe (C6020)",
"caption": "amazon.in",
"link_url": "https://www.amazon.in/dp/B0GMS79VSR",
"cta_text": "Shop Now",
"cta_type": "SHOP_NOW",
"image_url": "https://scontent.xx.fbcdn.net/v/t39.35426-6/739230755_....jpg",
"video_url": null,
"creative_count": 6,
"publisher_platforms": ["facebook"],
"source_query": "running shoes",
"country": "ALL",
"scraped_at": "2026-09-06T13:55:30Z"
}

Pricing: how much does it cost to scrape 1,000 Facebook ads?

$5. One event, result, at $0.005 per ad row. Creatives, every variation, dates, days active, platforms and any spend or audience data are included in that price. Hint and error rows are free. There is no start fee and no per-run minimum, so a 20-ad check costs 10 cents.

A typical competitor sweep (5 pages × 100 ads) costs $2.50 and finishes in well under a minute; a full 2,000-ad history costs $10 and takes about a minute.

Use cases

  • Competitor ad monitoring: schedule a daily run on your competitors' page URLs and diff ad_ids to catch new creatives the day they launch.
  • Winning-creative research: filter activeStatus: "ALL", sort by days_active and study what has been running for 6+ months.
  • Hook and offer mining: pull body, title and cta_text for a keyword and cluster the copy.
  • Lead qualification: run a list of prospect page URLs, rows with zero ads get a free hint row — a cheap "do they advertise on Meta?" signal.
  • Political ad transparency: adType: "POLITICAL" with spend, impression ranges and paid-for-by entities for a keyword or candidate page.

Use with AI agents and MCP

Add this Actor as a tool in Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server. Ask "show me Nike's active Instagram video ads" and the agent fills queries, platforms and formats for you. The output is flat JSON, so agents can reason over it without post-processing.

Integrations

Runs on a schedule, exports to CSV, Excel, JSON or XML, and connects to Google Sheets, Airtable, Slack, Zapier, Make, n8n and webhooks through the Apify platform. Call it from Python, JavaScript or plain HTTP with the Apify API.

FAQ

Do I need a Facebook account, cookies or a Meta developer key?

No. Nothing to log in, nothing to paste. Enter a keyword or page URL and run.

Does this replace the official Meta Ad Library API?

For most uses, yes. The official API requires developer-account identity verification by physical mail and only exposes political and issue ads in a limited set of countries. This Actor returns every category in every country with the full creative content.

Why are spend and impressions null on my rows?

Meta only publishes spend and impression ranges for political and issue ads. Commercial ads carry creatives, dates, platforms and days_active, but no spend. Use adType: "POLITICAL" to get rows with money data.

Why does the same brand appear under several page IDs?

Large brands run regional pages (Nike, Nike Football, Nike Running). A page URL resolves to exactly one page. Use a keyword query to catch all of them, then filter by page_id.

How many ads can I get, and how fast is it?

Up to 50,000 per query. The Actor paginates several streams in parallel on separate IPs, so a full 2,000-ad advertiser history lands in about a minute and 100 ads take a few seconds. Keep the residential proxy enabled (the default): the Ad Library returns empty results to datacenter IPs.

Can I export to CSV or Excel?

Yes. Every dataset can be downloaded as CSV, Excel, JSON or XML from the run page or the API.

Does it download the image and video files?

It returns direct CDN URLs for images and videos. Those links expire after a while, so fetch the files you want to keep soon after the run.

The Ad Library is a public transparency resource that Meta publishes so anyone can inspect ads. This Actor only reads that public data and stores no personal information beyond what the Ad Library shows. You are responsible for using the output in line with applicable law and platform terms.