The Ad Library API (Meta & Co)
Stop doing competitor ad research by hand. Pull every ad your competitors run, across all 11 platforms, straight into your own scripts, agents, and client decks, with the performance signals and AI creative briefs Meta’s free API will never give you. One API key. Live in three steps.
Sections
What is the ad library API?
The AdLibrary API is a paid REST ad library API that returns the commercial ads brands run across every major platform: Facebook, Instagram, TikTok, YouTube, Google, LinkedIn, Twitter, Pinterest, Yahoo, Unity Ads, and AdMob. You authenticate with a single API key, search by keyword, brand, platform, country, or format, and get back ad creative, copy, engagement, impressions, a spend estimate, and a heat score.
It is the practical alternative to Meta's Ad Library API. Meta's API is free but read-only, Meta-only, and limited to political and social-issue ads. The AdLibrary API covers every commercial ad on every major network, adds performance signals and AI creative briefs, and is built for research and automation rather than transparency.
Why use the API instead of doing it by hand
Right now, competitor ad research looks like this: open a platform, search a brand, scroll, screenshot, paste into a doc, repeat for the next brand, the next platform, the next client. By the time the deck is done, the ads have changed.
Doing it by hand is fine for a one-off look. The moment research becomes recurring, it breaks down: it does not scale across eleven platforms and dozens of competitors, it cannot be scheduled to pull last night's new ads at 6am, and screenshots do not flow into an AI agent or a dashboard. JSON does.
With the API it looks like this instead:
| Doing it by hand | With the ad library API |
|---|---|
| One platform at a time | All 11 platforms in one call |
| Scroll, screenshot, copy-paste | Clean JSON straight into your stack |
| You guess what is working | Spend estimate, heat score, and runtime on every ad |
| Briefs written from scratch | A 1:1 creative brief generated from the winning ad |
| Stale the moment it is finished | Live data, on demand, on a schedule |
You are not paying for ad data. You are buying back the hours your team spends collecting it, and the angles they miss when they run out of time.
AdLibrary API vs Meta's Ad Library API
Meta's free Ad Library API is built for transparency, not research, so most commercial ad data is simply not in it. Here is the honest, complete side-by-side.
| Meta Ad Library API (free) | AdLibrary API (paid) | |
|---|---|---|
| Price | Free | Paid (Business plan) |
| Ad coverage | Political and social-issue ads worldwide; all ad types only for the UK and EU, last 12 months | Every commercial, brand, and product ad |
| Platforms | Meta only (Facebook, Instagram) | Facebook, Instagram, TikTok, YouTube, Google, LinkedIn, Twitter, Pinterest, Yahoo, Unity, AdMob |
| Ad creative | Yes | Image, video, carousel, and collection, with direct URLs |
| Ad copy | Limited | Title, body, caption, and call-to-action |
| Performance signals | Spend and impressions for political ads only | Spend estimate, heat score, impressions, and runtime on every ad |
| AI creative briefs | None | Full teardown plus a 1:1 AI replication brief |
| Winners detection | None | Portfolio-scored, with side-by-side winner vs loser deltas |
| Auth | App review and access token (expires every 60 days) | One adl_ API key |
| Built for | Public transparency | Competitive research and automation |
Here is the honest version: ours is not free, and Meta's is. But Meta's API only returns political and social-issue ads, only on Meta, after an app review. If political ads on Facebook are genuinely all you need, use theirs and save your money.
If your work depends on commercial ads, on any platform other than Meta, or outside the EU and UK, Meta's API does not return it. The AdLibrary API does, with the signals that show what is working and a way to act on it inside your own stack.
Your competitor research, in your own stack
The AdLibrary platform is where most people search ads. The API is for the teams who do not want to be stuck inside any platform at all.
It hands you the raw ad data so you can build your own thing on top of it:
- Wire ad research straight into your AI workflows. Pull live competitor ads into your own agents, scripts, and pipelines. Run your own prompts, your own analysis, your own scoring. The data is yours to move.
- Generate client briefs at scale. Agencies use the API to turn a competitor's ad activity into ready-to-send research and creative briefs, automatically, for every client on the roster.
- Find winning angles en masse, then rebuild them. Surface the hooks and offers that are actually working across an entire market, and feed them straight into your own creative production, with your own product and your own AI tools.
One API key. No platform lock-in. The same data the app runs on, in your pipeline instead of ours.
Every commercial ad, every major platform
Most ad library APIs hand you political ads, or one network. This one returns the ads brands actually run to sell, across every major platform, from one endpoint:
Facebook, Instagram, TikTok, YouTube, Google, LinkedIn, Twitter, Pinterest, Yahoo, Unity Ads, AdMob.
curl "https://adlibrary.com/api/search" \
-H "Authorization: Bearer adl_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"keyword": "protein powder",
"appType": "3",
"sortField": "-impression",
"daysBack": 30
}'
Filter the way a researcher actually works: by platform, placement, country (50+ codes), language (20+), creative type (image, video, carousel, collection), aspect ratio, video length, call-to-action, engagement ranges, e-commerce platform (Shopify, BigCommerce, Wix, and more), and a long tail of flags beyond that. One credit per search, and a failed search refunds the credit automatically.
Know which ads are actually performing
Every result comes back with the signals that separate a test from a scaled winner, so your workflow can sort and filter on real traction instead of guessing:
- Estimated ad spend. A spend estimate per ad, so you can see where the budget is going.
- Heat score. A 0 to 1000 trending score that captures how much momentum an ad has right now.
- Impressions and views. Reach signals on the creatives that are getting pushed.
- Runtime. How long an ad has been live, the most reliable tell that a creative is working, since the duds get killed in week one.
Sort by any of them. Pull the top-spending, highest-heat, longest-running ads in a niche in one call, and let your own scoring take it from there.
Turn a winning ad into a finished creative brief
Point the API at any ad and it runs a deep, end-to-end teardown of the creative, the kind of breakdown a senior strategist would spend an afternoon on, and returns it as structured data you can drop straight into a brief.
Every analysis digs into the ad itself:
- A full transcript of everything spoken and shown, scene by scene, timestamped.
- The strategic read: the product, the funnel stage, the awareness stage, who it is targeting, and the core message.
- The persuasion teardown: the hook and why it stops the scroll, the offer architecture, the proof stack, the exact psychological levers in play, and a verdict on what makes it convert, every point quoted from the ad.
Then it does the part nobody wants to do by hand: it writes the 1:1 replication brief to rebuild that ad with AI, tuned to the actual format it detected.
- Image ads: a complete generation prompt with subject, composition, color, text overlays, logo placement, style references, and a negative prompt.
- UGC video: a character spec, five hook variations, a clip-by-clip shoot script, and the full continuous dialogue.
- Cinematic and animated: a shot list with per-scene generation prompts, plus the music and voiceover direction.
curl "https://adlibrary.com/api/enrichment" \
-H "Authorization: Bearer adl_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "ad": { "ad_key": "...", "platform": "facebook", "video_url": "..." } }'
This is the loop the whole API is built for: find the angle, get the brief, rebuild it with your own AI and your own product. One credit per analysis, refunded if it fails.
Find the angle, get the brief, rebuild it
Run the whole loop on autopilot with one API key.
Find the ads a brand has actually scaled
Point Winners at any advertiser and it scores their entire ad portfolio to surface the creatives the brand has clearly committed budget to, not just every ad they have ever run.
Each winner comes back with the evidence, in plain language, ready for a brief:
- Why it qualified: "Runtime 89 days, top 10% of this advertiser", "12 sibling ads on the same landing page", "running across 3 platforms".
- How it beat its own siblings: "Outran 12 variants on the same landing page by 4.2x, 89 days versus 21 day median. Format: video, where the losers used image."
- Deduped to concepts, so a brand running one creative in eight variants is one row, not eight near-duplicates.
It is the "this is the concept to copy" answer, delivered as data your pipeline can act on.
Track a brand across every platform at once
Search a single brand name and the API resolves it across Meta, Google, and LinkedIn at once, then tells you when the platforms agree it is the same advertiser. That lookup is free.
Save a brand once and pull every recent ad it runs, on every platform, in one request. One brand is rarely one account (Nike alone is Nike, Nike Football, Nike Run Club, and more), so a saved advertiser holds all of its accounts and merges the ads, deduped, behind a single call.
Who uses the ad library API
Agencies
Stop billing hours for manual ad research. Pull every competitor's live ads for every client on the roster, on a schedule, and turn the raw data into ready-to-send research and creative briefs. One integration covers the whole book of business, and the data is fresh the day the deck goes out, not the week before.
Performance and growth marketers
Wire competitor ad data into the tools you already run. Feed live ads into your own scripts, dashboards, and AI agents to spot new angles, track which creatives competitors are scaling, and get alerted the moment a rival launches a new concept, without ever opening an ad library by hand.
Ecommerce and DTC brands
See exactly what is working in your category across every platform, then rebuild the winners with your own product and your own AI tools. Filter by Shopify, BigCommerce, or any major store platform to study the brands that share your stack.
Developers and ad-tech builders
Build competitive-intelligence features on top of one clean REST API instead of stitching together eleven platform integrations, each with its own auth, quotas, and quirks. A single adl_ key, predictable JSON, generous limits.
Get started in three steps
No app review, no OAuth dance, no sales call. If you are on the Business plan, you are one key away from live ad data.
- Create an API key. In your dashboard, generate a key (it starts with
adl_and is shown once). You can hold up to 10 keys per account. - Make your first call. Send a POST to
/api/searchwith your key in theAuthorizationheader and a keyword in the body. - Read the response. You get back a JSON array of ads plus your remaining credit balance. Sort, filter, and page from there.
curl "https://adlibrary.com/api/search" \
-H "Authorization: Bearer adl_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "keyword": "running shoes", "appType": "3", "sortField": "-impression" }'
Authentication
Authentication is a single bearer token. No app review, no identity verification, no OAuth flow, and no 60-day token expiry to babysit.
- On the Business plan, open your dashboard and create an API key. It starts with
adl_and is shown to you once, so store it somewhere safe. - Send it on every request in the
Authorizationheader. - That is it. The key does not expire on a timer the way Meta's access tokens do (60 days), and you can hold up to 10 keys to separate environments or clients.
curl "https://adlibrary.com/api/search" \
-H "Authorization: Bearer adl_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "keyword": "skincare", "appType": "3" }'
For comparison, Meta's Ad Library API requires you to confirm your identity and location (which can take days), register a developer app, and generate an access token that expires after 60 days unless you set up a refresh flow.
What the API returns
Every ad comes back as clean JSON, ready to drop into your pipeline:
{
"results": [
{
"ad_key": "fb_123456789",
"advertiser_name": "Acme Running",
"platform": "facebook",
"title": "The shoe that runs with you",
"body": "Lightweight. Responsive. Built for race day.",
"button_text": "Shop Now",
"ads_type": 2,
"impression": 1840000,
"heat": 812,
"like_count": 9420,
"share_count": 1180,
"first_seen": 1748390400,
"days_count": 89,
"geo": ["US", "GB", "DE"],
"preview_img_url": "https://...",
"video_url": "https://...",
"landing_page_url": "https://acme.example/run"
}
],
"total": 327,
"page": 1,
"_credits": { "used": 1, "remaining": 4999 }
}
heat is a 0 to 1000 momentum score, impression is reach, days_count is runtime, and geo is where the ad is running. Those four together tell you, at a glance, whether an ad is a quiet test or a scaled winner.
Search parameters
Every parameter is optional except appType. Combine them to build precise queries.
| Parameter | Type | Description |
|---|---|---|
appType | string | Vertical: 1 Gaming, 2 Apps, 3 E-commerce. Required. |
keyword | string | Brand, product, or ad-copy term to search. |
searchType | string | Where to match: 0 all text, 1 title, 4 body, 5 caption, 6 landing page. |
platform | string | facebook, instagram, tiktok, youtube, google, linkedin, twitter, pinterest, yahoo, unity_ads, admob. |
geo | string | Country code (50+ supported, e.g. US, GB, DE, FR). |
language | string | Language code (20+ supported). |
adsType | string | Format: 1 image, 2 video, 3 carousel, 4 collection. |
adsFormat | string | Aspect ratio: 1:1, 16:9, 9:16, 4:5, 4:3. |
daysBack | number | Window: 1, 3, 7, 14, 30, 60, 90, 180, 365. |
dateFrom / dateTo | string | Explicit YYYY-MM-DD range (overrides daysBack). |
callToAction | string | Filter by CTA goal (shopping, traffic, lead, and more). |
ecommercePlatform | string | Shopify, BigCommerce, Wix, Squarespace, Magento, and more. |
likeBegin / likeEnd | number | Engagement range filters (also share and comment). |
sortField | string | -impression, -heat_degree, -first_seen, -last_seen, -days, -correlation. |
page | number | Page number, starts at 1. |
pageSize | number | Results per page (default 60, max 100). |
Endpoints
Every endpoint shares the base URL https://adlibrary.com/api and the same Authorization: Bearer adl_... header.
| Endpoint | Method | Cost | Returns |
|---|---|---|---|
/api/search | POST | 1 credit | Ads matching your filters, with copy, creative, engagement, impressions, spend estimate, heat, runtime, geo, landing page |
/api/enrichment | POST | 1 credit | Full creative teardown plus a 1:1 AI replication brief |
/api/advertisers/search | GET | Free | Cross-platform brand match across Meta, Google, LinkedIn |
/api/advertisers/[id]/curate | POST | 1 / session | Every recent ad for a saved brand, all platforms |
/api/developer/keys | POST | Free | Create and manage API keys |
/api/credits | POST | Free | Current credit balance |
import requests
r = requests.post(
"https://adlibrary.com/api/search",
headers={"Authorization": "Bearer adl_your_api_key"},
json={"keyword": "running shoes", "appType": "3", "sortField": "-impression"},
)
data = r.json()
print(f"{data['total']} ads, {data['_credits']['remaining']} credits left")
Pagination, limits, and errors
Pagination. Pass page and pageSize (up to 100 per page). The response includes total, page, and pageSize so you always know where you are. Unlike Meta's API, where paging through 10,000 results at 25 per page burns 400 calls and blows past the hourly cap, you can page deep without rationing requests.
Rate limits. 10 requests per minute and 10,000 per day per key. A 429 response includes a Retry-After header so your client can back off cleanly. (Meta's standard apps get roughly 200 calls per hour, shared across search and pagination.)
Credits. One credit per search, one per AI creative brief. Advertiser search and the credit-balance check are free. A failed search refunds its credit automatically, so a 500 never costs you anything.
Error codes.
| Status | Meaning |
|---|---|
400 | A required parameter is missing or malformed. |
401 | Missing or invalid API key. |
402 | Not enough credits; the body includes how many were required and your balance. |
429 | Rate limit hit; retry after the Retry-After header. |
500 | Search failed on our side; the credit is auto-refunded. |
Best practices
- Search by vertical. Set
appTypeto the space you actually research (e-commerce, apps, or gaming) so results stay relevant and credits are not wasted on noise. - Sort by signal, not date.
-heat_degreeand-impressionsurface what is scaling;-dayssurfaces the long-runners that have proven themselves. - Schedule narrow, frequent pulls. A nightly job over your competitor list catches new creatives the day they launch, instead of one giant weekly sweep.
- Cache the ad_key. It is the stable identifier across calls, so dedupe and store on it.
- Enrich only the winners. Run the creative-brief endpoint on the ads that clear your heat or runtime threshold, not on everything, to keep credit spend tight.
- Keep keys scoped. Use separate API keys per client or environment so you can rotate one without disrupting the rest.
- Handle 429 gracefully. Honor the
Retry-Afterheader rather than hammering the endpoint.
You will not integrate it alone
API access is on the Business plan, and Business is not a "here are the docs, good luck" plan.
- Free integration help. Our team helps you wire the API into your stack, your workflows, and your AI tooling at no extra cost. Stuck on auth, pagination, or shaping the data for your pipeline? We will get on it with you.
- Your feature requests jump the queue. Business requests are prioritized, and that includes the API itself. Need a parameter, a field, or an endpoint that would make your workflow click? Ask. API features get built.
You are not buying a frozen product. You are buying an API with a team behind it that wants your integration to succeed.
Pricing
API access is on the Business plan. Want to see the data first? Start on Starter, run real searches, then upgrade to Business when you are ready to automate.
Starter
See exactly what data the API can pull.
.
- 50 credits / month
- All platforms
- AI ad enrichment
- Chrome extension
- API access
Business
The plan with API access.
.
- 1000+ credits / month
- All Pro features
- Full API access (trial available)
- Free API & integration help
- Prioritized feature requests
- Dedicated team seats
- Dedicated support
Every day without it, the angles keep slipping past
Your competitors are launching ads right now. Get an API key and pull every one of them, with the performance signals and the creative briefs, into your own stack. Live in three steps, on the Business plan, and failed calls always refund.
Frequently asked questions
What is the ad library API? The AdLibrary API is a paid REST ad library API that returns commercial ads across every major platform, including Facebook, Instagram, TikTok, YouTube, Google, and LinkedIn, from your own stack. It returns ad creative, copy, engagement, impressions, spend estimates, heat scores, full creative teardowns, and AI replication briefs.
Why use the API instead of the AdLibrary app? The API frees the data from any platform, yours or ours. You pull live competitor ads straight into your own AI workflows, agents, and scripts, generate client briefs at scale, and find winning angles en masse to rebuild with your own product. No lock-in.
Is the ad library API the same as Meta's Ad Library API? No. Meta's Ad Library API is free but limited to political and social-issue ads on Meta only, with app review and strict rate limits. The AdLibrary API covers all commercial ads across every major platform, adds performance signals and AI creative briefs, and uses a single API key.
Is the ad library API free? No. The API is a paid feature on the Business plan. Browsing the ad library on the site has a free tier, but programmatic API access, with API keys, is a paid product.
How does pricing work? Credit-based. One credit per search and one per AI creative brief; advertiser search is free. Plans include a monthly credit allowance and the Business plan can add more. Failed searches refund their credit.
Can the ad library API generate ad creative for me? It does the hard half. The API turns a real winning ad into a 1:1 replication brief, a ready-to-run prompt for AI image and video tools, so you generate the new creative with your own product.
Can I monitor competitor ads automatically? Yes. Schedule calls via cron, n8n, Zapier, or your own scripts to poll for new ads from specific brands or keywords, surface their winners, and alert your team when a competitor scales a new concept.
Which platforms does the ad library API cover? Eleven: Facebook, Instagram, TikTok, YouTube, Google, LinkedIn, Twitter, Pinterest, Yahoo, Unity Ads, and AdMob. All of them are searchable through one endpoint with a single API key.
How is this different from scraping the Facebook Ad Library? Scraping Meta is against their terms, breaks whenever they change their markup, and only ever gives you Meta. The AdLibrary API is a stable, supported REST API that returns clean JSON across all eleven platforms, with performance signals Meta does not expose.
Do I need an access token or app review like Meta? No. There is no app review, no identity verification, and no OAuth flow. You create an API key in your dashboard and send it as a bearer token. Meta requires identity verification, a developer app, and an access token that expires every 60 days.
What are the rate limits? 10 requests per minute and 10,000 per day per key. A 429 response includes a Retry-After header so your client can back off cleanly. You can hold up to 10 keys per account.
What data does each ad include? Ad creative (image or video URLs), title, body, caption, and call-to-action, advertiser name, platform, format, impressions, a spend estimate, a heat score, runtime, geo, and the landing-page URL.
Is there a free trial for the API? API access is on the Business plan, which offers a trial. You can also start on a lower plan to run real searches and see exactly what data comes back before committing to automation.
Do I get help integrating the API? Yes. Business plans include free integration and development help. Our team helps you wire the API into your stack, auth, pagination, and AI tooling at no extra cost, so you are never stuck building alone.
Can I request new API features? Yes. Business feature requests are prioritized, and that includes the API. If you need a parameter, field, or endpoint that would make your workflow click, ask us and it can get built.
What programming languages can I use? Any language that can make an HTTP request. The documentation includes cURL, JavaScript/Node.js, and Python examples, and the JSON responses work anywhere.