Reddit Scraper Pro | FREE 🔥 | No API Key Required avatar

Reddit Scraper Pro | FREE 🔥 | No API Key Required

Pricing

Pay per usage

Go to Apify Store
Reddit Scraper Pro | FREE 🔥 | No API Key Required

Reddit Scraper Pro | FREE 🔥 | No API Key Required

(24+ fields) A powerful, FREE Reddit scraper for posts and comments with detailed metrics. No API key required. Scrape subreddits, profiles, and specific posts, or search Reddit site-wide by keywords or domains. Collect rich, structured data including authors, scores, timestamps, flairs, and more.

Pricing

Pay per usage

Rating

5.0

(2)

Developer

Coding Doctor Omar

Coding Doctor Omar

Maintained by Community

Actor stats

0

Bookmarked

159

Total users

42

Monthly active users

15 hours

Issues response

7 hours ago

Last modified

Categories

Share

🔥 Reddit Scraper Pro 🔥

reddit scraper pro logo

A powerful, FREE Reddit scraper for posts and comments with detailed metrics. No API key required. Scrape subreddits, profiles, and specific posts, or search Reddit site-wide by keywords. Collect rich, structured data including authors, scores, timestamps, flairs, comment threads, and more (24+ fields).

Encountered an error while using the Actor? Let me know by opening a new issue and explaining the error — I'm active and usually fix things within a day.

Like this Actor? Please leave a 5-star review on Apify to support me and help others find the Actor ❤️.

Input • API Docs • Changelog

Quickstart Tutorial Video

Scraper Modes

Below are the modes available in Reddit Scraper Pro. Details about each of these modes are provided in the coming sections.

  1. Standard Mode: Scrapes posts and comments from subreddits, from profiles, or from a list of direct post URLs you provide (profiles that hide their posts, deleted profiles, and banned profiles will not be scraped).
  2. Keyword Search Mode: Scrapes posts and comments from Reddit search (site-wide) based on your custom keyword inclusion and exclusion criteria.

After each scrape is finished, you can choose to view results for posts only, comments only, or all together.

Example Post Output

{
"submissionId": "1w1gc8p",
"submissionIdPrefixed": "t3_1w1gc8p",
"submissionType": "post",
"submissionUrl": "https://www.reddit.com/r/Sat/comments/1w1gc8p/is_this_good_improvement_for_10_hours_of/",
"submittedAt": "2026-08-29T07:53:42+00:00",
"parentId": null,
"parentPostId": null,
"parentPostUrl": null,
"postType": "image",
"crosspostParentId": null,
"crosspostParentUrl": null,
"title": "Is this good improvement for 10 hours of dedicated study + need help for rw section",
"bodyText": "math significantly improved but reading writing is too tough for me (international student)\n\nplease help, i have to give the sat in two months, will reading novels improve my rw score?",
"author": "stcer",
"depth": null,
"postFlair": null,
"tags": [],
"subreddit": "r/Sat",
"score": 32,
"upvoteRatio": 0.98,
"numComments": 29,
"numCrossposts": 0,
"externalUrl": "https://i.redd.it/cjhezz5bs9mh1.jpeg",
"galleryImagesUrls": []
}

Example Comment Output

{
"submissionId": "p6lwobb",
"submissionIdPrefixed": "t1_p6lwobb",
"submissionType": "comment",
"submissionUrl": "https://www.reddit.com/r/Sat/comments/1w1gc8p/is_this_good_improvement_for_10_hours_of/p6lwobb/",
"submittedAt": "2026-08-29T13:41:52+00:00",
"parentId": "t3_1w1gc8p",
"parentPostId": "t3_1w1gc8p",
"parentPostUrl": "https://www.reddit.com/r/Sat/comments/1w1gc8p",
"postType": null,
"crosspostParentId": null,
"crosspostParentUrl": null,
"title": null,
"bodyText": "How did you do that in 10 hours? Can you please give me the sources that you used? I also need help in rw section and I’ll take the sat in 2 weeks",
"author": "AnalysisStill4932",
"depth": 0,
"postFlair": null,
"tags": [],
"subreddit": "r/Sat",
"score": 9,
"upvoteRatio": null,
"numComments": null,
"externalUrl": null,
"thumbnailUrl": null,
"galleryImagesUrls": []
}

Output Fields Explanation

  1. submissionId — [string] The ID of the post or comment.
  2. submissionIdPrefixed — [string] The prefixed ID of the post or comment.
  3. submissionType — [string] Whether the submission is a post or comment.
  4. submissionUrl — [string] The URL for the submission.
  5. submittedAt — [string] The date and time the post or comment was submitted in UTC timezone and ISO format.
  6. parentId — [string, null] The ID of the direct parent post or comment.
  7. parentPostId — [string, null] The ID of the parent post. For posts, this field will always be null since posts have no parent.
  8. parentPostUrl — [string, null] The URL of the parent post. For posts, this field will always be null since posts have no parent.
  9. postType — [string, null] The post type. Can be any of text, poll, link, image, gallery, or video. For comments, this field will always be null.
  10. crosspostParentId — [string, null] The ID of the parent of the crosspost (for posts that are not crossposts, will be null).
  11. crosspostParentUrl — [string, null] The URL of the parent of the crosspost (for posts that are not crossposts, will be null).
  12. title — [string, null] The post title (will always be null for comments).
  13. bodyText — [string, null] The main text content of a post or comment.
  14. author — [string] The author of the post or comment.
  15. depth — [integer, null] The comment depth (top-level comments have a depth of 0 and posts have a depth of null).
  16. postFlair — [string, null] The post flair (will be null for comments).
  17. tags — [array] A list of the tags for the post, such as Spoiler.
  18. subreddit — [string, null] The subreddit in which the post or comment was submitted.
  19. score — [integer, null] The vote score of the post or comment.
  20. upvoteRatio — [float, null] The ratio of upvotes to total number of votes of a post (always null for comments).
  21. numComments — [integer, null] The number of comments in a post (always null for comments).
  22. externalUrl — [string, null] The external URL in a post. For comments, this field will be null because external URLs will be included in the bodyText anyway.
  23. thumbnailUrl — [string, null] The thumbnail image URL for video, image, and gallery post types (always null for any other submission).
  24. galleryImageUrls — [array] A list of URLs for all images in a gallery (always empty for any submission other than gallery posts).

General Input Options

  1. Scraping Mode (scrapingMode) — The mode to use in your scraping run.
  2. Maximum Results (maxResults) — Maximum total number of posts and comments to scrape.
  3. Maximum Posts Per Collection (maxPostsPerCollection) — Maximum posts to scrape per subreddit, profile, keyword search query, or single domain search.
  4. Sort (sort) — The posts' sort option to use when scraping posts (default, hot, new, top-all-time, top-past-hour, top-today, top-past-week, top-past-month, or top-past-year). This option only applies when scraping subreddits or profiles.

Standard Mode Input Options

  1. Subreddit URLs (subredditUrls) — The URLs of the subreddits to be scraped.
  2. Post URLs (postUrls) — The URLs of specific posts to be scraped.
  3. Profile URLs (profileUrls) — The URLs of the profiles to be scraped.

If none of the 3 types of URLs are provided in the Standard Mode, the Actor will default to https://www.reddit.com/r/webscraping as a subreddit URL.

Keyword Search Mode Input Options

  1. Search Query (query) — The search query to use in keyword search (supports advanced keyword expressions).

Advanced Keyword Expressions

To use advanced keyword search index expressions, do the following:

  1. Make sure you are on the keywordSearch Mode.
  2. Type your query expression.

Example advanced expression: scrape AND reddit NOT (sad OR angry OR depressed)

The example advanced expression here tells the search engine to look for posts with both scrape and reddit keywords BUT NOT any of sad, angry, or depressed.

Caution: Use advanced expressions only if you know what you're doing.

Comments Scraping Input Options

  1. Include Comments (includeComments) — Whether or not to scrape comments (either true or false).
  2. Maximum Comments Depth (maxCommentsDepth) — The maximum depth of comments to scrape (an integer from 0 to 10, where 0 represents top-level comments only).
  3. Maximum Comments Per Post (maxCommentsPerPost) — The maximum total number of comments and replies to scrape PER POST.
  4. Maximum Top-Level Comments Per Post (maxTopCommentsPerPost) — The maximum top-level comments to scrape PER POST.

Frequently Asked Questions (FAQs)

Is this Reddit scraper free?

Yes! This Actor is free to use. Just configure your desired scraping options and run it. You will only be charged very small platform usage fees from your credits. These fees go to Apify, and I am not responsible for them, but the actual scraping and data are COMPLETELY FREE on my part. I don't get any revenue from this Actor, unlike most other Reddit Scraper Actors.

Do I need a Reddit API key?

No. No Reddit API credentials or API key are required.

What can I scrape?

You can scrape posts and comments from subreddits, Reddit profiles, or specific posts URLs. Additionally, you can scrape posts and comments by keywords or domains.

Can I scrape comments?

Yes. Enable includeComments to collect comments and replies, with configurable comment depth and limits.

What data does the scraper return?

The dataset includes post/comment text, authors, scores, timestamps, URLs, subreddits, flairs, post types, comment depth, engagement metrics, media URLs, and more.

Can I search Reddit by keyword?

Yes. Keyword Search Mode lets you find posts and comments across Reddit containing or excluding your specified keywords.

Changelog

October 20, 2026

  1. [REMOVAL] Remove domainSearch mode with its related inputs.
  2. [REMOVAL] Remove timeFrame input.
  3. [REMOVAL] Remove isCrosspost, isEdited, authorFlairText, authorFlairImageUrl, isNSFW (inside tags), imageUrl (will be the externalUrl), and videoUrl (will be the externalUrl) output fields.
  4. [ADDITION] Add top-all-time, top-past-hour, top-today, top-past-week, top-past-month, and top-past-year input sort options.
  5. [ADDITION] Add crosspost as a possible post type in the postType output field.
  6. [REPLACE] Replace both keywordsIncluded and keywordsExcluded input fields with a single query field.
  7. [REPLACE] Replace isNSFW output field with the tags field that already contains this tag as well as others like Spoiler.

October 16, 2026

  1. Fix keywordSearch mode bug that caused the scraper to stop at 7 results.

October 15, 2026

  1. Update scraper to circumvent Reddit's new anti-scraping measures.

October 7, 2026

  1. Fix crosspost parent URL and external URL bug.
  2. Update scraper architecture to keep up with the arms race.

September 30, 2026

  1. Remove time frame option for keyword search mode, since it causes results to be irrelevant. This behavior is seen even in manual Reddit browsing. Keyword search mode now will always use all-time as the time frame.

September 15, 2026

  1. Fix minor bug that caused occasional null post type for link posts.

September 11, 2026

  1. Fix major bug that caused the Actor to occasionally crash when scraping a gallery post.

September 5, 2026

  1. Fix minor bug that prevented video URLs from appearing in the Actor output.
  2. Fix minor bug that caused video thumbnails to be corrupt URLs.
  3. Fix major bug that caused the Actor to crash occasionally when there are image URLs without thumbnails.
  4. Fix incorrect comment parent post url.

September 4, 2026

  1. Enhance Keyword Search Mode to use Reddit's current search engine instead of the legacy search engine, leading to much more relevant search results.
  2. Update README to include instructions for using advanced keyword search expressions.
  3. Fix minor bug that prevented image URLs and thumbnails from appearing in the Actor output.

September 3, 2026

  1. Handle occasional, uncaught TimeoutErrors in scraper initialization.
  2. Fix Standard Mode bug that caused the scraper to hallucinate when provided any URLs other than subreddit URLs.