Reddit Scraper avatar

Reddit Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Reddit Scraper

Reddit Scraper

Crawl Reddit posts, comments, communities, and user profiles without requiring login. Pay only for the results you get, limit scraping by posts or items, and export complete datasets in multiple formats for easy analysis or integration.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Scraping Dino

Scraping Dino

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Reddit Scraper | Extract Posts, Comments, Users & Communities

Collect Reddit posts, comments, user profiles, and communities in clean, structured JSON — ready for analysis, monitoring, and automation on Apify.

Paste a URL or enter a search keyword. Get consistent fields, media links, optional nested comment threads, and separate Output tabs for each data type.

  • Scrape Reddit posts from subreddits, users, popular feeds, and search
  • Scrape comments as flat rows or nested trees on each post
  • Scrape communities with subscribers, descriptions, and metadata
  • Scrape user profiles with karma and account details
  • Search Reddit for posts, users, and communities
  • Extract images & videos into imageUrls, videoUrls, and mediaType
  • Export clean structured JSON built for Apify workflows and downstream tools

Features

CapabilityIncluded
Posts
Comments
User profiles
Communities
Keyword search
Media extraction
Threaded comments (tree mode)
NSFW filtering
Date filtering
Multiple sort orders
Pagination & result caps
Structured JSON output
Apify dataset tabs (Posts / Comments / Users / Communities)
Compatible with Apify Actors, Tasks, and Schedules

Supported inputs

Subreddit

https://www.reddit.com/r/AskReddit/
https://www.reddit.com/r/python/new/
https://www.reddit.com/r/technology/top/?t=week

User

https://www.reddit.com/user/spez/
https://www.reddit.com/user/spez/submitted/
https://www.reddit.com/user/spez/comments/

Post

https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/
https://www.reddit.com/r/popular/
https://www.reddit.com/r/popular/rising/
https://www.reddit.com/r/subreddits/

Search URL

https://www.reddit.com/search/?q=electric%20vehicles

You can also run keyword search without a URL via the searches input.

When startUrls are set, search keywords are ignored unless ignoreStartUrls is enabled.


Search support

ModeInput flagWhat you get
PostssearchPostsMatching posts
UserssearchUsersMatching profiles
CommunitiessearchCommunitiesMatching subreddits

Combine flags in one run. Sort and time filters apply where Reddit supports them.


Input options

ParameterTypeDefaultDescription
startUrlsstring[]Reddit URLs to scrape (subreddit, user, post, popular, search).
searchesstring[]Keywords to search. Used when no start URLs are set, or when ignoreStartUrls is true.
searchPostsbooleantrueInclude post results when searching.
searchUsersbooleanfalseInclude user results when searching.
searchCommunitiesbooleanfalseInclude community results when searching.
includeCommentsbooleantrueFetch comments for posts.
includeMediaLinksbooleantrueExport imageUrls, videoUrls, and mediaType on posts.
commentOutputstringflatflat = one dataset row per comment. tree = nest comments under each post.
outputCompatibilitystringapifyapify = lean Store-friendly fields. extended = richer metadata.
includeUserInfobooleantrueFetch profile details for user URLs.
includeCommunityInfobooleantrueFetch community metadata for subreddit URLs.
includeNSFWbooleantrueKeep NSFW items. Set false to exclude them.
sortstringnewrelevance, hot, top, new, rising, or comments.
timestringallTime window for top/controversial: hour, day, week, month, year, all.
maxItemsinteger100Hard cap on all exported items combined.
maxPostsinteger50Max posts per source (subreddit, user, search, popular).
maxCommentsinteger50Max comments per post (0 skips comments).
maxUsersinteger10Max users per search keyword.
maxCommunitiesinteger10Max communities per search or community listing.
postDateLimitstringKeep posts on/after this date (YYYY-MM-DD).
commentDateLimitstringKeep comments on/after this date (YYYY-MM-DD).
ignoreStartUrlsbooleanfalseProcess only searches, ignore startUrls.

Output

Results land in separate Output tabs:

TabContents
PostsPosts only
CommentsComments only (flat mode)
UsersProfiles only
CommunitiesSubreddits only
All FieldsEverything in one combined dataset

Every record includes dataType: post, comment, user, or community.

Post

{
"dataType": "post",
"id": "ablzuq",
"parsedId": "ablzuq",
"title": "People who haven't pooped in 2019 yet, why are you still holding on to last years shit?",
"username": "ShoddySubstance",
"communityName": "r/AskReddit",
"parsedCommunityName": "AskReddit",
"upVotes": 221992,
"upVoteRatio": 0.91,
"numberOfComments": 7898,
"over18": false,
"isVideo": false,
"mediaType": "text",
"imageUrls": [],
"videoUrls": [],
"createdAt": "2019-01-01T21:06:27.000Z",
"url": "https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/"
}

Comment

{
"dataType": "comment",
"id": "ed1ap8n",
"parsedId": "ed1ap8n",
"body": "It's all I have",
"username": "example_user",
"communityName": "r/AskReddit",
"parentId": "t3_ablzuq",
"depth": 0,
"upVotes": 46487,
"createdAt": "2019-01-01T21:07:31.000Z",
"url": "https://www.reddit.com/r/AskReddit/comments/ablzuq/.../ed1ap8n/"
}

User

{
"dataType": "user",
"id": "1w72",
"username": "spez",
"karma": 940838,
"linkKarma": 184381,
"commentKarma": 756457,
"createdAt": "2005-06-06T04:00:00.000Z",
"url": "https://www.reddit.com/user/spez/"
}

Community

{
"dataType": "community",
"id": "2qh1i",
"displayName": "AskReddit",
"communityName": "r/AskReddit",
"parsedCommunityName": "AskReddit",
"title": "Ask Reddit...",
"subscribers": 59336494,
"over18": false,
"createdAt": "2008-01-25T03:52:15.000Z",
"url": "https://www.reddit.com/r/AskReddit/"
}

Media extraction

Set includeMediaLinks: true (default) to export media fields on posts.

FieldMeaning
imageUrlsDirect image URLs (including gallery images when available)
videoUrlsDirect video URLs when Reddit exposes them
mediaTypeHigh-level type such as image, video, gallery, text, or link

The actor detects galleries, hosted video, and common link thumbnails. When includeMediaLinks is false, those export fields are omitted for a leaner dataset.


Comment modes

Flat (default)

Each comment is its own dataset row — ideal for tables, CSV, and pipelines.

{ "dataType": "comment", "id": "abc", "parentId": "t3_post", "depth": 0, "body": "…" }
{ "dataType": "comment", "id": "def", "parentId": "t1_abc", "depth": 1, "body": "…" }

Tree

Comments attach to each post as a nested comments array with replies. Scraping behavior is unchanged — only the export shape changes.

{
"dataType": "post",
"id": "ablzuq",
"title": "…",
"comments": [
{
"id": "abc",
"parentId": "t3_ablzuq",
"depth": 0,
"body": "Top-level reply",
"replies": [
{ "id": "def", "parentId": "t1_abc", "depth": 1, "body": "Nested reply", "replies": [] }
]
}
]
}

Use tree only when includeComments is true.


Filtering

OptionBehavior
includeNSFWfalse drops items flagged over18.
postDateLimitKeeps posts created on or after YYYY-MM-DD.
commentDateLimitKeeps comments created on or after YYYY-MM-DD.

Combine with maxPosts, maxComments, and maxItems to control cost and run time.


Performance

  • Uses optimized backend APIs instead of full browser crawling
  • Paginates listings until your limits are reached, then stops
  • Skips unnecessary follow-up requests when caps or filters are hit
  • Suited to both small sample runs and larger monitoring jobs

Throughput depends on Reddit availability, selected limits, and whether comments/media are enabled.


Perfect for

  • Market research — Track topics, questions, and engagement across communities
  • Brand monitoring — Watch mentions, threads, and sentiment signals
  • Sentiment analysis — Build labeled post and comment corpora
  • Lead generation — Find active users and niche communities
  • Academic research — Collect structured public Reddit data at scale
  • Content discovery — Surface trending posts and discussions
  • AI training — Export clean text and media metadata for models
  • Competitive intelligence — Compare presence across subreddits and creators

Limitations

  • Keyword search for comments is not supported
  • Keyword search for media-only results is not supported
  • Private or restricted communities return only what Reddit makes publicly available
  • Deleted or suspended accounts may return partial or empty profiles
  • Very large comment threads are bounded by maxComments and maxItems

FAQ

Can I scrape NSFW content?
Yes. Keep includeNSFW: true, or set it to false to exclude NSFW items.

Can I scrape multiple URLs in one run?
Yes. Add as many URLs as you need to startUrls.

Can I scrape a single post and its comments?
Yes. Paste the post URL, keep includeComments: true, and set maxComments as needed.

Can I scrape user profiles?
Yes. Use a /user/… URL or enable searchUsers with keywords.

Can I scrape communities / subreddits?
Yes. Use a /r/… URL or enable searchCommunities.

Does it support media?
Yes. With includeMediaLinks: true, posts include imageUrls, videoUrls, and mediaType.

Can I export nested comment threads?
Yes. Set commentOutput: "tree".

Can I export flat comments for CSV?
Yes. That is the default (commentOutput: "flat").

How many posts can I collect?
As many as your limits allow. Use maxPosts per source and maxItems as a global cap.

Can I filter by date?
Yes. Use postDateLimit and commentDateLimit (YYYY-MM-DD).

Can I sort by hot, top, or new?
Yes. Use sort and, for top/controversial windows, time.

Can I export JSON?
Yes. Download any Output tab or the combined All Fields dataset as JSON, CSV, Excel, and more.

What if a user is deleted?
You may get partial fields or empty profile data. The run continues.

Can I scrape private communities?
Only public data Reddit exposes. Private communities are not accessible.

Do start URLs override search?
Yes. When startUrls are present, searches are ignored unless ignoreStartUrls is true.

Where do communities appear in the Output tab?
In the Communities tab — not under Posts.


Why this actor?

Choose this scraper when you want Reddit data that is ready to use without cleanup gymnastics.

  • Clean, consistent fieldsusername, communityName, upVoteRatio, createdAt, and clear dataType tags
  • Rich metadata — scores, flair, NSFW flags, permalinks, and community stats
  • Media that ships — image, video, and gallery URLs when you need them
  • Comments your way — flat rows for analytics, or trees for thread structure
  • Separate Output tabs — Posts, Comments, Users, and Communities stay cleanly separated
  • Built for Apify — schedules, tasks, webhooks, and dataset exports work out of the box
  • Production-minded controls — limits, date filters, NSFW filters, and search modes that scale with you

Paste a URL. Hit Start. Get structured Reddit data.