Facebook Ads Scout
Live · reading the Ad Library right now

Every competitor ad,
decoded.

Paste a brand's Facebook page and pull its entire active ad library — primary text, headlines, CTAs, creative image and video URLs, run dates, variant counts, EU reach. Clean rows, not screenshots, in under a minute.

No subscription — pay in Ounie credits≈30 seconds per 1,000 adsCSV · JSON · webhook · MCP · x402
● Live scrape412 ads · 58s
$ curl /api/scrape
mode=page
targets=["facebook.com/nike"]
max_ads=500
skincare·fitness apps·meal kits·DTC apparel·supplements·real estate·SaaS tools·online courses·pet brands·home decor·fintech·travel·beauty devices·coffee·kids toys·solar·dental clinics·law firms·auto dealers·gyms·skincare·fitness apps·meal kits·DTC apparel·supplements·real estate·SaaS tools·online courses·pet brands·home decor·fintech·travel·beauty devices·coffee·kids toys·solar·dental clinics·law firms·auto dealers·gyms·
How it works

From a competitor's page to their ad library in three steps.

1

Pick your targets

Paste a competitor's Facebook page URL (facebook.com/nike) to pull every ad they're running, or paste an Ad Library search URL for keyword sweeps across advertisers. One job takes up to ten targets; page mode adds date-range, active-status, sort, and country filters.

2

We run the scrape

Job lands in a queue. We read Meta's public Ad Library — the transparency surface Meta itself publishes — so there's no login, no private data, no captcha headaches. Progress is live; close the tab and we'll webhook you when it's done.

3

Export anywhere

Download as CSV or JSON, fire a webhook into your warehouse, or hit the REST / MCP / x402 API. Creative image and video URLs are pre-resolved. The dataset is yours — no DRM, no usage cap on what you've already paid for.

What you get back

Twenty-plus fields per ad. Clean. Normalized. Queryable.

Every row is the same shape no matter what you searched for. The advertiser page comes back in one object; the creative — primary text, headline, CTA, link, image and video URLs — sits in another. Run dates, active status, publisher platforms, and the variant count (how many versions of that ad are being A/B-tested) arrive ready to sort and filter.

20+
Fields per ad
2k
Ads per job
≈30s
Per 1,000 ads
99.8%
Upstream success
Advertiser page + likes
Primary text + headline
CTA text + type
Creative image URLs
Video HD/SD URLs
Variant count per ad
Start / end dates
Active / inactive status
Publisher platforms
EU reach + demographics
Webhooks on job complete
Native MCP server
REST + x402 API
Use cases

From "what is this brand running?" to "this is our weekly creative feed."

One scraper, six workflows, one queryable dataset. Most teams start with a competitor teardown and end up running four of these at once.

Competitor teardown

Paste a rival's page, pull every ad they're running right now. Sort by variant count to see which concepts they're scaling and which they quietly killed. Re-run weekly and diff to catch new angles the day they launch.

sort by variant count

Creative swipe file

Build a living library of hooks, headlines, and CTAs from the best advertisers in your niche. Primary text and creative URLs come back as clean rows — feed them to an LLM and generate on-brand variations grounded in what's actually running.

hooks + CTAs as rows

DTC product research

Long-running ads are profitable ads. Filter to active ads that have run for 30+ days across a keyword sweep and you have a list of offers that demonstrably convert — before you spend a dollar testing your own.

filter by ad longevity

Agency pitch prep

Walk into the pitch with the prospect's entire ad presence — and their three biggest competitors' — as a clean deck appendix. Ad counts, platform mix, creative formats, and how long each campaign has been running.

prospect + rivals in one job

EU transparency audits

The ad-details add-on pulls EU total reach and age/gender audience per ad — the DSA transparency data Meta publishes for European delivery. Compliance teams and researchers get it as a column, not a screenshot.

EU reach as a column

Dataset operations

Bulk-load ad libraries into your warehouse. Webhook → Snowflake / BigQuery. The same job spec via REST or MCP, deduped and idempotent. Build creative-intelligence models or track share-of-voice over time.

webhook → warehouse
For developers & AI agents

REST, MCP, webhook, or pay-per-call x402.

Ounie accounts get a REST API with bearer-token auth and a native MCP server that drops into Cursor, Claude, ChatGPT, or the AI SDK — your assistant can pull a competitor's ads, poll the job, and export results without writing any glue. One-off scripts hit our x402 endpoint and pay per request in USDC.

MCPCursor · Claude · ChatGPT · AI SDK
RESTBearer token, webhooks, CSV/JSON
x402USDC on Base, no account
DashboardPoint-and-click UI
// One request. Async job.
const res = await fetch("https://facebook-ads.ounie.com/api/scrape", {
  method: "POST",
  headers: {
    "Authorization": "Bearer ${API_KEY}",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    mode: "page",
    targets: ["https://www.facebook.com/nike"],
    max_ads: 500,
    active_status: "active",
  }),
});

const { job_id } = await res.json();
// → poll /api/jobs/${job_id} or wait on the webhook
Pricing

Pay for ads. Not seats, not setup, not surprises.

One scraped ad costs 1 Ounie credit (+1 with EU-reach ad details) — the same wallet every Ounie product shares. You are only charged for ads actually returned; unused reserves refund automatically. AI agents can skip the account entirely and pay per call in USDC via x402.

FAQ

The questions we get on the first call.

We read Meta's public Ad Library — the transparency surface Meta itself publishes so anyone can see what ads a page is running. We don't log in, don't bypass authentication, and don't touch private data. Most jurisdictions and case law (hiQ v. LinkedIn, Meta v. Bright Data) treat scraping publicly accessible data as lawful. You are responsible for how you use the data (GDPR, CCPA, and Meta's own terms on republication still apply to you).

Sign in with Ounie, tear down a competitor in 90 seconds.

Pay for ads in credits, not seats. No subscription — keep every row you've already pulled.