Reddit Scraper avatar

Reddit Scraper

Pricing

from $1.00 / 1,000 dataset items

Go to Apify Store
Reddit Scraper

Reddit Scraper

Tap into the wealth of Reddit's data with our Reddit Scraper. Extract valuable insights from posts, subreddits, comments, and user data effortlessly. Simplify analysis and gain valuable insights from the diverse Reddit community with our user-friendly and efficient tool.

Pricing

from $1.00 / 1,000 dataset items

Rating

5.0

(10)

Developer

epctex

epctex

Maintained by Community

Actor stats

45

Bookmarked

1.8K

Total users

23

Monthly active users

21 hours

Issues response

37 minutes ago

Last modified

Share

Reddit Scraper is a commercial-grade Reddit API built for teams that require dependable, structured Reddit data without maintaining scraping infrastructure in-house. The actor allows you to scrape Reddit posts, Reddit comments, subreddits, Reddit users, and Reddit communities within a single job — either by running a Reddit search against any keyword, or by supplying the Reddit URLs your workflow already depends on.

This Reddit scraping solution is designed around two operating modes that can be executed independently or in combination. Keyword mode performs a Reddit search across posts, communities, or people. URL mode performs direct Reddit data extraction from landing feeds, subreddit pages, individual post pages, user profiles, and community pages. Because both modes accept input in the same run, a single execution can cover exploratory keyword research and targeted URL collection simultaneously.

Reddit Scraper Capabilities

The Reddit API supports the following features:

  • Search by keyword — Search Reddit for posts, communities, or people.
  • Scrape by URL — Provide direct links to landing feeds, subreddits, posts, user profiles, or communities.
  • Combine search and URLs — Run keyword search and direct URL scraping together in a single job.
  • Include comments — Pull full nested comment threads under any scraped post.
  • Sort and filter results — Sort by relevance, hot, top, new, or comments, and filter by time range.

Supported Reddit Data Sources

Reddit SourceHow to Target ItWhat It Covers
Reddit postssearch with searchMode: link, or direct post URLs in startUrlsIndividual Reddit posts returned by keyword search or direct link
SubredditsSubreddit URLs in startUrls, or /r/{subreddit}/aboutSubreddit post listings and subreddit information pages
Reddit communitiessearch with searchMode: srCommunity results matching your keyword
Reddit userssearch with searchMode: user, or user profile URLs in startUrlsPeople search results and user profile content
Reddit commentsincludeComments: trueFull nested comment threads attached to each scraped post
Landing feedsFeed URLs in startUrlsReddit landing feed listings

Who Can Use This Reddit Scraper

The Reddit Scraper is applicable wherever public Reddit discussion carries commercial or analytical value. Typical adopters include:

Market research and consumer insight teams. Run keyword-driven Reddit search across relevant time ranges to observe how a category, product, or need state is discussed in the user's own language, rather than through survey instruments.

Brand monitoring and communications functions. Track brand, competitor, and executive mentions across Reddit posts and comment threads, using the time filter to isolate a specific day, week, or month around a campaign or incident.

Product and UX organizations. Scrape subreddits where your product category is discussed and pull nested comment threads to surface recurring complaints, feature requests, and workaround behavior.

Academic and social science researchers. Collect reproducible Reddit datasets defined by subreddit, keyword, sort order, and time window, with explicit item caps for controlled sample sizes.

AI and machine learning teams. Assemble conversational corpora from Reddit posts and threaded comments for model training, evaluation, retrieval augmentation, and benchmarking.

SEO and content strategy teams. Identify the questions, terminology, and long-tail phrasing real users apply to a topic, and locate the communities where a topic holds sustained attention.

Investment research and financial analysis. Monitor sentiment-bearing discussion in finance-oriented subreddits with sort: new for time-sensitive coverage or sort: top for consensus positions.

Community and moderation teams. Retrieve subreddit information and post listings for reporting on community activity and growth.

Recruitment and talent research. Use searchMode: user to locate people discussing specific technologies, domains, or professional topics.

Journalists and OSINT analysts. Combine direct URL collection with keyword search to document how a story propagated across Reddit communities.

Pricing: Transparent Event-Based Costs

Pay only for what you scrape. No subscriptions, no hidden fees.

Event TypePriceWhat's Included
List Query$0.025 per search/listOne landing feed, subreddit, user posts list, or search
Comments Query$0.1 per post/user threadFull comment thread for one post or user, replies included, flat price regardless of size
Detail Query$0.003 per itemEach direct post URL or /r/{subreddit}/about
Dataset Items$0.001 per item storedFirst page (up to ~100 items) of each query included FREE on paid plans

Cost Examples

ScenarioChargesCalculationTotal Cost
1 search, 20 results1 list query$0.025 × 1$0.025
1 direct post URL1 detail query + 1 dataset item$0.003 + $0.001$0.004
1 direct post URL, with comments1 detail query + 1 comments query + 1 dataset item$0.003 + $0.1 + $0.001$0.104
1 user's comment history1 comments query$0.1 × 1$0.100
Community search, 25 results1 list query$0.025 × 1$0.025

Controlling Reddit Scraping Costs

The event-based model rewards precise job design. Four principles follow directly from the rate card:

  • Enable comments deliberately. A comments query is billed at $0.1 per post or user thread, which is the largest single line item in the model. Set includeComments: false when post-level data is sufficient.
  • Target high-value threads when comments are needed. The comments query price is flat regardless of thread size, so a thread with thousands of replies costs the same as one with a handful. Prioritise dense discussions.
  • Stay within the free first page where possible. On paid plans, the first page of each query — up to roughly 100 items — is included at no dataset-item cost. Jobs scoped to that range avoid per-item storage charges entirely.
  • Use direct URLs when you already have them. A detail query is $0.003 per item against $0.025 for a list query, so known post URLs and /r/{subreddit}/about endpoints are the economical path when discovery is not required.

Use maxItems and endPage to enforce hard ceilings on any run before scaling it. On the Free plan, maxItems is not user-adjustable — every demo run is capped at 10 items regardless of what you set (see Demo Mode). On paid plans, maxItems is respected up to your plan's own per-run ceiling, whichever is lower.

Demo Mode

Free-plan users can try this actor without a subscription. The limit is 5 runs per month and 10 items per run, and this cap overrides any maxItems value you provide — the Free plan does not let you scrape past 10 items per run. The API is not available on the Free plan. For unrestricted use, subscribe to a paid plan.

How to Use the Reddit Scraper

  1. Define your targets. Supply startUrls, search, or both. At least one is required.
  2. Select a search mode. Set searchMode to link for Reddit posts, sr for communities, or user for people.
  3. Apply sorting and time filters. Set sort to relevance, hot, top, new, or comments, and time to all, year, month, week, day, or hour.
  4. Decide on comments. Set includeComments: true only if nested comment threads are required, and account for the associated cost.
  5. Set volume limits. Apply maxItems and, where relevant, endPage. On the Free plan these are capped regardless of the value you set — see Demo Mode.
  6. Run a small test first. Execute a low-volume run to review the returned structure before committing to a large job.
  7. Scale. Increase limits once the output matches your requirements.

Input Parameters

FieldTypeDescriptionDefault
startUrlsarrayReddit URLs to scrape (feeds, subreddits, posts, users, or communities).[]
searchstringKeyword to search for on Reddit. Used together with searchMode, can be combined with startUrls.
searchModestringWhat the search returns: link (posts), sr (communities), or user (people).link
sortstringSort order for results: relevance, hot, top, new, or comments. Not every value applies everywhere.relevance
timestringTime range for post search: all, year, month, week, day, or hour.all
includeCommentsbooleanFetch comments for every scraped post and nest them under it.false
maxItemsnumberMaximum number of items to return. Respected on paid plans up to your plan's own cap; on the Free plan every run is capped at 10 items regardless of this value.unlimited
endPagenumberMaximum number of pages to fetch per start URL or search.unlimited
extendOutputFunctionstringFunction that returns fields merged into each output object.null
customMapFunctionstringFunction that takes each object as an argument and returns a mapped object.null

Input Examples

Search Reddit communities by keyword

{
"search": "apify",
"searchMode": "sr",
"maxItems": 20
}

Scrape recent Reddit posts on a topic

{
"search": "web scraping",
"searchMode": "link",
"sort": "new",
"time": "week",
"maxItems": 100
}

Scrape Reddit posts with full comment threads

{
"search": "data engineering",
"searchMode": "link",
"sort": "top",
"time": "month",
"includeComments": true,
"maxItems": 50
}

Combine direct Reddit URLs with a keyword search

{
"startUrls": ["https://www.reddit.com/r/datasets/"],
"search": "open dataset",
"searchMode": "link",
"sort": "relevance",
"endPage": 3
}

Find Reddit users discussing a topic

{
"search": "machine learning",
"searchMode": "user",
"maxItems": 25
}

Output Examples

Every scraped item is stored as a JSON object. The exact shape depends on what was scraped: posts, comments, communities, or users.

Post

{
"type": "post",
"inputSource": "https://www.reddit.com/r/webscraping/",
"id": "t3_1abcdef",
"url": "https://www.reddit.com/r/webscraping/comments/1abcdef/best_practices_for_scraping_reddit_in_2026/",
"title": "Best practices for scraping Reddit in 2026",
"flair": "Discussion",
"flairs": [
{ "type": "text", "text": "Discussion" }
],
"subreddit": "webscraping",
"subredditId": "t5_2r2gk",
"author": "data_nomad42",
"authorId": "t2_9f8g7h",
"authorFlair": null,
"text": "I've been scraping Reddit for a market research project and wanted to share a few lessons learned around rate limiting and pagination.",
"textHTML": "<div class=\"md\"><p>I've been scraping Reddit for a market research project and wanted to share a few lessons learned around rate limiting and pagination.</p></div>",
"gallery": [],
"score": 214,
"upvoteRatio": 0.94,
"isOriginal": true,
"createdAt": 1767283200,
"editedAt": false,
"isOver18": false,
"removedByCategory": null,
"commentCount": 37,
"awards": []
}

Comment

{
"type": "comment",
"id": "t1_kx9f2a1",
"url": "https://www.reddit.com/r/webscraping/comments/1abcdef/best_practices_for_scraping_reddit_in_2026/kx9f2a1/",
"author": "proxy_wizard",
"authorId": "t2_4k2j9x",
"authorFlair": null,
"isSubmitter": false,
"body": "Rotating residential proxies made the biggest difference for us, especially for the search endpoints.",
"bodyHTML": "<div class=\"md\"><p>Rotating residential proxies made the biggest difference for us, especially for the search endpoints.</p></div>",
"createdAt": 1767286800,
"editedAt": false,
"score": 42,
"parentId": "t3_1abcdef",
"postUrl": "https://www.reddit.com/r/webscraping/comments/1abcdef/best_practices_for_scraping_reddit_in_2026/",
"postTitle": "Best practices for scraping Reddit in 2026",
"postId": "t3_1abcdef",
"subreddit": "webscraping",
"subredditId": "t5_2r2gk",
"awards": [],
"replies": [
{
"id": "t1_kx9g8b3",
"author": "data_nomad42",
"isSubmitter": true,
"body": "Good call, we saw the same thing once we hit a few hundred requests.",
"bodyHTML": "<div class=\"md\"><p>Good call, we saw the same thing once we hit a few hundred requests.</p></div>",
"createdAt": 1767290400,
"editedAt": false,
"score": 15,
"parentId": "t1_kx9f2a1",
"postId": "t3_1abcdef",
"subreddit": "webscraping"
}
]
}

Community

{
"type": "community",
"inputSource": "https://www.reddit.com/r/webscraping/about",
"id": "t5_2r2gk",
"url": "https://www.reddit.com/r/webscraping/",
"name": "webscraping",
"title": "Web Scraping",
"icon": "https://styles.redditmedia.com/t5_2r2gk/styles/communityIcon_abc123.png",
"subscribers": 128430,
"bannerImage": "https://styles.redditmedia.com/t5_2r2gk/styles/bannerBackgroundImage_def456.jpg",
"subredditType": "public",
"headerTitle": "Web Scraping",
"publicDescription": "A community for discussing web scraping techniques, tools, and best practices.",
"publicDescriptionHTML": "<div class=\"md\"><p>A community for discussing web scraping techniques, tools, and best practices.</p></div>",
"description": "Rules:\n1. Be respectful\n2. No piracy requests\n3. Search before posting",
"submitText": null,
"createdAt": 1451606400,
"submissionType": "any",
"allowedMediaInComments": ["giphy", "image"],
"hideCommentScoreForMins": 0
}

User

{
"type": "user",
"inputSource": "https://www.reddit.com/user/data_nomad42/",
"id": "t2_9f8g7h",
"url": "https://www.reddit.com/user/data_nomad42/",
"name": "data_nomad42",
"title": "data_nomad42",
"publicDescription": "Market researcher turned data hoarder.",
"icon": "https://styles.redditmedia.com/t2_9f8g7h/styles/profileIcon_ghi789.png",
"commentKarma": 18452,
"linkKarma": 6210,
"description": "Market researcher turned data hoarder.",
"createdAt": 1420070400,
"isGold": false,
"isMod": false,
"isOver18": false,
"isVerified": true,
"hasVerifiedEmail": true,
"isEmployee": false,
"acceptsFollowers": true
}

During the Run

The actor outputs messages as it progresses through each page, URL, or search. If you provide incorrect input, such as leaving both startUrls and search empty, the actor will stop immediately with an explanation of what went wrong.

Frequently Asked Questions

What can the Reddit Scraper collect? The actor collects Reddit posts, Reddit communities, Reddit users, and nested Reddit comment threads, sourced through keyword search, direct URLs, or both in the same run.

Can I scrape Reddit comments? Yes. Set includeComments: true and full nested comment threads are pulled and nested under each scraped post. Comment retrieval is billed as a comments query at $0.1 per post or user thread.

Can I run a keyword search and direct URLs in one job? Yes. search and startUrls can be supplied together in a single run. At least one of the two must be provided.

How do I search for subreddits rather than posts? Set searchMode to sr. The search then returns communities matching your keyword instead of posts.

How do I find Reddit users? Set searchMode to user. The search returns people rather than posts or communities.

How do I restrict results to a recent time period? Use the time parameter, which accepts all, year, month, week, day, or hour for post search.

Which sort orders are available? Relevance, hot, top, new, and comments. Not every value applies everywhere, so the effective sort depends on what you are targeting.

How do I cap the volume of a run? maxItems sets the maximum number of items returned and is unlimited by default. endPage sets the maximum number of pages fetched per start URL or search. On the Free plan, maxItems is fixed at 10 regardless of what you set — see Demo Mode.

Can I customise the output? Yes. extendOutputFunction returns fields that are merged into each output object, and customMapFunction takes each object as an argument and returns a mapped object.

Is there a free way to test the Reddit Scraper? Yes. Demo Mode allows free-plan users to run the actor without a subscription, limited to 5 runs per month and 10 items per run.

Is API access included on the Free plan? No. The API is not available on the Free plan. A paid plan is required for API access and unrestricted use.

Does a large comment thread cost more than a small one? No. The comments query is a flat $0.1 per post or user thread, replies included, regardless of thread size.

Are dataset items always charged? Dataset items are $0.001 per item stored, and on paid plans the first page of each query — up to approximately 100 items — is included free.

What happens if my input is invalid? The actor stops immediately and returns an explanation of the problem. Leaving both startUrls and search empty is one such case.

Support and Custom Integrations

Please visit us through epctex.com to see all available products. For custom integrations, reach out via the chat box on epctex.com. For support: business@epctex.com.