Reddit Subreddit Scraper AI avatar

Reddit Subreddit Scraper AI

Pricing

from $1.99 / 1,000 posts

Go to Apify Store
Reddit Subreddit Scraper AI

Reddit Subreddit Scraper AI

Scrape Reddit subreddit posts and comments — with AI-generated summaries of every post body and comment discussion. No login, no API key required.

Pricing

from $1.99 / 1,000 posts

Rating

0.0

(0)

Developer

CRW

CRW

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

27 minutes ago

Last modified

Share

Scrape posts and comments from any subreddit — and let AI summarize every post body and comment discussion for you.

No login. No API key. No scrolling. Just a few parameters.


What does the output look like?

Post (without comments)

{
"id": "t3_1udilkn",
"title": "Before smartphones, what did people do when they had to wait somewhere for 30 minutes?",
"url": "https://www.reddit.com/r/NoStupidQuestions/comments/1udilkn/before_smartphones_what_did_people_do_when_they/",
"subredditName": "NoStupidQuestions",
"subredditId": "t5_2w844",
"authorName": "sudherzdiniq",
"authorId": "t2_d8aku4pil",
"createdAt": "2026-06-23T14:24:44.000000+0000",
"score": 1207,
"commentCount": 3104,
"upvoteRatio": 0.902,
"postType": "text",
"domain": "self.NoStupidQuestions",
"body": "I was sitting in a waiting room today and realized everyone was staring at their phones...",
"images": null,
"nsfw": false,
"spoiler": false,
"comments": null
}

Post (with comments enabled)

{
"id": "t3_1udilkn",
"title": "Before smartphones, what did people do when they had to wait somewhere for 30 minutes?",
"comments": [
{
"id": "t1_owililg",
"postId": "t3_1udilkn",
"parentId": null,
"depth": 0,
"authorName": "spytez",
"body": "I have a friend that works at one of the large companies doing an AI push...",
"score": 425,
"createdAt": "2026-07-09T16:06:41.542000+0000",
"permalink": "https://www.reddit.com/r/NoStupidQuestions/comments/1udilkn/comment/owililg/"
},
{
"id": "t1_owit2n4",
"postId": "t3_1udilkn",
"parentId": "t1_owililg",
"depth": 1,
"authorName": "happyscrappy",
"body": "We couldn't have foreseen this!",
"score": 61,
"createdAt": "2026-07-09T16:37:58.807000+0000",
"permalink": "https://www.reddit.com/r/NoStupidQuestions/comments/1udilkn/comment/owit2n4/"
}
]
}

Post fields

FieldDescriptionExample
idPost IDt3_1udilkn
titlePost titleBefore smartphones, what did people do...
bodyFull post text (text posts only — null for all other types)I was sitting in a waiting room today...
urlDirect link to the posthttps://www.reddit.com/r/.../
subredditNameSubreddit nameNoStupidQuestions
subredditIdSubreddit IDt5_2w844
authorNameAuthor usernamesudherzdiniq
authorIdAuthor IDt2_d8aku4pil
createdAtPost timestamp (ISO 8601)2026-06-23T14:24:44.000000+0000
scoreUpvote count1207
commentCountNumber of comments3104
upvoteRatioRatio of upvotes to total votes0.902
postTypePost typetext / link / image / gallery / video
domainLink domain for link posts, self.<subreddit> for text postsyahoo.com
imagesImage URLs for image and gallery posts — null for all other types["https://i.redd.it/..."]
nsfwWhether the post is marked NSFWfalse
spoilerWhether the post is marked as a spoilerfalse
commentsArray of comments — null when includeComments is false[...]
bodySummaryAI-generated summary of the post body — only present when enableAI is true and the post has body text"A user asks what people did while waiting before smartphones existed."
commentSummaryAI-generated summary of the comment discussion — only present when enableAI is true and the post has comments"Most commenters share nostalgic anecdotes about reading and people-watching."

Comment fields

FieldDescriptionExample
idComment IDt1_owililg
postIdParent post IDt3_1udilkn
parentIdParent comment ID — null for top-level commentst1_owililg
depthNesting depth — 0 = top-level, 1 = reply, 2 = reply to reply...1
authorNameComment author usernamehappyscrappy
bodyFull comment textWe couldn't have foreseen this!
scoreUpvote count61
createdAtComment timestamp (ISO 8601)2026-07-09T16:37:58.807000+0000
permalinkDirect link to the commenthttps://www.reddit.com/r/.../comment/owit2n4/

Getting started

ParameterRequiredDefaultDescription
subredditYesSubreddit name (e.g. technology, worldnews, r/science)
sortNohotFeed sort order: hot / new / top / rising / best
timeFilterNodayTime range for top sort only: hour / day / week / month / year / all
maxResultsNo100Number of posts to collect (10–500)
includeCommentsNofalseCollect comments for each post
maxCommentsPerPostNo10Max comments per post, top-level and replies combined (1–100). Only applies when includeComments is true
maxReplyExpansionsNo1How many times to expand hidden replies per thread. Set to 0 to skip, higher values load deeper reply chains. Only applies when includeComments is true
enableAINofalseEnrich each post with AI-generated bodySummary and commentSummary fields.

Example — posts only:

{
"subreddit": "Entrepreneur",
"sort": "hot",
"maxResults": 100
}

Example — posts with comments:

{
"subreddit": "Entrepreneur",
"sort": "hot",
"maxResults": 50,
"includeComments": true,
"maxCommentsPerPost": 10
}

Example — posts with AI analysis:

{
"subreddit": "Entrepreneur",
"sort": "hot",
"maxResults": 50,
"includeComments": true,
"maxCommentsPerPost": 10,
"enableAI": true
}

Click Start in the Apify console or call it via API. Results are available as JSON, CSV, or Excel.

AI Analysis output

When enableAI is true, each post in the dataset is enriched with:

  • bodySummary — a concise summary of the post's body text (text posts only)
  • commentSummary — a summary of the comment discussion, covering what people agree on, push back on, and additionally suggest

Both fields are only present when the relevant content exists (body or comments). Posts with no body and no comments will not have either field.

Pricing estimate

EventUnitPrice
Postper post$0.00199
Commentper comment (includeComments: true)$0.00099
AI body summaryper post with body (enableAI: true)$0.001
AI comment summaryper post with comments (enableAI: true)$0.002

Note: AI summaries are charged per post, not per comment. A post with 100 comments still generates one commentSummary — billed once at $0.002.

ScenarioPostsCommentsEstimated cost
Posts only1,000~$1.99
Posts + 10 comments each1,00010,000~$11.89
Posts + 50 comments each50025,000~$25.70
Posts + AI body summary only1,000~$2.99
Posts + comments + AI (body + comment summary)5005,000~$7.44

Comment collection is billed per comment. AI summaries are billed per post. Keep maxCommentsPerPost low if you only need a sample of opinions per post.


What can you do with it?

Sentiment analysis and brand monitoring Pull the latest posts from a niche subreddit with sort: new and enable comments to capture raw, unfiltered opinions. Reddit comments are more candid than reviews or tweets — people say what they actually think.

Build AI training datasets Subreddits like r/AskReddit, r/explainlikeimfive, or r/relationship_advice contain millions of long-form human discussions. Enable includeComments with maxCommentsPerPost: 50 to capture full conversation threads — ideal for fine-tuning, RLHF, or building Q&A datasets.

Track community trends over time Run weekly on r/investing or r/technology with sort: top and timeFilter: week to see which topics are gaining traction. Combine post scores, comment counts, and upvote ratios to spot momentum early.

Research what content resonates Compare score, upvoteRatio, and commentCount across hundreds of posts to understand what titles and formats drive engagement. Use comment depth and score to see which perspectives the community amplifies.


For developers

JavaScript / TypeScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
subreddit: 'technology',
sort: 'top',
timeFilter: 'week',
maxResults: 100,
includeComments: true,
maxCommentsPerPost: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('YOUR_ACTOR_ID').call(run_input={
'subreddit': 'technology',
'sort': 'top',
'timeFilter': 'week',
'maxResults': 100,
'includeComments': True,
'maxCommentsPerPost': 10,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

Limitations

  • Volume: 10 to 500 posts per run.
  • Post body text: Only available on text posts. Link, image, video, and gallery posts return null for body.
  • Comment body: Text comments return the full comment text. Image-only or GIF comments (no text) return the media URL as body instead of null.
  • Images: Only available on image and gallery posts — null for all other types. image posts return a permanent i.redd.it URL. gallery posts return signed preview.redd.it URLs that expire approximately 7 days after scraping.
  • timeFilter: Only applies when sort is set to top. Ignored for all other sort orders.
  • Comments: Up to 100 comments per post (maxCommentsPerPost). This count includes both top-level comments and replies. Reddit initially hides some replies behind "load more" buttons — use maxReplyExpansions to control how many times those are expanded per thread (default: 1). Set to 0 to collect only what's visible on initial load.

You might also need

If you want to search Reddit by keyword across all communities — not just one subreddit:

Reddit Post Scraper

Reddit Subreddit ScraperReddit Post Scraper
InputSubreddit nameSearch keyword
CoverageOne communityAll of Reddit
Best forMonitoring a specific communityFinding posts about a topic across subreddits
Sorthot / new / top / rising / bestrelevance / hot / top / new / comments

Try Reddit Post Scraper