Reddit Posts Scraper
Pricing
from $0.80 / 1,000 results
Reddit Posts Scraper
Scrape posts from any subreddit on Reddit. Get titles, body text, images, videos, upvotes, comment counts, flair, author info, crossposts, and thumbnails. Sort by hot, new, top, rising, or controversial. Filter by date and NSFW. Deep scrape all sorts at once. No login or cookies needed.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrape Smith
Maintained by CommunityActor stats
1
Bookmarked
18
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Reddit Posts Scraper — Subreddit Posts and Community Data
Export public subreddit posts with titles, text, scores, comment counts, author names and available media. Compare communities, follow new discussions or collect top posts for research.
Quick start
- Open an example below or enter your own public Reddit targets.
- Choose a per-target result limit and
maxItemsfor the whole run. - Run the Actor and export the dataset as JSON, CSV or Excel.
{"subreddits": ["Python"],"sort": "new","maxPostCount": 20,"maxItems": 20}
Example tasks
Copy a ready-to-use configuration and customize its targets or limits:
- Monitor recent Python posts on Reddit
- Find top technology posts from the past week
- Research small business questions on Reddit
- Compare posts across developer communities
- Discover rising gaming discussions on Reddit
- Export public Reddit community metadata and posts
Inputs
| Input | Type | Purpose |
|---|---|---|
subreddits | array | Subreddit names to scrape (without the r/ prefix, e.g. 'python'). |
sort | string | Sort order for posts. Ignored if 'Scrape all sorts' is enabled. |
time | string | Time period for 'top' and 'controversial' sorts. |
maxPostCount | integer | Maximum number of posts to collect per subreddit (per sort, if 'Scrape all sorts' is enabled). |
postDateLimit | string | Only collect posts newer than this date (format YYYY-MM-DD). Leave empty to disable. Forces sort to 'new'. |
scrapeAllSorts | boolean | Scrape every sort (hot, new, top for all time periods, controversial, rising) for each subreddit instead of just one sort. |
includeNSFW | boolean | Include posts marked as NSFW/over 18. |
includeCommunityInfo | boolean | Include one extra item per subreddit with community metadata (subscriber count, description, icons, etc.). Costs one additional request per subreddit. |
maxItems | integer | Maximum total dataset rows across all inputs, including any profile, community or original-post rows. |
Output fields
| Field | Description |
|---|---|
id / parsedId | Reddit's internal post ID |
url | Direct link to the post |
username | Post author |
title | Post title |
communityName | Subreddit name (e.g. r/python) |
subredditSubscribers | Subscriber count of the subreddit |
body | Post text content (self-posts) |
html | Rendered HTML of the post body |
link | External link (for link posts) |
domain | Source domain of the linked content |
numberOfComments | Total comment count |
numberOfCrossposts | Number of times the post was crossposted |
flair | Post flair tag |
authorFlair | Author's flair in the subreddit |
upVotes / upVoteRatio | Post score and like ratio |
isSelf / isVideo / isStickied / isLocked / isSpoiler / isOriginalContent | Post type flags |
over18 | NSFW flag |
videoUrl, videoDuration, videoWidth, videoHeight | Video metadata (if applicable) |
thumbnailUrl, thumbnailWidth, thumbnailHeight | Thumbnail metadata |
imageUrls | Array of image URLs (galleries and previews) |
createdAt | Post creation timestamp (ISO format) |
scrapedAt | Time the data was scraped |
dataType | post or community |
Optional fields depend on the record type and what Reddit makes public. Deleted authors, unavailable media and absent profile details can have empty values. Scores and comment counts are snapshots, not permanent totals.
API, MCP and AI workflows
Use the Actor through the Apify API or select it in the Apify MCP server. An AI agent can supply the same JSON inputs shown above, then use the returned dataset for summarization, classification or research. Sentiment analysis and summaries are downstream tasks; this Actor returns source data.
Connect datasets to n8n, Make, Zapier or your own Python and JavaScript workflows. Use Apify schedules for recurring runs and webhooks to trigger processing after completion. ChatGPT, Claude and LangChain workflows can consume the exported data through their configured integrations.
Limits and frequently asked questions
Do I need a Reddit account? No Reddit login or personal Reddit API key is required. Apify API calls require your own Apify token.
How many results can I collect? The free allowance is 25 dataset rows. Paid runs honor your input and platform result limits, with a 100,000-row dataset ceiling. Per-target limits do not override the total cap. Set your Apify run timeout and budget to suit the job.
Does a requested maximum guarantee that many rows? No. Public availability, source pagination, filtering, duplicate removal and deleted content can reduce the count. This is not a complete historical archive.
Are results unique? IDs are deduplicated across the inputs in a run. Separate new runs can return the same records; use their IDs when maintaining a historical database.
Can bulk runs continue while producing results? Yes. There is no fixed internal runtime, request-count or page-count cutoff. Requested result limits still apply. Repeated failures, unavailable data or pagination without progress stop collection while preserving confirmed results.
What does resume mean? Saved checkpoints support continuation of the same run. Starting a fresh run creates a new dataset and does not automatically resume an older run.
What is the price? Check the current Pricing tab on this Actor. Your plan, result allowance and run budget determine which limits apply.