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.
From a competitor's page to their ad library in three steps.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
// 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 webhookPay 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.
The questions we get on the first call.
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.