Reddit Scraper | All in one avatar

Reddit Scraper | All in one

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Reddit Scraper | All in one

Reddit Scraper | All in one

Scrape Reddit posts, comments, subreddits, and user profiles. Extract engagement metrics, media, nested comment threads, and 35+ data fields. Filter by date, score, NSFW, and media.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeForge

ScrapeForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Reddit Scraper ๐Ÿค–

Scrape Reddit posts, comments, subreddits, search results, and user profiles โ€” fast, at scale, and without a Reddit API key or login. Extract engagement metrics, media URLs, nested comment threads, and 35+ structured fields from any public Reddit content.

Perfect for market research, brand monitoring, sentiment analysis, trend tracking, lead generation, and feeding LLMs/RAG pipelines with real Reddit discussions.

Why this scraper

  • ๐Ÿ”‘ No API key, no Reddit account โ€” just run it.
  • โšก Fast & concurrent โ€” processes posts in parallel; a lightweight metadata-only mode for cheap, high-speed monitoring.
  • ๐Ÿ”Ž Deep search coverage โ€” returns several times more results per query than a basic search.
  • ๐Ÿ’ฌ Full comment threads โ€” nested replies, optionally flattened into one row per comment.
  • ๐Ÿงฑ 35+ structured fields per post, ready for analysis or the API/MCP.
  • ๐Ÿ’ธ Transparent, low cost โ€” pay only for what you scrape.

What you can scrape

SourceHow
Subreddit postssubreddits: ["technology"]
Search across RedditsearchTerms: ["machine learning"]
User posts & commentsusernames: ["spez"]
Any Reddit URLstartUrls โ€” posts, subreddits, users, or search URLs

Two modes: tune speed vs. depth

Full mode (default)Fast mode
SetfetchPostDetails: truefetchPostDetails: false
Getstitle, body text, upvote ratio, media, all fieldspost metadata only (title, score, author, dates, flags, media) โ€” no body/ratio
Speed / costone extra request per postmetadata only โ†’ much faster & cheaper
Best forfull analysishigh-volume monitoring, dashboards

Comments are a separate switch โ€” turn on scrapeComments to extract them (each comment is a billed result and its own row). See the Comments section below.

Input

Scraping sources (use one or combine)

FieldTypeDescription
subredditsstring[]Subreddit names (without r/ prefix)
searchTermsstring[]Keywords to search across Reddit
usernamesstring[]Reddit usernames (without u/ prefix)
startUrlsURL[]Direct Reddit URLs (posts, subreddits, users, search)

Scope, sorting & coverage

FieldTypeDefaultDescription
maxItemsinteger100Max posts per source (1โ€“10,000)
sortstringhothot, new, top, rising, relevance, comments
timeFilterstringallTime range for top/search: hour, day, week, month, year, all
maximizeCoveragebooleantrueFor searches, gather results more thoroughly and de-duplicate โ†’ many more posts per query

Comments

FieldTypeDefaultDescription
scrapeCommentsbooleanfalseTurn ON to extract comments. Each comment is a billed result and its own row (linked to its post). OFF = comments are never fetched (no cost)
maxCommentsinteger100Max comments per post (only when scrapeComments is ON)
commentDepthinteger3Max depth of nested replies, 1โ€“20 (only when scrapeComments is ON)

Filters

FieldTypeDefaultDescription
startDatestringโ€”Only posts after this date (YYYY-MM-DD)
endDatestringโ€”Only posts before this date (YYYY-MM-DD)
minScoreintegerโ€”Minimum post score
includeNSFWbooleanfalseInclude NSFW posts
mediaOnlybooleanfalseOnly posts with images, videos, or galleries

Performance & advanced

FieldTypeDefaultDescription
fetchPostDetailsbooleantrueFetch full post detail (body, upvote ratio, comments). Turn off for fast, cheap metadata-only runs
maxConcurrencyinteger5How many posts to process in parallel (1โ€“20)
customMapFunctionstringโ€”JavaScript to transform each result. Receives post, must return an object

Output

Each post is one dataset item with 35+ fields:

{
"id": "1abc123",
"title": "Post title",
"text": "Post body text",
"url": "https://www.reddit.com/r/technology/comments/1abc123/...",
"author": "username",
"authorFullname": "t2_abc",
"subreddit": "technology",
"score": 15432,
"upvoteRatio": 0.95,
"numComments": 892,
"postType": "image",
"createdAt": "2026-04-15T10:30:00.000Z",
"domain": "i.redd.it",
"isNSFW": false,
"hasMedia": true,
"media": [{ "type": "image", "url": "https://i.redd.it/...jpeg" }],
"linkFlair": "Discussion",
"comments": [
{ "author": "commenter", "body": "Comment text", "score": 523, "depth": 0, "isOP": false, "replies": [] }
]
}

Field groups: core (id, title, text, author, subreddit, permalink, createdAt, postType, domain, linkUrl) ยท engagement (score, upvoteRatio, numComments, numCrossposts, totalAwards) ยท media (thumbnail, media[], hasMedia, hasVideo, hasImage, isGallery) ยท flags (isNSFW, isSpoiler, isStickied, isLocked, isArchived, isSelf) ยท flair (linkFlair, authorFlair) ยท metadata (subredditSubscribers, sourceType, sourceQuery, scrapedAt).

With scrapeComments: true, each comment becomes its own billed row (itemType: "comment") carrying body, author, score, depth, isOP, plus postId/postTitle/subreddit to link it back to its post โ€” ideal for exporting a flat comment list.

Examples

Top posts from a subreddit (last week):

{ "subreddits": ["technology"], "maxItems": 50, "sort": "top", "timeFilter": "week" }

Search Reddit, maximum coverage:

{ "searchTerms": ["benq monitor"], "maxItems": 300, "sort": "relevance", "maximizeCoverage": true }

A post with its comments (each comment a billed row):

{ "startUrls": ["https://www.reddit.com/r/AskReddit/comments/1abc123/title/"], "scrapeComments": true, "maxComments": 100 }

Posts + comments as a flat list:

{ "subreddits": ["buildapc"], "maxItems": 50, "scrapeComments": true, "maxComments": 100 }

Fast, cheap monitoring (metadata only):

{ "subreddits": ["worldnews"], "maxItems": 500, "fetchPostDetails": false, "sort": "new" }

Tips on speed & cost

  • Don't need body text? Set fetchPostDetails: false โ€” dramatically faster and cheaper (no per-post fetch).
  • Need comments? Turn on scrapeComments โ€” each comment is a billed row. Set maxComments sensibly (e.g. 50โ€“200); cost scales with how many comments you pull.
  • Want more results from a search? Keep maximizeCoverage: true and raise maxItems.
  • Raise maxConcurrency (e.g. 8โ€“10) for more speed, or lower it to be gentler.

Limitations

  • Scrapes public content only. Private or quarantined subreddits return an error.
  • upvoteRatio and post body text require fetchPostDetails: true; comments require scrapeComments: true.
  • Very large comment threads may not return every single nested reply.
  • subredditSubscribers and award counts are best-effort and may be 0 when not exposed.

Disclaimer

This actor accesses publicly available data from Reddit and is provided for research and educational purposes. By using it you agree to comply with Reddit's User Agreement and all applicable laws. You are solely responsible for how the collected data is used. Always respect rate limits and the privacy of Reddit users.