← Catalog · Historical Reddit by date range · Reddit RAG pack guide · Actor

How to get Reddit posts, comments and search results as structured data

27 Oct 2026 · benthepythondev

If you need Reddit content in a spreadsheet, a database or a script, the Reddit Scraper on Apify returns it as clean rows. You give it a subreddit, a post URL, a username or a search query. It returns the available posts and comments with scores, images and nested comment threads. You don't need a Reddit login or your own API key.

What you get

Each post comes back as one row with these fields:

Comments work the same way, using body, body_markdown and body_html. Each post and each top-level comment is its own row. Nested replies stay inside their parent comment's replies field.

A real example output

This is a trimmed excerpt from a real run against r/AskReddit (long text fields shortened):

{
  "id": "1w6eajz",
  "title": "AskReddit is looking for new moderators!",
  "url": "https://www.reddit.com/r/AskReddit/comments/1w6eajz/askreddit_is_looking_for_new_moderators/",
  "selftext": "As you can probably imagine, r/AskReddit is very busy with nearly 60 million members...",
  "author": "AskRedditModerators",
  "subreddit": "AskReddit",
  "subreddit_id": "t5_2qh1i",
  "score": 214,
  "upvote_ratio": 0.93,
  "num_comments": 0,
  "is_self": true,
  "is_video": false,
  "domain": "self.AskReddit",
  "thumbnail": null,
  "images": [],
  "created_utc": "2026-09-03T17:39:04",
  "link_flair_text": "Modpost",
  "over_18": false,
  "stickied": true,
  "locked": true,
  "word_count": 172,
  "token_count": 252,
  "content_format": "markdown"
}

The next row in the same run was the post "What is the scariest story you know is 100% true?" with id 1wzbc6m.

What people use it for

Replacing a Reddit RSS feed. The README notes that Reddit announced it will stop supporting RSS feeds on November 13, 2026. A scheduled run with onlyNew: true and a watchName returns only the posts that are new since the last run, readable as RSS. You can paste your old feed link (for example https://www.reddit.com/r/selfhosted/.rss) into the subreddit field and the Actor reads the subreddit name out of it. Search feeds map to mode: search with searchQuery, and user feeds map to mode: user with username.

Pulling top posts from a subreddit. Choose a sort and time filter, such as the top posts of the week in r/Python, and export them to JSON, CSV or Excel.

Collecting a user's history or search results. Switch the mode to user or search to get a person's posts or every match for a query.

Feeding text into other tools. The content field gives you one consistent representation per post and comment, and word_count and token_count help you estimate size before passing text on. Runs can also connect to Make, Zapier or n8n.

How to run it on Apify

Open the Reddit Scraper on Apify. A small first run is a good way to see the output before committing to anything bigger:

{
  "mode": "subreddit",
  "subreddit": "Python",
  "sort": "top",
  "timeFilter": "week",
  "maxPosts": 3,
  "includeComments": false,
  "outputFormat": "text",
  "includeImages": false
}

There's also a tested Python-posts example you can open directly. You can run the Actor by hand, put it on a schedule or call it through the Apify API.

Pricing is $0.003 per dataset row, plus a $0.00005 run-start event per GB of allocated memory (minimum one). The README's example: a 10-post run at 1 GB costs $0.03005 before account discounts. Turning on comments adds a row (and a charge) for every top-level comment, so start with includeComments: false if you only need a list of posts.

Open the actor See the Python example

How to call it as an API on RapidAPI

If you'd rather call it like a normal REST API with a RapidAPI key, it's listed at Reddit Scraper on RapidAPI.

Honest limits

Need a subreddit's posts from years ago or inside a fixed date window? See how to get historical Reddit posts and comments by subreddit and date range.

Affiliate if you still need an Apify account: apify.com/?fpr=qolupv. I may earn a commission; the price you pay does not change.