Facebook Ads Library Scraper — Meta & Instagram Ads
Pricing
from $0.32 / 1,000 ads
Facebook Ads Library Scraper — Meta & Instagram Ads
Scrape the Facebook Ads Library (Meta Ad Library): every ad on Facebook, Instagram, Messenger, Threads and WhatsApp. Get ad text, images, HD videos, landing pages, run dates, advertiser pages, spend and EU reach. Search by keyword, page or Ad Library link. No login. $0.40 per 1,000 ads.
Pricing
from $0.32 / 1,000 ads
Rating
0.0
(0)
Developer
VeroAPIs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Facebook Ads Library Scraper: every Meta ad a brand or keyword runs
Scrape the Facebook Ads Library (Meta Ad Library) and see every ad running on Facebook, Instagram, Messenger, Threads, WhatsApp and Audience Network. Get each ad's text, images, HD videos, landing page, start date, platforms and advertiser as one clean dataset, ready for Excel, Google Sheets or your own app. No Facebook account, no Meta API token, and only $0.40 per 1,000 ads.
Why people choose it
- Search the way you think. Type a keyword (
running shoes), paste a Facebook page (https://www.facebook.com/nike), a page ID, an ad's Library ID, or any Ad Library link, including a link to a single ad. - Ad Library links just work. Set up a search on facebook.com/ads/library with every filter you like, paste the link, and get exactly those ads.
- Every creative, even dynamic ads. Full-size images and HD video links from every card of carousel, dynamic creative and catalog ads, plus each product's headline and link.
- Real headlines on catalog ads. Catalog and dynamic ads come with the product name and text the Ad Library shows, never a raw
{{product.name}}placeholder. - Reach, audience and political spend on demand. Switch on details to see how many people in the EU and UK saw each ad, by country, age and gender, who it targeted, who paid for it, and the advertiser's Instagram account. Political and issue ads add who they reached by age, gender and region, and how much the advertiser spends on them.
- All the filters of the Ad Library. Country, active or stopped ads, ad category, media type, platforms, dates, language, exact phrase and sorting.
- Political ad spend included. Spend, impressions and "paid for by" for ads about social issues, elections and politics.
- No duplicates, no empty rows. An ad that matches two of your searches is delivered, and charged, once.
- Low, fair pricing. $0.40 per 1,000 ads, and the run stops right at the spending limit you set.
Popular uses
- Competitor ad research: see every ad a rival runs on Facebook and Instagram, where, and for how long.
- Ad spy and creative inspiration: build a swipe file of long-running ads, the ones that keep paying off.
- Lead generation: find businesses that actively advertise in your niche and country, with their page, likes and website.
- E-commerce and dropshipping research: spot the products brands push in catalog and carousel ads, with product names and links.
- Agency pitches and audits: show a prospect their competitors' current ads in minutes.
- Political and social research: track spend, impressions and reach of issue and election ads.
- Brand monitoring: catch every new ad that mentions your brand or uses your name.
- AI and data projects: feed real ad copy and creatives into your models, dashboards or reports.
What you can search
| Add this | Example | What you get |
|---|---|---|
| A keyword or phrase | running shoes | Every ad that mentions it |
| A Facebook page link | https://www.facebook.com/nike | Every ad that page runs |
| A page ID | 15087023444 | Every ad that page runs |
| An ad's Library ID | 1702938977100376 | That single ad |
| An Ad Library search link | https://www.facebook.com/ads/library/?country=DE&q=adidas&media_type=video | Exactly the ads that link shows, filters included |
| A link to one ad | https://www.facebook.com/ads/library/?id=1702938977100376 | That single ad |
Mix as many as you like in one run.
Filters
| Filter | Choices |
|---|---|
| Country | Any country, or all countries at once |
| Status | Active ads, inactive ads, or both |
| Ad category | All ads, issues/elections/politics, housing, employment, credit, financial products |
| Media type | Images, memes, videos, images and memes, or no media |
| Platforms | Facebook, Instagram, Messenger, Audience Network, Threads, WhatsApp |
| Dates | Ads that ran on or after / on or before a date, or a span like 7 days |
| Language | Any two-letter language code, like en, es or de |
| Exact phrase | Match your words in this exact order, instead of all the words anywhere in the ad |
| Sort by | Most relevant, most impressions, or longest running |
How to use it
- Add your keywords, Facebook pages or Ad Library links.
- Optionally pick a country, status, media type, platforms or dates.
- Click Start.
- Browse the ads in the Output tab, or download them as JSON, CSV, Excel or HTML.
Input example
{"searches": ["running shoes", "https://www.facebook.com/nike"],"country": "US","activeStatus": "active","platforms": ["instagram"],"mediaType": "video","startDate": "30 days","sortBy": "longest_running","maxAdsPerSearch": 200,"includeDetails": false}
What you get
One row per ad:
{"search": "https://www.facebook.com/nike","adId": "1702938977100376","adUrl": "https://www.facebook.com/ads/library/?id=1702938977100376","pageId": "15087023444","pageName": "Nike","pageUrl": "https://facebook.com/nike","pageLikes": 39496914,"pageCategories": ["Sportswear", "Product/service"],"isActive": true,"startDate": "2025-04-07","endDate": "2026-10-24","daysActive": 566,"platforms": ["facebook", "instagram", "audience_network", "messenger"],"format": "dpa","text": "Bring sports more fully into your day with the Nike App.","title": "Nike Invincible 3 Women's Road Running Shoes","linkUrl": "http://itunes.apple.com/app/id1095459556","displayUrl": "itunes.apple.com","ctaText": "Install now","images": ["https://scontent.xx.fbcdn.net/v/t39.35426-6/431644642_n.jpg"],"videos": [],"cards": [{"title": "Nike Invincible 3 Women's Road Running Shoes","text": "Bring sports more fully into your day with the Nike App.","linkUrl": "https://www.nike.com/t/invincible-3-road-running-shoes-LL61DX/DR2660-001","displayUrl": "itunes.apple.com","ctaText": "Install Now","imageUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/431748186_n.jpg","videoUrl": null}],"variants": 1,"categories": [],"details": null}
| Field | What it tells you |
|---|---|
daysActive | How many days the ad has run. Long runners are usually the winners. |
images / videos | Every image and video in the ad, from every card, in full size and HD |
cards | Each card of a carousel, dynamic or catalog ad, with its own headline and product link |
linkUrl / displayUrl | The landing page and the website shown on the ad |
platforms | Where the ad runs: Facebook, Instagram, Messenger, Threads, WhatsApp, Audience Network |
variants | How many versions of the ad the advertiser runs |
spend / impressions / paidForBy | Budget, reach and sponsor of political and issue ads |
details | With details on: EU and UK reach by country, age and gender, the targeted audience, who paid, and the advertiser's Instagram. Political ads add their audience by age, gender and region, and the advertiser's political spend |
With details on, each ad shown in the EU or UK also carries:
"details": {"totalReach": 50171,"targetAgeMin": 21,"targetAgeMax": 65,"targetGender": "All","targetLocations": [{ "name": "Germany", "type": "countries", "excluded": false }],"reachByCountry": [{ "country": "DE", "ageRange": "25-34", "male": 1073, "female": 938, "unknown": 2 }],"audienceShareByAgeGender": [],"reachShareByRegion": [],"deliveryCountry": null,"pageSpend": null,"payers": [{ "payer": "Nike Europe B.V.", "beneficiary": "Nike Europe B.V." }],"pageVerification": "BLUE_VERIFIED","pageInstagramUsername": "nike","pageInstagramFollowers": 297000000,"pageAbout": "Just Do It."}
And a political or issue ad, searched in the United States, carries who it reached and what its advertiser spends:
"details": {"totalReach": null,"audienceShareByAgeGender": [{ "ageRange": "25-34", "male": 0.2, "female": 0.08, "unknown": 0 },{ "ageRange": "35-44", "male": 0.16, "female": 0.09, "unknown": 0 }],"reachShareByRegion": [{ "region": "California", "share": 0.12 }, { "region": "Texas", "share": 0.12 }],"deliveryCountry": "US","pageSpend": {"country": "US","lifetime": [{ "paidForBy": "Citizens for a Better Tomorrow", "amount": 48250 }],"weekly": [{ "paidForBy": "Citizens for a Better Tomorrow", "amount": 1200 }]}}
Shares are fractions of the people the ad reached (0.12 = 12%). pageSpend is the advertiser's total spend on political and issue ads in that country, in its currency, split by who paid for them; weekly is the latest week.
Export and integrations
- Download results as JSON, CSV, Excel, XML or HTML from the Output tab.
- Google Sheets, Make, Zapier, n8n, Airtable and Slack: send every new ad where your team works.
- Schedules: run it daily or weekly to track competitors' new ads automatically.
- Webhooks: get a call to your server the moment a run finishes.
Run it from your code
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('vero-api/facebook-ad-library-scraper').call({searches: ['running shoes', 'https://www.facebook.com/nike'],country: 'US',mediaType: 'video',maxAdsPerSearch: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((ad) => `${ad.pageName}: ${ad.adUrl}`));
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vero-api/facebook-ad-library-scraper").call(run_input={"searches": ["skincare"],"country": "GB","platforms": ["instagram"],"maxAdsPerSearch": 100,})for ad in client.dataset(run.default_dataset_id).iterate_items():print(ad["pageName"], ad["adUrl"])
Use it from your AI assistant (MCP)
Ask Claude, ChatGPT, Cursor, VS Code, or any assistant that supports MCP about a brand's ads in plain words. Add this server to its MCP settings:
{"mcpServers": {"facebook-ad-library-scraper": {"url": "https://mcp.apify.com?tools=vero-api/facebook-ad-library-scraper"}}}
Then just ask, for example:
- "Which video ads is Nike running on Instagram in the US right now?"
- "Find skincare brands advertising in Germany this week and show their longest-running ads."
- "Which election ads had the most impressions in the US this month, and who paid for them?"
Pricing
You pay only for the ads you get: no subscriptions, no surprises.
| What you get | Price |
|---|---|
| Ads | $0.40 per 1,000 ads |
| Ads with reach, audience and advertiser details | $0.70 per 1,000 ads |
Details are charged only when you switch them on. The run stops right at the spending limit you set, so you always know your maximum cost.
FAQ
Do I need a Facebook account or a Meta API token? No. Everything comes from the public Meta Ad Library, so there is nothing to sign up for and no identity check.
Is this a Facebook Ad Library API alternative? Yes. Meta's official Ad Library API covers political and issue ads plus ads shown in the EU, and needs a verified developer account. This scraper returns every ad in every country, with images and videos, from a simple form or one API call.
How do I get exactly the ads I see on the Ad Library site? Set up your search on facebook.com/ads/library, copy the link from your browser and paste it as a search. Every filter in the link is kept.
Can I scrape only Instagram ads? Yes. Pick Instagram under Platforms. You can combine any platforms you like.
Can I download the ad videos and images? Every row has direct links to the full-size images and HD and SD videos, plus each video's thumbnail. Download them soon after the run, since Meta's media links stay valid for a limited time.
How do I find all ads from one competitor? Paste their Facebook page link, like https://www.facebook.com/nike. The actor finds the page and returns every ad it runs. You can also use the page ID from any Ad Library link (view_all_page_id).
Can I look up one ad by the Library ID shown on the Ad Library? Yes. Paste the number, like 1702938977100376, and you get that ad, whatever filters the form has set. A link to the ad works the same way.
How many ads can I get? As many as the Ad Library shows. Set Max ads per search to the number you need. A run with 1,000 ads takes about two and a half minutes.
Why do some ads have reach and audience details and others don't? Meta publishes reach, audience and payer details for ads shown in the EU and the UK, and audience and spend details for political and issue ads. Turn on details with any search and you get them for every such ad it finds.
Why do political ads show spend and impressions? Meta publishes budgets and reach for ads about social issues, elections or politics. Pick Issues, elections or politics under Ad category to see only those. With details on, pick a country to also get the advertiser's total spend on these ads there.
Why do catalog ads show a product name as the headline? Catalog and dynamic ads are built from a product feed. The actor gives you the headline and text of the first product, exactly as the Ad Library displays the ad, and every product with its own headline, link and image in cards.
Can I track new ads over time? Yes. Set Ran on or after to a span like 7 days and create a schedule in Apify Console. Each run returns the ads that ran in the past week.
Which countries are covered? Every country in the Meta Ad Library. Pick one under Country, or leave All countries on.
Is this an official Meta or Facebook tool? No. This actor is not affiliated with, endorsed by or sponsored by Meta Platforms, Facebook or Instagram. It reads the public Meta Ad Library, the same ads anyone can see there.
More tools from us
- Google Ads Transparency Scraper: every ad a brand runs on Google Search, YouTube, Shopping, Maps and Play.
- Instagram Posts Scraper: caption, likes, comments and every photo and video behind any Instagram post or reel link.
- Instagram Reels & Posts Downloader: a direct MP4 download link for any Instagram reel or video post.
- Threads Scraper: posts, profiles, hashtag searches and replies from Meta's Threads.
- Website Screenshot Generator: capture the landing pages your competitors' ads send people to.