X Ads Transparency Scraper: Twitter Ads Library
Pricing
from $0.06 / 1,000 ad saveds
X Ads Transparency Scraper: Twitter Ads Library
Scrape the X (Twitter) Ads Repository for ads served in Europe: advertiser handle, creative text (via oEmbed), targeting, impressions, reach, funding and dates. Optional only-new monitor for competitor tracking. No X login.
Pricing
from $0.06 / 1,000 ad saveds
Rating
0.0
(0)
Developer
Northloop Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Scrape the public X Ads Repository (Twitter ads transparency for Europe) by advertiser handle. For every ad you get the tweet URL, creative text (via public oEmbed), country, targeting, impressions, reach, funding type/currency, account name and approval status.
Track new competitor ads: turn on Only new ads, schedule the Actor, and each run saves only ads that were not seen before (state lives in a key-value store in your Apify account).
No X login and no developer app. Complements our Google Ads and Meta Ads scrapers.
Coverage note: X's repository is built for EU Digital Services Act transparency. It lists ads served in European markets. Empty results usually mean the advertiser had no EU-served ads in that date range — not that the tool is broken.
What you can use it for
- Competitor research: see which creatives and markets rivals are running on X in Europe.
- Compliance / transparency datasets: impressions, reach, funding and targeting as X discloses them.
- Brand monitoring: schedule daily runs and get only new ads for watched handles.
- Cross-platform ad intel: pair with Meta and Google Ads scrapers for the same brand.
How to scrape X Ads Repository ads
| Field | Description |
|---|---|
advertisers | Handles, @handles or https://x.com/... URLs (up to 50) |
marketPreset | eu27, dach, nordics, uk_ie, benelux, southern, eea or custom |
countries | Two-letter codes when preset is custom |
startDate / endDate | Inclusive delivery window (YYYY-MM-DD) |
maxResults | Hard cap on ads saved (and charged) |
onlyNew | Skip ads already in the monitor store |
monitorStoreName | KV store name (default x-ads-monitor) |
enrichCreatives | Resolve tweet text via oEmbed (default on, free) |
searchTerms | Optional keyword filter on creative / targeting |
minImpressions / minReach | Drop small campaigns |
useProxy | Off by default; enable only if you hit blocks |
Input example
{"advertisers": ["Apple", "SamsungMobile"],"marketPreset": "dach","startDate": "2026-01-01","maxResults": 50,"enrichCreatives": true}
Only-new watch:
{"advertisers": ["Nike"],"marketPreset": "eu27","startDate": "2026-01-01","onlyNew": true,"maxResults": 200}
Output example
{"adKey": "2012134234748760425|54125326|DE|4503599691193047","tweetId": "2012134234748760425","tweetUrl": "https://x.com/i/status/2012134234748760425","advertiserHandle": "Apple","advertiserName": "Apple","country": "DE","accountName": "APPLE EMEA MAL 2 - NEW","fundingType": "NonExclusiveIo","fundingCurrency": "EUR","approvalStatus": "Verified","creativeText": "Jetzt 3x mehr Schutz vor Kratzern mit dem Ceramic Shield 2.","targetingNames": ["Europe", "AgeOver18"],"impressions": 18635967,"reach": 1383216,"scrapedAt": "2026-10-24T16:00:00.000Z"}
X does not always keep the underlying tweet public. When oEmbed fails, metrics and targeting still save and enrichmentStatus explains why.
How much does it cost?
Pay per event (platform usage included; Apify takes its usual Store cut from the prices below):
| Event | Price | When |
|---|---|---|
| Actor start | $0.001 per GB of memory | Every run (default 256 MB → ~$0.00025) |
| Ad saved | $0.00008 ($0.08 / 1,000) | Each unique ad written. Duplicates and already-seen ads in only-new mode are free. Empty searches are free. |
Examples: 50 ads ≈ $0.004. 1,000 ads ≈ $0.08.
No session fee and no OCR fee. The repository works over a guest HTTP session. Creative text comes from X's public oEmbed — we do not OCR images.
Priced under the main Store rival (~$0.10 / 1k) while keeping a positive margin after Apify's cut.
Reliability notes
- X sometimes returns rate limits or temporary over-capacity. The Actor retries with backoff; raise
requestDelayMsif needed. - Empty results for a handle + market + date range are valid and uncharged.
- Repository data can lag live delivery. Coverage is limited to what X discloses for European markets.
Tips
- Start with
marketPreset: "dach"or a few countries, then widen toeu27. - Use
onlyNew+ an Apify schedule for competitor alerts. - Keep
enrichCreativeson for readable copy; turn it off only if you need the absolute minimum request count.
Use with AI agents, MCP, Make, Zapier, n8n and the API
AI agents and the Apify MCP server
https://mcp.apify.com?tools=northloop-labs/x-ads-transparency-scraper
API
curl -X POST "https://api.apify.com/v2/acts/northloop-labs~x-ads-transparency-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"advertisers": ["Apple"], "marketPreset": "dach", "startDate": "2026-01-01", "maxResults": 30}'
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("northloop-labs/x-ads-transparency-scraper").call(run_input={"advertisers": ["Apple"], "marketPreset": "dach", "startDate": "2026-01-01", "maxResults": 30})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Data & privacy
- The Actor reads only the public X Ads Repository and public oEmbed responses. It collects advertiser handles, disclosed account/funding fields, targeting labels, impressions, reach and creative text that X already publishes.
- It collects no personal data about people who saw or clicked ads beyond what X discloses in the repository.
- Results are written only to the run's default Apify dataset in your account. In only-new mode, seen ad keys are kept in a key-value store in your account (
monitorStoreName), which you can delete anytime. No external storage or webhooks.
Is it legal to scrape the X Ads Repository?
The Ads Repository is a public transparency tool required under the EU Digital Services Act. The Actor reads it the same way a browser does, at a moderate pace. Tweet creatives can be protected by copyright and trademarks — use them for research and analysis, not to republish as your own. This is not legal advice; check the rules that apply to your use.
FAQ
How much does it cost?
About $0.08 per 1,000 ads, plus a tiny Actor-start charge at 256 MB. Empty searches cost essentially nothing beyond start.
Why is there no session fee?
Unlike Meta, X's Ads Repository accepts a guest HTTP session without a residential browser warm-up for typical runs.
Does it need an X login or API key?
No.
Can I get US-only ads?
X's live repository is oriented to European delivery. US-only commercial ads are generally not listed here. For historical US political archives, other tools exist; this Actor targets current EU-served ads.
Can I watch one brand every day?
Yes: set advertisers, turn on onlyNew, save a task and schedule it.
How this Actor was made
This Actor was made with AI. An AI agent wrote and tested the code, this README and the store listing, and a human owns and maintains the Actor.
More Actors from Northloop Labs
- Meta Ads Library Scraper: Facebook & Instagram Ads: Meta Ads Library by keyword, Page or URL.
- Google Ads Transparency Center Scraper: a company's ads from the Google Ads Transparency Center.
- Luma, Eventbrite & Meetup Events Scraper: tech, AI and startup events from Luma, Eventbrite and Meetup.
- Greenhouse, Lever, Ashby & Workable Jobs Scraper: open jobs from company career pages.
- Podcast Transcriber for RSS & Apple Podcasts: podcast transcripts with timestamps and SRT subtitles.
- EU TED & UK Find a Tender Scraper: UK and EU public tenders with daily alerts.
- Google Trends Scraper: Keywords, Regions & Related Queries: bulk Google Trends with comparisons and rising-query alerts.
- YouTube Transcript Scraper: Captions, Subtitles & Text: YouTube transcripts with captions or Whisper, timestamps and SRT.
- Google Maps Leads Scraper: Emails, Phones & Socials: local business leads with emails, phones, socials and a lead score.
- Home Depot Scraper: Products, Prices, Stock & Reviews: Home Depot products, prices, store stock and reviews.
Feedback
Want LinkedIn or TikTok ad libraries, richer creative media URLs, or a filter that's missing? Open an issue in the Issues tab.