Outbrain Ads Scraper - Native Ads, Advertisers
Pricing
from $0.85 / 1,000 ads
Outbrain Ads Scraper - Native Ads, Advertisers
Scrape the native ads Outbrain runs right now in the Promoted stories boxes of 665 verified news sites in 43 countries, or any page URL. One row per distinct ad: headline, image, brand, advertiser, ad and campaign ids, landing address, IAB categories, EU payer. Watch mode bills only new ads.
Pricing
from $0.85 / 1,000 ads
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
an hour ago
Last modified
Categories
Share
Outbrain Ads Scraper - Native Ads, Advertisers
Outbrain ads scraper for the native ads running right now in the "Promoted stories", "From the web" and "Around the web" boxes of news and publisher sites. Pick countries, pick sites, or paste any article URL, and get one row per distinct ad: headline, image, brand, the Outbrain advertiser account and its id, the ad and campaign ids, the landing address as Outbrain states it, IAB categories and the EU payer and beneficiary. No login, no API key, no browser. Each distinct ad is charged once per run, and a watch mode charges only ads your earlier runs have not seen.
This is a live sampler of the sponsored content Outbrain serves today, per country and per site, built for affiliate marketers, media buyers and agencies who study competitor native ads. It is not an ad library: Outbrain publishes no archive, so there is no advertiser search and no history before your own runs (see "What this Actor does NOT do").
Quick start
- Open the Actor and keep the prefilled input (United States, the 3 best verified sites, 20 ads), or pick your countries.
- Optionally pick named sites from the built in list, or paste article URLs of any site that shows an Outbrain box.
- Click Start. A run of the prefilled input takes about 10 to 20 seconds.
- Read the Ads view (one row per ad) and the Coverage view (one row per site and country: calls, answers with and without ads, distinct ads).
- To track new native ads every day, give the run a memory name and schedule it: each later run delivers and charges only ads the memory has not seen.
What you get
Each ad row carries the fields below. Fill rates are measured on 987 distinct ads delivered by this Actor's own runs on 2026-10-09 (United States, United Kingdom, Germany and France exits).
| Field | What it is | Filled |
|---|---|---|
headline | Headline: the ad headline | 100 percent |
brandName | Brand shown in the box: the brand or source name shown next to it | 100 percent |
advertiserName | Outbrain advertiser account: the account that runs the ad (an e-mail address used as a name is hidden unless includePersonalData is on) | 100 percent |
advertiserId | Advertiser id: Outbrain's id of that account | 100 percent |
adId | Ad id: Outbrain's id of the ad | 100 percent |
campaignId | Campaign id: Outbrain's id of the campaign | 100 percent |
imageUrl | Image: the ad image as Outbrain serves it | 99 percent |
landingUrl | Landing address as stated: where the ad leads, as Outbrain states it (never visited) | 100 percent |
landingDomain | Landing domain: the host of the landing address | 95 percent |
iabCategories | IAB categories: content categories Outbrain gives the ad | 89 percent |
dsaPayer | EU payer (DSA): who paid, as disclosed under the EU Digital Services Act | 100 percent |
dsaBeneficiary | EU beneficiary (DSA): on whose behalf the ad runs | 100 percent |
dsaTargetingParameters | DSA targeting parameters: Outbrain's codes of the main targeting parameters | 100 percent |
creativeFormat | Creative format: the format Outbrain names, Standard or Clip | 89 percent |
language | Language: the ad's language | 94 percent |
callToAction | Call to action: the button text, such as Learn More | 52 percent |
description | Description: a second line of text | 32 percent |
advertiserDomain | Advertiser domain (programmatic ads): the advertiser's domain on ads bought programmatically | 11 percent |
Also on every ad row: landingUrlHasMacros (true on 83 percent: the address still holds tracking placeholders such as {{ob_click_id}} or {{publisher_name}}), landingUrlIsClickRedirect, isProgrammatic, personalDataMasked, the site, publisherName, pageUrl, widgetId and exitCountry it was seen on, its position in the box, seenAt, creativeId and adKey.
The run also writes free rows:
- coverage, one per site and country read: calls, answers with ads, answers without ads (Outbrain strips the ads from callers it does not trust, so an answer without ads is retried on a fresh exit and never read as "this site shows no ads"), distinct ads, ads delivered, ads already seen on another site in the run, ads your memory already knew, filler rows skipped, their keys, and why the site stopped (
dry,site_call_cap,blocked,filler_only,unknown_site,bad_widget,failed,stopped). - status, for a value that could not be used (an unknown site, a page URL that is not a URL), a country with no verified site, or the pairs a stopped run did not reach.
- summary, the last row: calls, ads seen and delivered, ads charged, the stop reason, proxy bytes and the work allowance.
Built in sites
665 publisher sites in 43 countries are built in, each verified live on 2026-10-09: three calls on three fresh residential exits in the country Outbrain lists for the publisher (which is not always the country of the domain: some international sites are listed under the country of their account), at least two of them answering with ads of a real campaign. Pick them by country (best ad yield first) or by name.
| Country | Sites | Sites, best ad yield first |
|---|---|---|
United States (US) | 122 | observer.com, tmspn.com, unbelievable-facts.com, airforcetimes.com, armytimes.com, theleadernews.com, genius.com, newsmax.com, hollywoodreporter.com, historynet.com, iheartdogs.com, watcher.guru, triviatoday.com, navytimes.com, boston.com, sportingnews.com, alternativenation.net, tiphero.com, adorablekittens.com, sportsnaut.com, deseretnews.com, horoscope.com, thedailybeast.com, dinarguru.com, marinecorpstimes.com, sciotocountydailynews.com, unitedwithisrael.org, worldisraelnews.com, centsports.com, mensjournal.com, countryrebel.com, airportia.com, dailycaller.com, fortune.com, interestingengineering.com, latimes.com, nypost.com, washingtonpost.com, sltrib.com, greekreporter.com, shorenewsnetwork.com, americajr.com, intpolicydigest.org, usatoday.com, nytimes.com, someecards.com, headlinereporter.com, politico.com, beliefnet.com, golfdigest.com, justthenews.com, reuters.com, 2paragraphs.com, bergamonews.it, cavaliersnation.com, chapelboro.com, chloesrecipes.com, compareproducts.ai, complex.com, cyberguy.com, dailynewsplanet.com, deepai.org, diariolasamericas.com, didyouknowfacts.com, diytom.com, electrek.co, excel-practice-online.com, frontpagenewspaper.com, gardenandgun.com, gedi.it, headlineplanet.com, historyhustle.com, hornsports.com, jokes4us.com, kaik.ai, krgv.com, krutit.co.il, longisland.com, marieclaire.be, mignews.net, nationalinterest.org, networknewslive.com, news.co.uk, ngcdigital.io, periodicocubano.online, pholder.com, pixnoy.com, politisonline.com, polybuzz.ai, popville.com, primecp.com, prismamedia.com, radiofrance.fr, ratemyteachers.com, ravennawebtv.it, reachplc.com, recipebite.com, ringsiderecap.com, roundmagazine.net, shicheng.news, slang.org, slantmagazine.com, sportnetwork.it, stereoeffect.net, tamedia.ch, the80sruled.com, thingsyoudidntknow.com, thoughtcatalog.com, tuttosulweb.it, unidadeditorial.es, uol.com.br, voria.gr, whiskeyriff.com, withinnigeria.com, wallpaperbat.com, agroweb.org, englishrussia.com, pijpermedia.nl, viprecipe.com, washingtontimes.com, wishtv.com, baltimorebaseball.com |
United Kingdom (GB) | 26 | euronews.com, deliciousmagazine.co.uk, skysports.com, goldradio.com, heart.co.uk, radiox.co.uk, smoothradio.com, capitalxtra.com, classicfm.com, capitalfm.com, gbnews.com, sardegnalive.net, sky.com, bromsgrovestandard.co.uk, bbc.com, newsquest.co.uk, telegraph.co.uk, theguardian.com, birkenhead.news, boxrox.com, ibtimes.co.uk, kelsey.co.uk, thebigredguide.com, modelrailwaylayoutsplans.com, arsenalnews.co.uk, superluchas.com |
Germany (DE) | 91 | vipflash.de, n-tv.de, weltderwunder.de, nordsee-zeitung.de, come-on-fc.com, pz-news.de, familieelternundkind.de, om-online.de, photografix-magazin.de, jux.news, kinzig.news, n-land.de, sol.de, fussballdaten.de, aerzte.de, donau-ries-aktuell.de, rp-online.de, t3n.de, wrestling-infos.de, frag-mutti.de, supertipp-online.de, gutefrage.net, heilpraxisnet.de, rheinpfalz.de, wz.de, heise.de, inside-digital.de, transfermarkt.de, utopia.de, bedeutungonline.de, eatsmarter.de, happy-woman.com, sge4ever.de, supermarkt-inside.de, btc-echo.de, prisma.de, stimme.de, zeit.de, nordkurier.de, segelreporter.com, upday.com, vamosmisevillafc.com, xoyondo.com, wochenblatt.net, golem.de, ruhr24.de, schwaebische.de, badische-zeitung.de, manonamission.de, nwzonline.de, weser-kurier.de, weather.com, gratis-in-berlin.de, katholische-sonntagszeitung.de, noz.de, rtl2.de, spiegel.de, apollo-news.net, berlinomagazine.com, burda-forward.de, chefkoch.de, die-tagespost.de, disclose.tv, dk-online.de, echtemamas.de, einfach-sparen.org, eishockey-magazin.de, eu-schwerbehinderung.eu, frankfurt-tipp.de, gartentipps.com, gevestor.de, hl-live.de, kirche-und-leben.de, kreiszeitung-wochenblatt.de, microsoft.com, mittelbayerische.de, nintendo-connect.de, parcello.org, parents.at, parkerlebnis.de, playcentral.de, pnp.de, promipool.de, rnd.de, shz.de, vodafone.de, wetteronline.de, ausliebezumhaustier.de, maikikii.de, preisvergleich-pilot.de, donaukurier.de |
France (FR) | 50 | journaldemillau.fr, france24.com, latribune.fr, pratique.fr, 20minutes.fr, programme-television.org, lefigaro.fr, laprovence.com, lopinion.fr, magazine-avantages.fr, magicmaman.com, planetoscope.com, confidentielles.com, consoglobe.com, cosmopolitan.fr, larvf.com, les-reponses.fr, marieclaire.fr, meteofrance.com, motorlegend.com, causeur.fr, lemonde.fr, rfi.fr, lachainemeteo.com, allodocteurs.fr, nicematin.com, lebonbon.fr, tsa-algerie.com, diverto.tv, cookomix.com, dailygeekshow.com, deco-cool.com, geny.com, groupem6.fr, happyfacts.co, ici.fr, jardin-secrets.com, lapauseinfo.fr, lyoncapitale.fr, metalzone.fr, meteo.bzh, meteoconsult.fr, modele-texte.fr, petitfute.com, pointdevue.fr, tennislegend.fr, woopets.fr, gamepressure.com, antennereunion.fr, liberation.fr |
Italy (IT) | 73 | ansa.it, laleggepertutti.it, tiscali.it, ubitennis.com, associatedmedias.com, cucchiaio.it, digitalbloom.it, magellanotech.it, bigodino.it, lagazzettadelmezzogiorno.it, ladige.it, rivistaundici.com, ternananews.it, ilmeteo.it, cronachedellacampania.it, ecodellojonio.it, milannews.it, montagna.tv, sky.it, viveregioiatauro.it, messaggeroveneto.it, transfermarkt.it, tecnicadellascuola.it, camperonline.it, fattoincasadabenedetta.it, gazzettadireggio.it, iltirreno.it, lanuovasardegna.it, nonsprecare.it, rivistastudio.com, sportando.basketball, linkiesta.it, oasport.it, ilsecoloxix.it, gazzettadimodena.it, unionesarda.it, automoto.it, fantamaster.it, gazzettadiparma.it, hwupgrade.it, lanuovaferrara.it, livesicilia.it, moto.it, patentati.it, pisticci.com, rossanocalabro.it, teleborsa.it, unarosaincucina.it, thesocialpost.it, gds.it, 3bmeteo.com, bakeca.it, calabriachannel.it, cercoiltuovolto.it, comestarbene.com, corrieredellosport.it, ilgiallorosso.info, inmeteo.net, lanuovacalabria.it, laziochannel.it, oroscopodioggiedomani.it, oroscopodiregina.it, ottopagine.it, piantechepassione.it, salutelab.it, stabianews.it, storiachepassione.it, universoanimali.it, viveregreen.com, corriereditaranto.it, dueruote.it, superguidatv.it, interscroller.com |
Spain (ES) | 33 | libertaddigital.com, infolibre.es, negocios.com, xatakandroid.com, elespanol.com, eleconomista.es, cabroworld.com, eldebate.com, hola.com, lavozdealmeria.com, publico.es, revistalove.es, elconfidencial.com, theobjective.com, elidealgallego.com, 7tvregiondemurcia.es, okdiario.com, lanzadigital.com, astroaventura.net, avilared.com, avpasion.com, cancioneros.com, cinconoticias.com, cope.es, eldigitalsur.com, elhoroscopodelzodiaco.com, elmundo.es, ipmark.com, larazon.es, sorianoticias.com, vemostv.com, lavozdegalicia.es, mibebeyyo.com |
Netherlands (NL) | 20 | voetbal4u.com, soccernews.nl, hoekschnieuws.nl, playboy.nl, gpfans.com, nltimes.nl, nieuwspaal.nl, entertainment-today.be, comprobarbonoloto.es, gimmemore.com, twenteinsite.nl, blikopnieuws.nl, leerwiki.nl, telegraaf.nl, persbericht.nu, royalty-online.nl, socialnieuws.nl, weekend-online.nl, woon-ideetjes.nl, vriendin.nl |
India (IN) | 8 | dailycivil.com, hindulive.com, sangbadworld.com, travelandtourworld.com, ankernews.com, newsncr.com, one50am.com, digit.in |
Australia (AU) | 7 | nine.com.au, seniorsdiscountclub.com.au, yourlifechoices.com.au, crowdink.com, leagueunlimited.com, whosdatedwho.com, techotales.com |
Canada (CA) | 4 | audiokarma.org, todayville.com, bayshorebroadcasting.ca, algerie360.com |
Albania (AL) | 4 | habermil.com, viralstrange.com, panorama.com.al, motilokal.com |
Argentina (AR) | 2 | perfil.com, smart-gsm.com |
Austria (AT) | 8 | heute.at, kurier.at, oe24.at, nachrichten.at, kosmo.at, regionews.at, tele.at, sn.at |
Belgium (BE) | 10 | footnews.be, newsmonkey.be, clint.be, culinaireambiance.com, dlrp.fr, elle.be, f1journaal.be, meteobelgique.be, mon-programme-tv.be, voetbalbelgie.be |
Brazil (BR) | 20 | tecnologiaegadget.com, ibahia.com, diariodepernambuco.com.br, eusemfronteiras.com.br, futebolinterior.com.br, diariodopoder.com.br, guiadasemana.com.br, soportugues.com.br, comboinfinito.com.br, opovo.com.br, gazetadopovo.com.br, estrelando.com.br, mensagenscomamor.com, horoscopovirtual.com.br, agazeta.com.br, viomundo.com.br, otempo.com.br, superlutas.com.br, pleno.news, midianews.com.br |
Bulgaria (BG) | 1 | archziner.com |
Cayman Islands (KY) | 1 | wavebrowser.com |
Cyprus (CY) | 16 | alfavita.gr, flash.gr, timesofmalta.com, gossip-tv.gr, onsports.gr, onmed.gr, iatropedia.gr, sportdog.gr, voetbalkrant.com, neolaia.gr, astrology.gr, newsbomb.gr, cnn.gr, athensvoice.gr, agrocapital.gr, vanguardngr.com |
Czech Republic (CZ) | 1 | extrasimo.cz |
Ghana (GH) | 1 | adomonline.com |
Greece (GR) | 3 | enikos.gr, enikonomia.gr, oldgamesdownload.com |
Hong Kong (HK) | 1 | coconuts.co |
Indonesia (ID) | 3 | newshere.org, tribunnews.com, mebere.com |
Israel (IL) | 57 | hashulchan.co.il, israelhayom.co.il, round-table.co.il, calcalist.co.il, srugim.co.il, timesofisrael.com, si.com, c14.co.il, infomed.co.il, kafe.co.il, mivzaklive.co.il, news08.net, discoveryfeed.org, investing.com, mako.co.il, makorrishon.co.il, foodsdictionary.co.il, haaretz.co.il, jpost.com, motke.co.il, 2net.co.il, alternativli.co.il, ba-bamail.com, be106.net, gadgety.co.il, isramedia.net, maariv.co.il, metukimil.co.il, one.co.il, todo-mail.com, walla.co.il, ashdodnet.com, aurora-israel.co.il, bus.co.il, fidapp.org, galgalim.co.il, ice.co.il, israeldefense.co.il, lazydad.co.il, lbscience.org, limudimisrael.co.il, maarivhaboker.co.il, maccabi.co.il, matanot-ktanot.co.il, myavne.co.il, net-games.co.il, netobatyam.co.il, ononews.co.il, simania.co.il, sweetdooly.co.il, tgspot.co.il, tlvonline.co.il, tooty.co.il, visit2israel.com, y4pc.co.il, kikar.co.il, start.co.il |
Japan (JP) | 56 | allabout.co.jp, kanaloco.jp, kobe-np.co.jp, mocobe.jp, trial-net.co.jp, funq.jp, nikkan.co.jp, okinawatimes.co.jp, ryukyushimpo.jp, shufuse.com, the-miyanichi.co.jp, theworldmagazine.jp, tokyo-sports.co.jp, shimotsuke.co.jp, saga-s.co.jp, caranddriver.co.jp, tsurinews.jp, chibanippo.co.jp, cubki.jp, ichiebuy.com, sasatto.jp, tokyo-calendar.jp, toonippo.co.jp, rikujyokyogi.co.jp, cinematoday.jp, entabe.jp, minyu-net.com, jomo-news.co.jp, agara.co.jp, buzzfeed.com, chiba-tv.com, chukei-news.co.jp, fashion-headline.com, forbesjapan.com, hokkoku.co.jp, nagasaki-np.co.jp, nikkansports.com, nnn.co.jp, rodo.co.jp, wws-channel.com, zaikei.co.jp, datatailor.co.jp, fourm.jp, ftnews.jp, honcierge.jp, medicalook.jp, sagatv.co.jp, mainichi.jp, nicovideo.jp, ntv.co.jp, shitaraba.com, sponichi.co.jp, webun.jp, phileweb.com, sakigake.jp, topics.or.jp |
Kenya (KE) | 1 | informationcradle.com |
Lithuania (LT) | 1 | networthpost.org |
Malaysia (MY) | 5 | malaysiakini.com, kwongwah.com.my, murai.my, orientaldaily.com.my, newswav.com |
New Zealand (NZ) | 3 | stuff.co.nz, rova.nz, nzherald.co.nz |
Nigeria (NG) | 4 | kemifilani.ng, skabash.com, thecable.ng, punchng.com |
Pakistan (PK) | 1 | jang.com.pk |
Peru (PE) | 1 | popino.top |
Philippines (PH) | 3 | abs-cbn.com, manilatimes.net, blogspot.com |
Portugal (PT) | 4 | noticiasaominuto.com, postal.pt, sapo.pt, impala.pt |
Singapore (SG) | 4 | mothership.sg, thesmartlocal.com, trueactivist.com, asiaone.com |
Slovenia (SI) | 1 | zurnal24.si |
South Africa (ZA) | 4 | soccerladuma.co.za, sarugbymag.co.za, snl24.com, nasi-ispani.co.za |
Sweden (SE) | 1 | squidapp.co |
Switzerland (CH) | 7 | suedostschweiz.ch, film.tv, finews.ch, pctipp.ch, zentralplus.ch, seniorenkompass.ch, tio.ch |
Taiwan (TW) | 4 | worldjournal.com, ltn.com.tw, udn.com, twmanga.com |
Trinidad and Tobago (TT) | 1 | guardian.co.tt |
Turkey (TR) | 1 | livinginacontainer.com |
Uruguay (UY) | 1 | montevideo.com.uy |
Any other site that shows an Outbrain box can be read with Page URLs: paste one article URL per site. A site Outbrain does not serve gets a free unknown_site coverage row.
How a run reads the boxes
- Every call goes out through a fresh Apify residential exit in the country asked for. Outbrain serves ads by country (our United States, United Kingdom, German and French samples shared at most one ad between any two countries), so a built in site is always read from the country Outbrain lists for it, and page URLs from every country you pick.
- Outbrain rotates the ads it shows: each call to a site can bring new ones. A site is called again until it stops bringing ads new to the run (
stopAfterDryCalls), up tomaxCallsPerSite. - Unpaid calls are capped too: answers without new ads (a watch run whose memory already knows most ads, blocked or empty answers, unknown sites) draw on a small budget per run that grows with every ad charged. When it runs out the run stops with
stoppedBy: work_allowancein the summary; the sites it had not finished get a coverage row with statusstoppedand the samestoppedBy, and sites never reached are listed in onenot_startedstatus row. Start the next run (or schedule it) to go on; ads already delivered are not charged again under a memory name. - Outbrain also answers pages of sites that do not run its box, and boxes with nothing else to show, with one generic "personalised content" row of the advertiser DiscoveryFeed. That filler row is never delivered or charged; a page that answers only with it closes as
filler_only. - The Actor reads the same data call the publisher's page makes and stops there. It never clicks an ad, never follows a landing address and never loads tracking pixels: a followed link would be a paid click on an advertiser's campaign.
How much does it cost to scrape Outbrain ads?
Pay per event: a small start fee per run and a price per ad delivered; never a charge for calls, blocked answers, coverage rows or status rows.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Ad (per 1,000 distinct ads) | USD 1.50 | USD 1.50 | USD 1.35 | USD 0.85 |
| Actor start (once per run) | USD 0.008 | USD 0.008 | USD 0.008 | USD 0.008 |
Platinum and Diamond plans pay the Gold price. The Actor start event is the same on every plan.
The Store pricing card shows these same prices per 1,000 events: "$1.50 / 1,000" on the Ad row means one ad costs 0.15 cents.
Worked example on the Free plan: the prefilled run (20 ads) costs USD 0.008 + 20 x USD 0.0015 = USD 0.038. A run of 500 ads costs USD 0.008 + USD 0.75 = USD 0.758.
- An ad is charged once per run, however many sites, calls or countries show it.
- With a memory name, an ad is charged once for that name: later runs deliver only new ads.
- Answers without ads, unknown sites, failed calls, coverage rows, status rows and the summary are free.
- Set a maximum cost per run in the run options: the Actor stops before an ad it cannot charge, and never makes a call when the limit cannot pay for one more ad.
Input
| Field | What it does | Default |
|---|---|---|
countries | Countries to sample; the best verified sites of each are read from a residential exit in that country | United States, when no site and no page URL is given |
sitesPerCountry | How many verified sites of each chosen country to read, best ad yield first (0 reads none by country) | 5 |
sites | Named sites from the built in list, each read from the country Outbrain lists for it | none |
pageUrls | Any article or page URL of any site, read from every chosen country (the United States when no country is chosen) | none |
maxAds | The most ads delivered in one run | 100 |
maxCallsPerSite | The most calls to one site in one run | 10 |
stopAfterDryCalls | A site stops after this many answers in a row with no ad new to the run | 3 |
maxCalls | The most calls in one run | 200 |
memoryName | Watch mode: one name for scheduled runs, each ad charged once for that name | none |
resetMemory | Forget what the named memory knows before this run | false |
includePersonalData | Personal data: on, advertiserName, brandName, dsaPayer and dsaBeneficiary are delivered exactly as Outbrain serves them, e-mail addresses included; off, an e-mail address in them is hidden | false |
Example: every new native ad in the United Kingdom and Germany, daily.
{"countries": ["GB", "DE"],"sitesPerCountry": 10,"maxAds": 1000,"memoryName": "uk-de-daily"}
A value that cannot be used is never guessed: an unknown site, a page URL that is not a URL, or a URL that carries an e-mail address or a password gets a free status row and the rest of the run goes on; an unknown country or a malformed number is refused before any call is made.
What this Actor does NOT do
- It is not an ad library. Outbrain publishes no ad archive, so there is no search by advertiser or keyword, no history before your own runs and no "all ads of brand X". Filter the rows by
advertiserName,brandNameorlandingDomainfor a competitor's ads, and use a memory name to build your own history. - It does not capture landing pages, follow click links or resolve redirects (a followed link is a paid click). The landing address is the one Outbrain states, sometimes with unfilled tracking macros (
landingUrlHasMacros) or an Outbrain redirect (landingUrlIsClickRedirect). - No spend, impressions, clicks or first and last shown dates: Outbrain's answer carries none of them. No active status or date filters either: every row is an ad being served at the moment it was seen.
- No lookup by advertiser domain or brand, no media download or rehosting: the image URL is Outbrain's own, and filtering by
advertiserName,brandNameorlandingDomainis done on the rows. - It does not cover every Outbrain site: the built in list holds the sites verified live, and page URLs reach any other one. A box that shows no ads three times in a row on fresh exits is reported as
blocked. - It does not read Taboola, MGID, Revcontent or other native networks (separate listings of the same family).
- It does not sign in or keep cookies: every call is a fresh visitor with no history in the chosen country, so the sample is what a new anonymous reader there is shown.
- It does not use any publisher API key, and needs no Outbrain account.
FAQ
Is there a public ad library for Outbrain?
No. Outbrain (now part of Teads) publishes no ad archive. This Actor reads the ads Outbrain serves right now in the boxes of publisher sites, per country, and keeps what your runs saw in a named memory if you ask it to.
How do I see my competitors' native ads on Outbrain?
Run the countries where they advertise with enough sites and calls, then filter the rows by advertiserName, brandName or landingDomain. Schedule the run with a memory name to collect their new ads every day.
Which countries and news sites are covered?
665 publisher sites in 43 countries are built in, each verified live from a residential exit in the country Outbrain lists for the publisher (United States 122, United Kingdom 26, Germany 91, France 50, Italy 73, Spain 33, Netherlands 20, India 8, Australia 7, Canada 4, and more; the full list is in "Built in sites" above). Any other site that shows an Outbrain box can be read with a page URL, from any of the offered countries: Outbrain serves the ads of the country the reader is in, so a large international site read from a Canadian exit shows the ads Outbrain serves to readers in Canada.
Does the Actor click ads or visit landing pages?
No. It reads the same data call the publisher's page makes for its box and stops there: no click link is followed, no landing page is loaded and no tracking pixel is sent.
How do I get only new Outbrain ads every day?
Give the run a memory name and schedule it. Each ad is delivered and charged once for that name; later runs deliver only ads the memory has not seen, and the coverage rows count the ones it already knew.
Does the Actor deliver personal data?
Advertisers name their own accounts, and a few self serve accounts are named after a person's e-mail address. By default an e-mail address in advertiserName, brandName, dsaPayer or dsaBeneficiary is replaced by "(e-mail address hidden)" and personalDataMasked is true on that row. Turn on includePersonalData to get those four fields exactly as Outbrain serves them. You are responsible for a lawful use of personal data, GDPR included.
Why does this Actor run with limited permissions?
Least privilege: it reads and writes only its own run storages and, in watch mode, the named memory store it creates itself. It cannot see your other actors, datasets or account data.
API examples
curl -X POST "https://api.apify.com/v2/acts/automation_craft~outbrain-ads-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"countries": ["US"], "sitesPerCountry": 3, "maxAds": 50}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('automation_craft/outbrain-ads-scraper').call({ countries: ['GB'], sitesPerCountry: 5, maxAds: 200 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((i) => i.type === 'ad').map((i) => [i.advertiserName, i.headline]));
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation_craft/outbrain-ads-scraper").call(run_input={"countries": ["DE"], "maxAds": 200, "memoryName": "de-daily"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["type"] == "ad":print(item["advertiserName"], item["headline"], item["landingDomain"])
Changelog
- 0.1 (2026-10-19): new setting
includePersonalData, off by default; on, the advertiser, brand, payer and beneficiary names are delivered exactly as Outbrain serves them, e-mail addresses included. Runs without it are unchanged. - 0.1 (2026-10-09): first version. Outbrain native ads by country, built in site or page URL; one row and one charge per distinct ad per run; watch mode with a named memory; free coverage rows per site and country.
More data tools by Automation Craft
- Meta Ads Library Scraper - Ad Library, All Filters
- Facebook Ads Library Scraper - Ad Library & Spy
- Google Ads Transparency Scraper - Decoded Creatives
- TikTok Ads Library Scraper: EU Ads, No Login
- LinkedIn Ad Library Scraper: Ads by Company
- Microsoft Ads Library Scraper - Competitor Ads
- Amazon Sponsored Products Scraper - Ads by Keyword
- Pinterest Ads Library Scraper - EU Ads Repository