One API for the Meta, Google, TikTok and LinkedIn ad libraries
Search any of the four public ad libraries from your own software. Every ad comes back as the same JSON record, whichever platform it came from.
- No card
- Sandbox key straight away
- 100 credits a month free
- Empty results are free
Northwind Running Co
Trail shoes, half price this week
Grip that holds on wet rock. Free returns for 60 days.
- Shown
- 4 Aug 2026 to 18 Oct 2026
- Where
- Facebook, Instagram, Audience network, Messenger
meta_900000000000001In the libraryFour ad libraries, one API
Each library has its own endpoint, with the filters that library has. One account, one key and one monthly allowance of credits cover them all.
Meta Ad Library
Search the Meta Ad Library from your own software. Send a keyword or a Facebook page id and get up to 30 ads a page as JSON: text, media, dates and placements.
- Search by
- keyword, page id
- Filters
- country, active, format, placements, category, language, sort, exact, date_from, date_to
- A page
- Up to 30 ads
- Endpoint
- GET /v1/meta/ads
Google Ads Transparency Center
Search the Google Ads Transparency Center from your own software. Send an advertiser’s domain or Google advertiser id and get up to 100 ads a page as JSON.
- Search by
- domain, advertiser id
- Filters
- country, format, surface, political, date_from, date_to
- A page
- Up to 100 ads
- Endpoint
- GET /v1/google/ads
TikTok Commercial Content Library
Search TikTok’s Commercial Content Library from your own software. Send a keyword or an advertiser’s exact name and get up to 36 ads a page as JSON, with the video, dates and reach.
- Search by
- keyword, advertiser name
- Filters
- country, sort, date_from, date_to
- A page
- Up to 36 ads
- Endpoint
- GET /v1/tiktok/ads
LinkedIn Ad Library
Uses 2 creditsSearch the LinkedIn Ad Library from your own software. Send a company name, a LinkedIn company id or a keyword and get about 24 ads a page as JSON.
- Search by
- company, keyword, company id
- Filters
- countries, date_from, date_to
- A page
- Up to 24 ads
- Endpoint
- GET /v1/linkedin/ads
Search the sandbox now
Pick a platform, type a search and run it. The sandbox answers with sample ads from made-up advertisers, in the same JSON a live search returns. No account, and nothing goes to a platform.
The sandbox’s answer appears here: sample ads from made-up advertisers, in the shape a live search returns.
Build against the same sandbox
Sign up and your sandbox key is ready straight away. 100 live credits a month are free.
Why Public Ads API
An agent can sign itself up
POST /v1/agent/signup gives an AI agent a sandbox key at once, then a live key with 50 free credits a month. No person, email, card or wallet. Its person claims the keys later with one link.
One record from every platform
Meta, Google, TikTok and LinkedIn ads come back in the same shape: ISO dates, the same field names, null where a platform has nothing. Your code reads one Ad, whichever library it came from.
EU reach and targeting in one call
GET /v1/ads/{id} returns the ad with reach or impressions by country, targeting and who paid, where the library shows them. On Meta that includes EU reach by age and gender.
Nothing found costs nothing
An empty page, a block, a timeout and every sandbox call use no credits. Meta can answer a blocked request with an empty page, so we check an empty Meta answer is real before we send it.
The same Ad record from every platform
One JSON shape. ISO dates, arrays for lists, and null, never a missing key, for what a platform doesn’t have. Add include=raw for the platform’s own record.
id- What it holds
- Ours, unique across platforms: meta_…, google_AR…_CR…
platform, platform_ad_id- What it holds
- Which library, and its own id for the ad
advertiser- What it holds
- id, name, domain and its page in the library
status- What it holds
- active, inactive, or unknown where the library doesn’t say
first_shown, last_shown- What it holds
- ISO 8601 dates in UTC
format- What it holds
- text, image, video, carousel or dynamic
text- What it holds
- headline, body, description and cta; text_source says ocr when read off an image
media- What it holds
- Each image or video with its address, still and size. Links expire: keep copies
placements, regions- What it holds
- Where on the platform it ran, and the countries
metrics- What it holds
- impressions, reach and spend as ranges, or null
library_url, link_url- What it holds
- The ad in the library, and where it sends people
Call it from your code
A GET with your key in the Authorization header. The same request works with a sandbox key and a live one.
curl "https://api.publicadsapi.com/v1/meta/ads?q=running+shoes&country=GB&active=true" \ -H "authorization: Bearer $PADS_API_KEY"
Ask your AI about us, or hand it the build
It reads this page, then tells you if it fits, what it costs and what building it takes.
Where agents read from
- /llms.txtAn index of the docs, written for models
- /llms-full.txtEverything in one file
- /openapi.jsonOpenAPI 3.1, also at /.well-known/openapi.json
- /docs/quickstart.mdEvery page has a Markdown copy
Pricing
A credit is a page of ads or one ad, 2 on LinkedIn. Start free, pay when you search more. Searches that find nothing are never charged.
Free
$0
100 credits a month
Then $0.0025 a credit if you add a card
Starter
$19/month
8,000 credits a month
Then $0.0025 a credit
Growth
$49/month
25,000 credits a month
Then $0.0020 a credit
Enterprise
Custom
Your volume, your rate
Invoiced monthly
Questions developers ask
What is Public Ads API?
Public Ads API is an API for the public ad libraries of Meta, Google, TikTok and LinkedIn. You search one platform at a time, with that platform's own filters, and every ad comes back as the same JSON record: advertiser, text, media, dates, placements, regions and metrics.
Which ad libraries does it cover?
The Meta Ad Library (Facebook, Instagram, Messenger, Audience Network and Threads), the Google Ads Transparency Center (Search, YouTube, Shopping, Maps and Play), the TikTok Commercial Content Library and the LinkedIn Ad Library. Each has its own endpoint: GET /v1/meta/ads, /v1/google/ads, /v1/tiktok/ads and /v1/linkedin/ads.
What does a call cost?
A credit is one page of ads, or one ad with all its detail. A call uses 1 credit, or 2 on LinkedIn. The free plan has 100 credits a month with no card. Starter is $19 a month for 8,000 credits and Growth $49 for 25,000. Extra credits are $0.0025 each.
Do empty or blocked searches cost anything?
No. A page with no ads, a search the platform blocked, a timeout, any other error and every sandbox call use no credits. Meta sometimes answers a blocked request with an empty page, so we check an empty Meta answer is real before we send it.
Can an AI agent get a key without a person?
Yes. An agent calls POST /v1/agent/signup and gets a sandbox key at once, then POST /v1/agent/live-key for a live key with 50 free live credits a month. No email, card or wallet is needed. It also gets a claim link to hand to its person, who can keep the keys and upgrade.
What does one ad’s detail add?
GET /v1/ads/{id} returns the ad with every variant, each country it ran in, the targeting and who paid, where the platform shows them. For ads shown in the EU that includes reach or impressions by country, and on Meta reach by age and gender, all in one call.
Does it cover ads shown in the US?
Partly, because the libraries do. Meta shows US ads while they run, and keeps stopped ones only if they are political or issue ads. Google covers US ads with their dates but no impressions or targeting. TikTok’s library has no US ads. LinkedIn covers US ads without impressions or targeting.
How many ads come back in a call?
Up to 30 on Meta, 100 on Google, 36 on TikTok and about 24 on LinkedIn. Each page has next_cursor for the next one, which works only with the same parameters.
How long does a live call take?
A live call reads the platform as it runs, so it can take from a few seconds to about 40. Set a 60 second timeout. Sandbox keys answer at once.
Is there a sandbox?
Yes. Every account gets a sandbox key the moment it signs up. It returns sample ads from made-up advertisers in the same shape as live ones, and the queries empty, blocked, timeout and changed return those answers, so you can build your error handling first.
Run your first search today
Sign up with your email. Your sandbox key is waiting, and it searches every platform.