Reddit Promoted Posts Scraper
Under maintenancePricing
from $4.99 / 1,000 results
Reddit Promoted Posts Scraper
Under maintenanceCollects promoted (sponsored) posts from Reddit feeds — advertiser, title, ad text, destination, CTA, media, and campaign metadata.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Collect real promoted posts rendered in bounded public Reddit feeds. The Actor visits r/popular, the home feed, and optional subreddits sequentially, deduplicates by Reddit post ID, and can apply an optional keyword filter. It uses an ordinary Chromium browser without browser-fingerprint or automation-signal manipulation.
Reddit does not guarantee that a particular public session, feed, country, or moment will receive ads. maxItems is therefore an upper bound, not an exact-count promise.
Input
subreddits: up to 20 optional subreddit names;r/prefixes and case-insensitive duplicates are normalized.query: optional case-insensitive advertiser/title/text/domain filter.maxItems: maximum successful rows, from 1 to 100; defaults to 20.maxScrolls: per-feed scroll bound, from 1 to 20; defaults to 8.proxyConfiguration: optional Apify Proxy settings. Invalid configuration fails closed instead of silently switching to direct traffic.
{"subreddits": ["technology", "marketing"],"maxItems": 5,"maxScrolls": 5}
Unknown fields and invalid types are rejected rather than coerced.
Output
The default dataset contains successful promoted-post rows only. Each row requires a published advertiser, title, Reddit post ID and permalink, plus source and transport provenance. Optional fields—body text, destination, CTA, media, subreddit, campaign ID, and country code—are emitted only when Reddit publishes them in the rendered DOM.
The OUTPUT key in the default key-value store distinguishes SUCCESS, PARTIAL, NO_MATCHES, NO_RESULTS, and FAILED; it includes observed/saved counts, per-feed summaries, bounded failures, and browser/proxy provenance. Zero-result or blocked runs never insert placeholder rows into the dataset. A run fails only when every bounded feed fails; an accessible feed with no delivered ads completes as NO_RESULTS.
Development
npm cinpm testnpm run lintnpx apify-cli validate-schemanode validate-datasets.js <dataset.json-or-directory-or-stdin-dash>
Collect only public data you are authorized to use. Follow Reddit's terms and applicable privacy, advertising, and data-protection law.