Reddit Subreddit Posts Scraper avatar

Reddit Subreddit Posts Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Reddit Subreddit Posts Scraper

Reddit Subreddit Posts Scraper

Harvest posts from any subreddit through Reddit's public JSON API — no login, key or OAuth. Pick the sort (hot/new/top/rising) and timeframe, set how many posts you want, and receive clean JSON with title, author, score, comments, flair, URL, thumbnail and more.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Assia Fadli

Assia Fadli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Reddit Subreddit Posts Scraper harvests posts from any subreddit using Reddit's public JSON endpoints — no login, no API key, no OAuth. Point it at one subreddit or a whole list, choose how to sort (hot / new / top / rising) and how many posts you want, and get back clean, structured JSON ready for a spreadsheet, database or downstream workflow.

Built for marketers, researchers, analysts and developers who need reliable Reddit post data without maintaining scraping infrastructure.

What you get

For every post the actor collects, it writes one dataset row with a clean, stable shape:

FieldDescription
subredditThe subreddit the post belongs to.
idReddit's post id.
titlePost title.
authorUsername of the poster.
scoreNet upvotes.
commentsNumber of comments.
urlThe post's outbound / content URL.
permalinkFull https://www.reddit.com/... link to the post.
createdCreation time as an ISO 8601 timestamp.
selftextThe post body (empty string for link posts).
flairLink flair text, if any.
nsfwWhether the post is marked over-18.
upvoteRatioFraction of votes that were upvotes.
thumbnailA genuine image thumbnail URL, or null.
domainDomain of the linked content.

If a subreddit can't be scraped (empty, private, banned, quarantined, misspelled, or Reddit blocked every attempt), the actor still writes a row — { "subreddit": "...", "error": "..." } — so no requested subreddit is ever silently dropped, and the run still finishes successfully.

Input

FieldTypeRequiredDescription
subredditsarray of stringsSubreddits to harvest, with or without the r/ prefix.
sortstringOne of hot, new, top, rising. Defaults to hot.
timeframestringTime window used for top: hour, day, week, month, year, all. Defaults to week.
maxPostsintegerMax posts collected per subreddit. Defaults to 50.
proxyCountryCodestringTwo-letter residential-proxy country code (e.g. US, GB, DE). Optional.

Example input

{
"subreddits": ["programming", "webdev"],
"sort": "top",
"timeframe": "week",
"maxPosts": 100
}

How it works

For each subreddit the actor requests https://www.reddit.com/r/<sub>/<sort>.json?limit=100&t=<timeframe>&after=<cursor> and reads data.children[].data. It follows the data.after cursor to paginate automatically until maxPosts posts are collected or Reddit returns no further cursor.

Reddit blocks requests that use the default (empty) User-Agent, so the actor uses got-scraping, which sends a realistic browser User-Agent and TLS fingerprint, and routes traffic through Apify's residential proxy. If a response looks like a block page (HTML body, or HTTP 403/429), the request is retried through a fresh proxy IP and finally as a direct request before an error row is recorded.

Note: Running from a datacenter/home IP may be rate-limited or blocked by Reddit. Running on the Apify platform with the residential proxy enabled is the reliable way to use this actor.

Pricing

This actor uses the pay-per-event model: you are charged once per post successfully delivered to the dataset (post-scraped). Error rows are never charged, and the run stops automatically once your event budget is reached.

Running

  1. Provide your subreddits list (and optionally sort, timeframe, maxPosts, proxyCountryCode).
  2. Run the actor.
  3. Collect results from the default dataset as JSON, CSV, Excel or via the API.

Tech

Written in TypeScript on the Apify SDK. HTTP-only, so builds are fast and runs are cheap.

License

MIT © Assia Fadli