An ad library API for Meta, Google and TikTok ads

SellWinners is an ad library API for Meta, Google and TikTok ads: one REST API and one MCP server, both behind a single key. It is not Meta's official API and is not affiliated with Meta. The Free plan includes the web app and the MCP server (150 credits a month), without the API.

Every search uses the same key, the same paging and the same error codes, and answers in JSON. Call it from a script or your own app, or let an AI agent call it through the MCP server.

Meta ads, Google ads and TikTok in one ad library API

Three ad datasets sit behind the key. Meta ads cover Facebook and Instagram, and you search them by words in the copy, the brand or the landing page. Google ads come as text, image and video ads, with a filter for the network they ran on, YouTube included. A video ad links to Google's Ads Transparency Center, where it plays. TikTok gives you ads and organic posts in one search, with their views, likes and shares.

Each ad points to the brand behind it: the advertiser page and, when there is one, the Shopify store linked to it. So you can go from an ad to the store, then to the store's traffic and best sellers, with the same key.

The ad endpoints you will use most. The docs list every parameter and field.
EndpointWhat it returns
GET /v1/adsMeta ads that match words in the copy, the brand or the landing page
POST /v1/ads/queryThe same search, with its filters in a JSON body
GET /v1/ads/{adId}One ad in full: creative, copy, transcript and hook, estimated spend, rank and linked shop
GET /v1/advertisers/{advertiser_id}/adsEvery Meta ad of one advertiser
GET /v1/mediaAd creatives as image and video URLs, ready to render
GET /v1/google-adsGoogle ads, by words or by brand
GET /v1/tiktok/libraryTikTok ads and organic posts
GET /v1/lookupThe ids behind a brand name, a domain or a Facebook page id

The full list is in the API documentation. If you would rather click than code, the same searches run in our ad spy tool.

Get an API key and send your first request

  1. Create an account, confirm your email and choose a paid plan: the API starts there.
  2. Open API keys in your dashboard and create a key. Copy it right away: it is shown only once.
  3. Send the key on every request, in the X-API-Key header or as a bearer token.

This request finds skincare video ads that are still running. It works on every paid plan:

# Search Meta ads
curl "https://api.sellwinners.com/v1/ads?search=skincare&status=active&mediaType=video&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /v1/ads Parameters and fields in the docs

The answer holds a requestId, the ads under data and a pagination object. In each ad, media has the thumbnail and video URLs, content the headline, text, call to action and landing page, and advertiser the page that runs it. metrics counts duplicates, and adds reach and estimated spend.

A Meta search returns one ad per brand, so one advertiser cannot fill the page. Raise maxAdsPerBrand (up to 15, or 0 for no cap) to see more of each.

Filter by name

Meta ads take 111 named filters, sent as query parameters on a GET or as body fields on a POST. Common ones are minDaysRunning, countries, cta and minDuplicates. A misspelled name gets a 400 validation_failed that lists the names the endpoint takes, so a typo never returns unfiltered ads.

# Search Meta ads with advanced filters
curl -X POST "https://api.sellwinners.com/v1/ads/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "skincare", "status": "active", "mediaType": "video", "countries": ["US"], "minDaysRunning": 30, "sortBy": "reach", "limit": 10}'

POST /v1/ads/query Parameters and fields in the docs

Reach means reach in the EU and the UK, and spend is always an estimate.

All the ads of one brand

Find the brand's advertiser id with GET /v1/lookup?q=allbirds.com&type=advertiser, then list its ads, the longest running first:

# Meta ads of one advertiser
curl "https://api.sellwinners.com/v1/advertisers/ADVERTISER_ID/ads?sortBy=longestRunning&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /v1/advertisers/{advertiser_id}/ads Parameters and fields in the docs

Our Meta ads library search page covers this view in the web app, along with the brand's format mix and landing pages.

Page through the results

Searches take limit (up to 100) and either page or offset. For the next page, repeat the request with page plus one, or offset plus limit. Stop when hasMore is false.

Paging reaches the first 5,000 results of a search (an advertiser search, its first 100). To go further, add filters or change the sort. Most research needs the top of a well filtered list, not page 200.

Rate limits and credits by plan

Limits per workspace on each paid plan today. The Free plan includes the web app and the MCP server (150 credits a month), without the API.
PlanCredits a monthRequests a minute
Starter5,00060
Pro15,000120
Business20,000300

1 credit = 1 result returned: one brand's details, one ad, or one row of a list. An empty result is free. Errors, refusals, lookups and filter values cost nothing, and an MCP tool call costs the results it returns, like the API. Everyone in a workspace, its keys, the API and the MCP server share one pool of credits and one rate limit. The monthly credits renew at 00:00 UTC on the 1st of each month; top-up credits bought on the billing page carry over.

Every answer carries X-RateLimit-Remaining and X-Credits-Remaining, and X-Usage-Cost says what the call cost, so your code can slow down before it is refused. Over the per-minute limit you get 429 rate_limited with a Retry-After in seconds. Once the monthly credits and any top-up credits are used up you get 402 insufficient_credits until the credits renew. GET /v1/usage shows where you stand and costs nothing. More in rate limits and credits.

Search ads from an AI agent with the MCP server

The MCP server gives an AI agent the same data as tools, over streamable HTTP, with your API key in the X-API-Key header. The page on our MCP server for AI agents has the server URL and ready configs for Cursor, VS Code and Claude Desktop.

For ad research the agent mostly calls search_ads, scan_ad to open one ad, search_google_ads_library, search_tiktok_library and search_advertisers. You ask in plain words: "Find skincare video ads still running in the US, open the three that have run longest and list their hooks." The agent turns that into filters and calls. Plan rules are the same as on the API.

How this differs from Meta's Ad Library API

SellWinners is not Meta's official API. It is an independent service and is not affiliated with Meta. Meta runs its own Ad Library API. On its Ad Library tools page ("Meta Ad Library tools" in its Transparency Center), Meta says the API "allows for a deeper analysis of ads about social issues, elections or politics, as well as ads that deliver to the EU and associated territories", and it speaks of "authorized users". We checked that page on October 19, 2026.

The two serve different work. Meta's API is run by Meta, under Meta's rules. SellWinners is built for e-commerce research:

  • One key for Meta, Google and TikTok ads, with the same paging, errors and limits.
  • Ads tied to the brand behind them: the advertiser page, and the Shopify store when there is one.
  • Filters that help you spot ads that keep running: days running, duplicates, call to action and ad rank.
  • An MCP server, so an AI agent can run the searches for you.
  • Reach for ads shown in the EU and the UK, and an estimated spend.

If your work is about political or issue ads, Meta's own API is made for that. If you want to see what e-commerce brands run on three networks, and which stores sit behind the ads, that is the job SellWinners does.

Where to go next

Start with one question, such as which skincare brands have kept the same video running for a month. Run it once with curl, then move it into your code. To go deeper on one platform, open the TikTok ads library, the Google ads library or the advertiser search. To follow one competitor, track a brand's ads over time. For the wider market, see how ad spy tools compare.

Search ads in Explore

FAQ

Common questions

Is this Meta's official Ad Library API?

No. SellWinners is an independent service and is not affiliated with Meta. Meta runs its own Ad Library API under its own rules. SellWinners has its own API keys, and one key also searches Google and TikTok ads.

Can I try the API for free?

The Free plan includes the web app and the MCP server (150 credits a month), without the API. The Free plan needs no card and gives you the same Meta ad data in the web app, with every filter, reach and spend, so you can check it before you pay. See the pricing page for the paid plans.

Does the API return reach and spend for Meta ads?

Yes. Reach covers ads shown in the EU and the UK, and spend is an estimate. TikTok results carry views, likes and shares instead, with no reach and no spend.

Which AI clients work with the MCP server?

Cursor, VS Code and Claude Desktop have ready configs on the MCP page. Other clients connect with the server URL, streamable HTTP and your API key. The server has 73 tools and shares your plan's credits with the REST API.

Can I show the ad creatives in my own app?

Yes. Image and video URLs in the answers are served from our own host. They need no API key and do not use credits, so you can put them straight into a web page. GET /v1/media returns the creatives alone, ready to render.

Start free, then upgrade when you need more

No card is needed. The Free plan includes the web app and the MCP server (150 credits a month), without the API. The API and the other datasets need a paid plan. Paid plans start at €39 a month.