# Reddit Scraper (`scraperx/reddit-scraper`) Actor

🔎 Reddit Scraper (reddit-scraper) extracts posts, comments, authors, flair, upvotes & timestamps from subreddits and threads—fast, real-time & reliable. 📊 Perfect for social listening, market research, trend analysis & sentiment. ⚡ Clean JSON/CSV output. 🚀 API-ready.

- **URL**: https://apify.com/scraperx/reddit-scraper.md
- **Developed by:** [ScraperX](https://apify.com/scraperx) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### Reddit Scraper

The Reddit Scraper is a fast, reliable Reddit scraping tool that extracts public posts, comments, subreddit listings/metadata, and user activity via Reddit’s public JSON endpoints — no login required. It solves the need to scrape subreddit posts and download Reddit comments at scale for social listening, market research, and analytics. Built for marketers, developers, data analysts, and researchers, it works as a production-grade reddit comment scraper and reddit post scraper that plugs into your automation stack — from a reddit scraping script to a full reddit scraper python pipeline. Launch one-off runs or build always-on pipelines for Reddit data extraction at scale.

### What data / output can you get?

Below are real fields produced by this Reddit Scraper. During a run, it pushes per-type items (search, subreddit, post, user, subreddit_info) and finally a single aggregated object with metadata and segmented data. You can export results as JSON, CSV, or Excel from the Apify dataset UI (or via API).

| Data field | Description | Example value |
| --- | --- | --- |
| title | Post title included in search and subreddit listings | “Show HN: Simple Python scraper” |
| subreddit | Community where the post or comment belongs | “python” |
| author | Post or comment author (user) | “some_redditor” |
| score | Post/comment score | 342 |
| num_comments | Number of comments on a post | 57 |
| url | Canonical post URL | “https://www.reddit.com/r/python/comments/abc123/…” |
| permalink | Reddit permalink for posts and comments | “https://reddit.com/r/python/comments/abc123/…” |
| created_utc | Creation timestamp (UTC, seconds) | 1711987200 |
| upvote_ratio | Upvote ratio for a post (post items) | 0.95 |
| comments | Parsed comment tree for a post (top-level + nested replies up to depth) | [ { “id”: “c1”, “author”: “another_user”, … } ] |
| profile | User profile info (name, karma, created) | { “name”: “spez”, “total_karma”: 1000, … } |
| subreddit_info | Popular/new/specific subreddit metadata | { “popular”: [ { “name”: “python”, … } ], … } |

Notes:
- Bonus subreddit metadata includes: subscribers, active_users, created_utc, subreddit_type, url, icon_img, banner_img, community_icon.
- Results are exported to the run’s dataset. Download as JSON, CSV, or Excel, or access via the Apify API for downstream analytics and dashboards.

### Key features

- 🚀 Bulk URL ingestion & smart routing  
  Paste lists of post, subreddit, or user URLs. The actor detects each and runs the right module (post + comments, subreddit listing, or user profile) — a scalable subreddit scraper for batch jobs.

- 🔎 Powerful search with sort & time filters  
  Run keyword search across Reddit or within a community. Configure sortSearch (relevance, new, hot, top, comments) and timeFilter (hour, day, week, month, year, all) to target fresh or trending posts.

- 🧵 Post + comment tree parsing  
  Fetch full posts with parsed comment trees up to maxCommentDepth — ideal to scrape subreddit posts and download Reddit comments for sentiment and topic analysis.

- 👤 User profiles, submissions, and comments  
  Collect user profile (karma, created_utc), submitted posts, and comments — a reliable reddit comment scraper for user-level activity analysis.

- 🏷️ Subreddit listings & metadata  
  Scrape subreddit posts by sort (hot, new, top, rising, controversial) and enrich with subreddit_info (popular, new, and specific community metadata) for comprehensive Reddit web scraping.

- 🧰 Fine‑grained limits & pacing  
  Control maxItemsToSave, limitPostsPerPage, maxCommentDepth, maxItemsPerUser, and requestDelaySeconds to balance speed and reliability for your reddit scraping tool.

- 🌐 Automatic proxy fallback (no login needed)  
  Starts direct. On block or rate‑limit, it switches to Apify datacenter proxy; if still blocked, tries residential proxy with up to 3 retries — then continues with whichever works.

- 🧑‍💻 Developer‑friendly & automation‑ready  
  Plug the dataset into your workflows via the Apify API, whether you’re building a reddit scraper python integration, a node.js reddit scraper, or replacing a PRAW reddit scraper / pushshift reddit scraper with a no‑login alternative.

- 🧱 Production‑ready infrastructure  
  Built with resilient retries, pagination, and proxy strategy for reliable, continuous Reddit data extraction in pipelines.

### How to use Reddit Scraper - step by step

1. Sign up or log in to your Apify account.  
2. Open Apify Console → Actors → “Reddit Scraper” and click Try it.  
3. Add input:
   - Start URLs: paste Reddit post (/comments/…), subreddit (/r/…), and/or user (/user/…) URLs.
   - Or run keyword search: add Search Term(s) and set Ignore start URLs to search only; optionally add Community and set sort/time filters.
4. Configure toggles:
   - Enable subreddit posts / post + comments / user scraper / subreddit info as needed.
   - Use Skip comments or Skip user posts if you want to limit scope.
5. Set limits and depth:
   - maxItemsToSave, limitPostsPerPage, maxCommentDepth, maxItemsPerUser, and requestDelaySeconds.
6. Optional: Proxy Configuration
   - By default, the actor starts direct and auto‑fallbacks to datacenter → residential on blocks. You can preconfigure Apify Proxy if desired.
7. Run the actor.
   - Watch Logs for progress. The dataset will receive per‑type items during the run (e.g., type: “search”, “subreddit”, “post”, “user”, “subreddit_info”).
8. Download results.
   - Open the Dataset tab to export JSON/CSV/Excel or consume via the Apify API in your reddit scraping script or analytics stack.

Pro Tip: Chain this Reddit scraping tool with webhooks, Make/n8n, or your own API to power dashboards and enrichment — perfect for replacing a brittle reddit scraper GitHub script with a robust backend.

### Use cases

| Use case | Description |
| --- | --- |
| Market research — scrape subreddit posts | Analyze trends by collecting hot/new/top posts from target communities with scores, authors, and timestamps. |
| Conversation mining — reddit comment scraper | Parse comment trees from relevant posts to extract sentiment, themes, and FAQs for content strategy. |
| Competitive intelligence — export reddit posts | Track product discussions and feedback across subreddits over time and export to CSV/JSON for dashboards. |
| User activity analysis — download reddit comments | Aggregate a user’s submissions and comments to understand behaviors, interests, or reputation. |
| Academic studies — reddit data extraction | Build reproducible datasets across keywords and subreddits with controlled limits and time filters. |
| Data engineering — API pipeline | Use the Apify API to stream structured JSON into warehouses/lakes; orchestrate with n8n/Make/Zapier. |
| Brand monitoring — reddit web scraping | Schedule runs to monitor mentions and collect recent posts/comments for alerting and reporting. |

### Why choose Reddit Scraper?

This Reddit Scraper focuses on precision, scale, and reliability — everything you need for production Reddit web scraping.

- ✅ Accurate, structured output using Reddit’s public JSON endpoints
- 🌍 Scalable batch scraping (URLs + keyword search) with robust pagination
- 🔌 Developer access via Apify API; works seamlessly with reddit scraper python and node.js reddit scraper workflows
- 🧭 Flexible filters (sortSearch, timeFilter) and depth controls (maxCommentDepth)
- 🔒 No login required; collects only publicly available data
- 🛡️ Automatic proxy fallback (direct → datacenter → residential with retries) for resilience
- 💾 Easy export (JSON/CSV/Excel) for BI tools and downstream analytics

Compared to fragile browser extensions or ad hoc scripts, this production-ready reddit scraping script alternative delivers consistent, structured results without micromanagement.

### Is it legal / ethical to use Reddit Scraper?

Yes — when done responsibly. This actor fetches only public data and does not require login or access private content.

- Only public endpoints are used (Reddit’s public JSON format).
- Do not attempt to access private profiles or authenticated resources.
- Respect Reddit’s terms and rate limits; set requestDelaySeconds as needed.
- Ensure compliance with applicable data protection laws (e.g., GDPR/CCPA) and consult your legal team for your specific use.

### Input parameters & output format

#### Example JSON input
```json
{
  "startUrls": [
    "https://www.reddit.com/r/python/",
    "https://www.reddit.com/r/datascience/comments/abc123/example_post/"
  ],
  "skipComments": false,
  "skipUserPosts": false,
  "skipCommunity": false,
  "searchTerms": ["python scraping", "apify reddit"],
  "searchCommunity": "python",
  "ignoreStartUrls": true,
  "searchForPosts": true,
  "searchForComments": false,
  "searchForCommunities": false,
  "searchForUsers": false,
  "sortSearch": "new",
  "timeFilter": "all",
  "filterByDate": "",
  "enableSearch": true,
  "enableSubreddit": true,
  "sortSubreddit": "hot",
  "enablePost": true,
  "enableUser": true,
  "enableSubredditInfo": true,
  "maxItemsToSave": 10,
  "limitPostsPerPage": 10,
  "postDateLimit": "",
  "limitCommentsPerPage": 10,
  "limitCommunityPages": 2,
  "limitUserPages": 2,
  "pageScrollTimeout": 40,
  "maxCommentDepth": 5,
  "maxItemsPerUser": 20,
  "fetchUserProfile": true,
  "fetchUserSubmitted": true,
  "fetchUserComments": true,
  "fetchUserOverview": false,
  "fetchPopularSubreddits": false,
  "fetchNewSubreddits": false,
  "maxSubredditsInfo": 25,
  "requestDelaySeconds": 1,
  "proxyConfiguration": { "useApifyProxy": false }
}
````

Parameters

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| startUrls | array | Yes | — | One or more Reddit URLs to scrape. Bulk input supported. Accepts post (/comments/…), subreddit (/r/…), and user (/user/…) URLs. |
| skipComments | boolean | No | false | Do not fetch comments for post URLs. Only post-level data is collected. |
| skipUserPosts | boolean | No | false | Ignore user profile URLs; no user data scraped. |
| skipCommunity | boolean | No | false | Do not fetch subreddit/community metadata. |
| searchTerms | array | No | — | One or more search phrases. Used when in search mode (no Start URLs or Ignore start URLs enabled). |
| searchCommunity | string | No | — | Restrict search to a specific community (name without “r/”). |
| ignoreStartUrls | boolean | No | false | Ignore Start URLs and run search-only with Search Term(s). |
| searchForPosts | boolean | No | true | Include posts in search results. |
| searchForComments | boolean | No | false | Reserved for future use: include comments in the search scope. |
| searchForCommunities | boolean | No | false | Reserved for future use: include subreddits in the search scope. |
| searchForUsers | boolean | No | false | Reserved for future use: include users in the search scope. |
| sortSearch | string (enum) | No | "new" | Search ordering: relevance, new, hot, top, comments. |
| timeFilter | string (enum) | No | "all" | Search time window: hour, day, week, month, year, all. |
| filterByDate | string | No | — | Optional absolute or relative date filter (pattern-validated). |
| enableSearch | boolean | No | true | Run Reddit search when in search mode and Search Term(s) provided. |
| enableSubreddit | boolean | No | true | Process subreddit URLs for post listings by sort. |
| sortSubreddit | string (enum) | No | "hot" | Subreddit listing sort: hot, new, top, rising, controversial. |
| enablePost | boolean | No | true | Process post URLs for full post + comment tree. |
| enableUser | boolean | No | true | Process user profile URLs for profile, submitted posts, and comments. |
| enableSubredditInfo | boolean | No | true | Fetch subreddit metadata and optional popular/new lists. |
| maxItemsToSave | integer | No | 10 | Global maximum items to collect (applies where relevant). |
| limitPostsPerPage | integer | No | 10 | Max posts to fetch from a single subreddit listing. |
| postDateLimit | string | No | — | Only include posts on/after this date (YYYY-MM-DD). |
| limitCommentsPerPage | integer | No | 10 | Max comments per post. |
| limitCommunityPages | integer | No | 2 | Max listing pages per subreddit/community. |
| limitUserPages | integer | No | 2 | Max pages for user submitted posts and comments. |
| pageScrollTimeout | integer | No | 40 | Timeout (seconds) for page/scroll-related steps. |
| maxCommentDepth | integer | No | 5 | Maximum nested comment depth to parse (1–20). |
| maxItemsPerUser | integer | No | 20 | Max submitted posts and max comments per user. |
| fetchUserProfile | boolean | No | true | Fetch each user’s profile. |
| fetchUserSubmitted | boolean | No | true | Fetch posts submitted by each user. |
| fetchUserComments | boolean | No | true | Fetch comments made by each user. |
| fetchUserOverview | boolean | No | false | Also fetch overview and add a summary per user. |
| fetchPopularSubreddits | boolean | No | false | Fetch Reddit’s popular subreddits list for subreddit\_info.popular. |
| fetchNewSubreddits | boolean | No | false | Fetch new subreddits list for subreddit\_info.new. |
| maxSubredditsInfo | integer | No | 25 | Max subreddits to fetch for popular/new lists (1–100). |
| requestDelaySeconds | integer | No | 1 | Delay between HTTP requests (seconds). |
| proxyConfiguration | object | No | { "useApifyProxy": false } | Configure Apify Proxy. By default, runs direct and auto‑fallbacks on block. |

#### Example JSON output

During the run, the actor pushes per‑type items (search, subreddit, post, user, subreddit\_info) and finally a single aggregated object with metadata and segmented data.

```json
[
  {
    "type": "search",
    "query": "python scraping",
    "community": "python",
    "total": 2,
    "posts": [
      {
        "title": "Lightweight Python scraper",
        "subreddit": "python",
        "author": "some_redditor",
        "score": 120,
        "num_comments": 15,
        "url": "https://www.reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
        "permalink": "https://reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
        "created_utc": 1711987200
      }
    ]
  },
  {
    "type": "post",
    "postId": "abc123",
    "post": {
      "id": "abc123",
      "title": "Lightweight Python scraper",
      "author": "some_redditor",
      "subreddit": "python",
      "score": 120,
      "upvote_ratio": 0.95,
      "num_comments": 15,
      "created_utc": 1711987200,
      "url": "https://www.reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
      "permalink": "https://reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
      "is_self": true,
      "selftext": "Here is a simple example...",
      "link_flair_text": "Discussion",
      "over_18": false
    },
    "comments": [
      {
        "id": "c1",
        "author": "another_user",
        "body": "Nice approach!",
        "score": 10,
        "created_utc": 1711988200,
        "depth": 0,
        "replies": []
      }
    ],
    "total_comments_parsed": 1
  },
  {
    "metadata": {
      "timestamp": "2026-04-06T10:00:00Z",
      "config": {
        "maxItemsToSave": 10,
        "limitPostsPerPage": 10,
        "maxCommentDepth": 5
      }
    },
    "data": {
      "search": {
        "python scraping": {
          "total": 2,
          "posts": [
            {
              "title": "Lightweight Python scraper",
              "subreddit": "python",
              "author": "some_redditor",
              "score": 120,
              "num_comments": 15,
              "url": "https://www.reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
              "permalink": "https://reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
              "created_utc": 1711987200
            }
          ]
        }
      },
      "subreddit": {
        "python": {
          "total": 2,
          "posts": [
            {
              "title": "Show HN: Simple Python scraper",
              "author": "some_redditor",
              "score": 342,
              "num_comments": 57,
              "url": "https://www.reddit.com/r/python/comments/def456/show_hn_simple_python_scraper/",
              "permalink": "https://reddit.com/r/python/comments/def456/show_hn_simple_python_scraper/",
              "created_utc": 1711900800,
              "is_self": true,
              "selftext": "This is a demo..."
            }
          ]
        }
      },
      "posts": {
        "abc123": {
          "post": {
            "id": "abc123",
            "title": "Lightweight Python scraper",
            "author": "some_redditor",
            "subreddit": "python",
            "score": 120,
            "upvote_ratio": 0.95,
            "num_comments": 15,
            "created_utc": 1711987200,
            "url": "https://www.reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
            "permalink": "https://reddit.com/r/python/comments/abc123/lightweight_python_scraper/",
            "is_self": true,
            "selftext": "Here is a simple example...",
            "link_flair_text": "Discussion",
            "over_18": false
          },
          "comments": [
            {
              "id": "c1",
              "author": "another_user",
              "body": "Nice approach!",
              "score": 10,
              "created_utc": 1711988200,
              "depth": 0,
              "replies": []
            }
          ],
          "total_comments_parsed": 1
        }
      },
      "users": {
        "spez": {
          "profile": {
            "name": "spez",
            "link_karma": 500,
            "comment_karma": 500,
            "total_karma": 1000,
            "created_utc": 1200000000
          },
          "submitted": [
            {
              "title": "Announcement",
              "subreddit": "redditdev",
              "score": 100,
              "created_utc": 1711000000,
              "permalink": "https://reddit.com/r/redditdev/comments/xyz/announcement/"
            }
          ],
          "comments": [
            {
              "body": "Thanks everyone",
              "subreddit": "redditdev",
              "score": 42,
              "created_utc": 1711100000,
              "permalink": "https://reddit.com/r/redditdev/comments/xyz/announcement/"
            }
          ]
        }
      },
      "subreddit_info": {
        "popular": [
          {
            "name": "python",
            "title": "Python",
            "description": "News and discussions for Python.",
            "subscribers": 2500000,
            "active_users": 12000,
            "created_utc": 1143849600,
            "over_18": false,
            "subreddit_type": "public",
            "url": "https://reddit.com/r/python/",
            "icon_img": "https://styles.redditmedia.com/…",
            "banner_img": "https://styles.redditmedia.com/…",
            "community_icon": "https://styles.redditmedia.com/…"
          }
        ],
        "new": [],
        "specific": {
          "python": {
            "name": "python",
            "title": "Python",
            "description": "News and discussions for Python.",
            "subscribers": 2500000,
            "active_users": 12000,
            "created_utc": 1143849600,
            "over_18": false,
            "subreddit_type": "public",
            "url": "https://reddit.com/r/python/",
            "icon_img": "https://styles.redditmedia.com/…",
            "banner_img": "https://styles.redditmedia.com/…",
            "community_icon": "https://styles.redditmedia.com/…"
          }
        }
      }
    }
  }
]
```

Notes:

- Some fields are optional and may be missing/null depending on your settings. For example, “overview” appears only if fetchUserOverview is true; user “profile” is included only if fetchUserProfile is true; comment trees are included only if Skip comments is false.
- The final aggregated object does not include a “type” field; per‑type items do.

### FAQ

#### Do I need to log in to use this Reddit Scraper?

No. The actor uses Reddit’s public JSON endpoints and does not require login. It collects only publicly available data.

#### Can it scrape Reddit comments and full threads?

Yes. When Enable post + comments is on and Skip comments is false, the actor fetches full posts and parses the comment tree up to maxCommentDepth.

#### Can I restrict search to a specific subreddit?

Yes. Provide Search Term(s) and set Community (optional) to a subreddit name (without “r/”). You can also configure sortSearch and timeFilter to fine‑tune results.

#### How do I control the volume and depth of data?

Use maxItemsToSave (global cap), limitPostsPerPage for subreddit listings, maxCommentDepth for comment trees, and maxItemsPerUser for user activity. requestDelaySeconds helps manage rate limits.

#### How does proxy handling work if Reddit blocks requests?

The run starts direct. If blocked or rate‑limited, it automatically switches to Apify datacenter proxy. If that still fails, it tries residential proxy with up to 3 retries and continues with the first working option.

#### Can I export data for analysis?

Yes. Download results from the Dataset as JSON, CSV, or Excel, or consume via the Apify API. This makes it easy to export Reddit posts and download Reddit comments into your BI stack.

#### Is this a good alternative to PRAW or Pushshift?

Yes. If you need a no‑login backend for a reddit scraper python workflow, this actor is a strong alternative to maintaining a PRAW reddit scraper or pushshift reddit scraper. It uses Reddit’s public JSON endpoints and returns clean, structured JSON via API.

#### Can I integrate it with Node.js or Python?

Yes. Results are available via the Apify API, so you can consume them from a node.js reddit scraper, a reddit scraping script, or any backend that reads JSON.

### Final thoughts

Reddit Scraper is built for structured, scalable collection of Reddit posts, comment threads, subreddit listings/metadata, and user activity. With flexible filters, depth controls, and a resilient proxy strategy, it’s ideal for marketers, developers, analysts, and researchers. Connect it to your workflows via the Apify API — whether you run a reddit scraper python stack or a node.js reddit scraper — and start extracting smarter Reddit insights today, reliably and at scale.

# Actor input Schema

## `startUrls` (type: `array`):

One or more Reddit URLs to scrape. This field supports bulk input: use "+ Add" to add more URLs, "Bulk edit" to paste many at once, or "Text file" to upload a file with one URL per line. Accepted URL types: (1) Post URLs — any link containing /comments/ and a post ID (e.g. https://www.reddit.com/r/subreddit/comments/ABC123/title/); (2) Subreddit URLs — links to a community (e.g. https://www.reddit.com/r/python/); (3) User profile URLs — links to a user (e.g. https://www.reddit.com/user/username/). The actor detects the type of each URL and runs the appropriate scraper (post+comments, subreddit listing, or user profile). At least one Start URL is required unless you run in search-only mode with "Ignore start URLs" enabled.

## `skipComments` (type: `boolean`):

If enabled, the actor will not fetch comments for any post URLs. Only the post title, body, score, and other post-level data will be collected. Use this to speed up runs or reduce output size when you only need post content.

## `skipUserPosts` (type: `boolean`):

If enabled, any user profile URLs in Start URLs are ignored and no user data (profile, submitted posts, comments) is scraped. Subreddit and post URLs are still processed as usual.

## `skipCommunity` (type: `boolean`):

If enabled, the actor will not fetch subreddit/community metadata (e.g. description, subscriber count, creation date) for subreddits that appear in your Start URLs or in the subreddit info options. Post listings from those subreddits are still scraped when "Enable subreddit posts" is on.

## `searchTerms` (type: `array`):

One or more search phrases to run against Reddit. Use "+ Add" to add another term or "Bulk edit" to paste multiple lines. Each term is queried separately and results appear under the "search" key in the output, with the query as the key (e.g. "python programming"). Search is executed only when this array is non-empty and either you have no Start URLs or "Ignore start URLs" is enabled.

## `searchCommunity` (type: `string`):

Optional subreddit name without the "r/" prefix (e.g. python, learnprogramming). When set, search is restricted to this community only (Reddit's "search within subreddit" behaviour). Leave empty to search all of Reddit. Only has an effect when you have at least one Search Term.

## `ignoreStartUrls` (type: `boolean`):

When enabled, the actor does not scrape any Start URLs. Only search runs, using the Search Term(s) you provided. Useful when you want to run a search-only job (e.g. multiple keywords) without scraping specific posts or subreddits. You must provide at least one search term for the run to do anything.

## `searchForPosts` (type: `boolean`):

Include posts in search results. When on (default), search returns post listings matching your query. This is the primary search mode for this actor.

## `searchForComments` (type: `boolean`):

Reserved for future use: include comments in the search scope. Currently the actor focuses on post search.

## `searchForCommunities` (type: `boolean`):

Reserved for future use: include communities/subreddits in the search scope.

## `searchForUsers` (type: `boolean`):

Reserved for future use: include user profiles in the search scope.

## `sortSearch` (type: `string`):

Controls how Reddit search results are ordered. Options: relevance (best match to query), new (newest first), hot (trending), top (highest score), comments (most comments). Applies to all search terms in this run.

## `timeFilter` (type: `string`):

Restricts search results to a relative time window: hour (last 24h), day, week, month, year, or all (no time limit). This is Reddit's "t" parameter and affects which posts are included in search. Use "Filter by date" below for an absolute or custom relative date.

## `filterByDate` (type: `string`):

Optional filter to only include posts from a certain date onward. You can choose an absolute date (e.g. 2024-01-15) or a relative range (e.g. "3 days", "2 weeks", "1 month"). Leave empty to not filter by date. Applies to search and listing results where applicable.

## `enableSearch` (type: `boolean`):

When on, the actor will run Reddit search if you have provided Search Terms and are in search mode (no Start URLs or Ignore start URLs). When off, search is skipped even if search terms are present.

## `enableSubreddit` (type: `boolean`):

When on, any subreddit URLs in Start URLs (e.g. reddit.com/r/python) are scraped for their post listing (hot, new, etc.) up to the limits you set. When off, subreddit URLs are ignored.

## `sortSubreddit` (type: `string`):

How to order posts when fetching from each subreddit: hot (trending), new (newest first), top (highest score), rising (gaining traction), controversial.

## `enablePost` (type: `boolean`):

When on, any post URLs in Start URLs are scraped for the full post and its comment tree (unless "Skip comments" is enabled). When off, post URLs are ignored.

## `enableUser` (type: `boolean`):

When on, any user profile URLs in Start URLs are scraped for profile info, submitted posts, and comments (subject to "Skip user posts" and limit settings). When off, user URLs are ignored.

## `enableSubredditInfo` (type: `boolean`):

When on, the actor fetches metadata for subreddits: for subreddits from Start URLs and, if enabled below, popular/new subreddit lists. Metadata includes title, description, subscribers, creation date, etc. When off, no subreddit info is collected.

## `maxItemsToSave` (type: `integer`):

Global maximum number of items (e.g. posts, search results) the actor will collect across all sources. Helps control run duration and dataset size. Each scraper type respects this cap where applicable.

## `limitPostsPerPage` (type: `integer`):

Maximum number of posts to fetch from a single subreddit listing (e.g. one "hot" or "new" listing). Reddit returns up to 100 per request; lowering this reduces data per subreddit.

## `postDateLimit` (type: `string`):

If set, only posts created on or after this date (YYYY-MM-DD) are included. Use the date picker or enter a date. Leave empty to include all posts regardless of date.

## `limitCommentsPerPage` (type: `integer`):

Maximum number of comments to retrieve per post. Reddit returns comments in a tree; this limits how many are fetched per post to avoid very large responses.

## `limitCommunityPages` (type: `integer`):

For each subreddit/community URL, the maximum number of listing pages to paginate through (each page can contain up to the "Limit of posts" value). Use a low number (e.g. 2) for quick runs or higher for more coverage.

## `limitUserPages` (type: `integer`):

For each user profile URL, the maximum number of pages to fetch for submitted posts and comments. Each page contains multiple items; this cap controls how deep the actor goes into a user's history.

## `pageScrollTimeout` (type: `integer`):

Timeout in seconds for any page or scroll-related operations during scraping. If a request or scroll step takes longer than this, it may be aborted. Increase for slow networks.

## `maxCommentDepth` (type: `integer`):

Maximum depth of nested comment replies to parse. Depth 1 means only top-level comments; higher values include more nested threads. Reddit threads can be very deep; limiting depth keeps output manageable (1–20).

## `maxItemsPerUser` (type: `integer`):

Per user, the maximum number of submitted posts and the maximum number of comments to fetch. For example, 20 means up to 20 submitted posts and up to 20 comments per user profile.

## `fetchUserProfile` (type: `boolean`):

When on, fetch each user's profile (name, karma, created date). When off, only submitted posts and/or comments are fetched according to the toggles below.

## `fetchUserSubmitted` (type: `boolean`):

When on, fetch posts submitted by each user. When off, only profile and/or comments are fetched according to the other toggles.

## `fetchUserComments` (type: `boolean`):

When on, fetch comments made by each user. When off, only profile and/or submitted posts are fetched according to the other toggles.

## `fetchUserOverview` (type: `boolean`):

When on, in addition to profile, submitted posts, and comments, the actor fetches the user's combined overview and adds a summary (total items, posts count, comments count) to the user output. Slightly increases requests per user.

## `fetchPopularSubreddits` (type: `boolean`):

When on, the actor fetches Reddit's list of popular subreddits and adds them to the "subreddit\_info.popular" array in the output. The number of subreddits is capped by "Max subreddits (popular/new lists)" below.

## `fetchNewSubreddits` (type: `boolean`):

When on, the actor fetches recently created subreddits and adds them to "subreddit\_info.new" in the output. The number is capped by "Max subreddits (popular/new lists)" below.

## `maxSubredditsInfo` (type: `integer`):

When "Fetch popular subreddits" or "Fetch new subreddits" is enabled, this is the maximum number of subreddits to fetch for each of those lists. Does not affect metadata for subreddits from your Start URLs.

## `requestDelaySeconds` (type: `integer`):

Number of seconds to wait between consecutive HTTP requests to Reddit. A value of 1 or 2 can help avoid rate limiting (429). Set to 0 for no delay (faster but higher risk of blocks).

## `proxyConfiguration` (type: `object`):

Configure Apify Proxy for this run. By default the actor uses no proxy (direct connection to Reddit). If Reddit blocks or rate-limits the run, the actor will automatically try datacenter proxy, then residential proxy (up to 3 retries), and keep using the first one that works. Here you can optionally enable Apify proxy from the start (e.g. use Apify Proxy with a specific group) so all requests go through proxy immediately.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.reddit.com/r/pasta/comments/vwi6jx/pasta_peperoni_and_ricotta_cheese_"
  ],
  "skipComments": false,
  "skipUserPosts": false,
  "skipCommunity": false,
  "ignoreStartUrls": false,
  "searchForPosts": true,
  "searchForComments": false,
  "searchForCommunities": false,
  "searchForUsers": false,
  "sortSearch": "new",
  "timeFilter": "all",
  "enableSearch": true,
  "enableSubreddit": true,
  "sortSubreddit": "hot",
  "enablePost": true,
  "enableUser": true,
  "enableSubredditInfo": true,
  "maxItemsToSave": 10,
  "limitPostsPerPage": 10,
  "limitCommentsPerPage": 10,
  "limitCommunityPages": 2,
  "limitUserPages": 2,
  "pageScrollTimeout": 40,
  "maxCommentDepth": 5,
  "maxItemsPerUser": 20,
  "fetchUserProfile": true,
  "fetchUserSubmitted": true,
  "fetchUserComments": true,
  "fetchUserOverview": false,
  "fetchPopularSubreddits": false,
  "fetchNewSubreddits": false,
  "maxSubredditsInfo": 25,
  "requestDelaySeconds": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.reddit.com/r/pasta/comments/vwi6jx/pasta_peperoni_and_ricotta_cheese_"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperx/reddit-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://www.reddit.com/r/pasta/comments/vwi6jx/pasta_peperoni_and_ricotta_cheese_"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperx/reddit-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.reddit.com/r/pasta/comments/vwi6jx/pasta_peperoni_and_ricotta_cheese_"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraperx/reddit-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraperx/reddit-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reddit Scraper",
        "description": "🔎 Reddit Scraper (reddit-scraper) extracts posts, comments, authors, flair, upvotes & timestamps from subreddits and threads—fast, real-time & reliable. 📊 Perfect for social listening, market research, trend analysis & sentiment. ⚡ Clean JSON/CSV output. 🚀 API-ready.",
        "version": "0.1",
        "x-build-id": "saEebIdjiqpB61MzU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperx~reddit-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperx-reddit-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scraperx~reddit-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperx-reddit-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scraperx~reddit-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperx-reddit-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🔗 Start URLs",
                        "type": "array",
                        "description": "One or more Reddit URLs to scrape. This field supports bulk input: use \"+ Add\" to add more URLs, \"Bulk edit\" to paste many at once, or \"Text file\" to upload a file with one URL per line. Accepted URL types: (1) Post URLs — any link containing /comments/ and a post ID (e.g. https://www.reddit.com/r/subreddit/comments/ABC123/title/); (2) Subreddit URLs — links to a community (e.g. https://www.reddit.com/r/python/); (3) User profile URLs — links to a user (e.g. https://www.reddit.com/user/username/). The actor detects the type of each URL and runs the appropriate scraper (post+comments, subreddit listing, or user profile). At least one Start URL is required unless you run in search-only mode with \"Ignore start URLs\" enabled.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "skipComments": {
                        "title": "💬 Skip comments",
                        "type": "boolean",
                        "description": "If enabled, the actor will not fetch comments for any post URLs. Only the post title, body, score, and other post-level data will be collected. Use this to speed up runs or reduce output size when you only need post content.",
                        "default": false
                    },
                    "skipUserPosts": {
                        "title": "👤 Skip user posts",
                        "type": "boolean",
                        "description": "If enabled, any user profile URLs in Start URLs are ignored and no user data (profile, submitted posts, comments) is scraped. Subreddit and post URLs are still processed as usual.",
                        "default": false
                    },
                    "skipCommunity": {
                        "title": "🏘️ Skip community",
                        "type": "boolean",
                        "description": "If enabled, the actor will not fetch subreddit/community metadata (e.g. description, subscriber count, creation date) for subreddits that appear in your Start URLs or in the subreddit info options. Post listings from those subreddits are still scraped when \"Enable subreddit posts\" is on.",
                        "default": false
                    },
                    "searchTerms": {
                        "title": "🔎 Search Term",
                        "type": "array",
                        "description": "One or more search phrases to run against Reddit. Use \"+ Add\" to add another term or \"Bulk edit\" to paste multiple lines. Each term is queried separately and results appear under the \"search\" key in the output, with the query as the key (e.g. \"python programming\"). Search is executed only when this array is non-empty and either you have no Start URLs or \"Ignore start URLs\" is enabled.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchCommunity": {
                        "title": "🏘️ Community (optional)",
                        "type": "string",
                        "description": "Optional subreddit name without the \"r/\" prefix (e.g. python, learnprogramming). When set, search is restricted to this community only (Reddit's \"search within subreddit\" behaviour). Leave empty to search all of Reddit. Only has an effect when you have at least one Search Term."
                    },
                    "ignoreStartUrls": {
                        "title": "⏭️ Ignore start URLs",
                        "type": "boolean",
                        "description": "When enabled, the actor does not scrape any Start URLs. Only search runs, using the Search Term(s) you provided. Useful when you want to run a search-only job (e.g. multiple keywords) without scraping specific posts or subreddits. You must provide at least one search term for the run to do anything.",
                        "default": false
                    },
                    "searchForPosts": {
                        "title": "📝 Search for posts",
                        "type": "boolean",
                        "description": "Include posts in search results. When on (default), search returns post listings matching your query. This is the primary search mode for this actor.",
                        "default": true
                    },
                    "searchForComments": {
                        "title": "💬 Search for comments",
                        "type": "boolean",
                        "description": "Reserved for future use: include comments in the search scope. Currently the actor focuses on post search.",
                        "default": false
                    },
                    "searchForCommunities": {
                        "title": "🏘️ Search for communities",
                        "type": "boolean",
                        "description": "Reserved for future use: include communities/subreddits in the search scope.",
                        "default": false
                    },
                    "searchForUsers": {
                        "title": "👤 Search for users",
                        "type": "boolean",
                        "description": "Reserved for future use: include user profiles in the search scope.",
                        "default": false
                    },
                    "sortSearch": {
                        "title": "📊 Sort search",
                        "enum": [
                            "relevance",
                            "new",
                            "hot",
                            "top",
                            "comments"
                        ],
                        "type": "string",
                        "description": "Controls how Reddit search results are ordered. Options: relevance (best match to query), new (newest first), hot (trending), top (highest score), comments (most comments). Applies to all search terms in this run.",
                        "default": "new"
                    },
                    "timeFilter": {
                        "title": "⏱️ Time filter",
                        "enum": [
                            "hour",
                            "day",
                            "week",
                            "month",
                            "year",
                            "all"
                        ],
                        "type": "string",
                        "description": "Restricts search results to a relative time window: hour (last 24h), day, week, month, year, or all (no time limit). This is Reddit's \"t\" parameter and affects which posts are included in search. Use \"Filter by date\" below for an absolute or custom relative date.",
                        "default": "all"
                    },
                    "filterByDate": {
                        "title": "📅 Filter by date (Posts only)",
                        "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$|^$",
                        "type": "string",
                        "description": "Optional filter to only include posts from a certain date onward. You can choose an absolute date (e.g. 2024-01-15) or a relative range (e.g. \"3 days\", \"2 weeks\", \"1 month\"). Leave empty to not filter by date. Applies to search and listing results where applicable."
                    },
                    "enableSearch": {
                        "title": "🔍 Enable search",
                        "type": "boolean",
                        "description": "When on, the actor will run Reddit search if you have provided Search Terms and are in search mode (no Start URLs or Ignore start URLs). When off, search is skipped even if search terms are present.",
                        "default": true
                    },
                    "enableSubreddit": {
                        "title": "📰 Enable subreddit posts",
                        "type": "boolean",
                        "description": "When on, any subreddit URLs in Start URLs (e.g. reddit.com/r/python) are scraped for their post listing (hot, new, etc.) up to the limits you set. When off, subreddit URLs are ignored.",
                        "default": true
                    },
                    "sortSubreddit": {
                        "title": "📊 Subreddit listing sort",
                        "enum": [
                            "hot",
                            "new",
                            "top",
                            "rising",
                            "controversial"
                        ],
                        "type": "string",
                        "description": "How to order posts when fetching from each subreddit: hot (trending), new (newest first), top (highest score), rising (gaining traction), controversial.",
                        "default": "hot"
                    },
                    "enablePost": {
                        "title": "📝 Enable post + comments",
                        "type": "boolean",
                        "description": "When on, any post URLs in Start URLs are scraped for the full post and its comment tree (unless \"Skip comments\" is enabled). When off, post URLs are ignored.",
                        "default": true
                    },
                    "enableUser": {
                        "title": "👤 Enable user scraper",
                        "type": "boolean",
                        "description": "When on, any user profile URLs in Start URLs are scraped for profile info, submitted posts, and comments (subject to \"Skip user posts\" and limit settings). When off, user URLs are ignored.",
                        "default": true
                    },
                    "enableSubredditInfo": {
                        "title": "🏘️ Enable subreddit info",
                        "type": "boolean",
                        "description": "When on, the actor fetches metadata for subreddits: for subreddits from Start URLs and, if enabled below, popular/new subreddit lists. Metadata includes title, description, subscribers, creation date, etc. When off, no subreddit info is collected.",
                        "default": true
                    },
                    "maxItemsToSave": {
                        "title": "📦 Maximum number of items to be saved",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Global maximum number of items (e.g. posts, search results) the actor will collect across all sources. Helps control run duration and dataset size. Each scraper type respects this cap where applicable.",
                        "default": 10
                    },
                    "limitPostsPerPage": {
                        "title": "📄 Limit of posts scraped inside a single page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of posts to fetch from a single subreddit listing (e.g. one \"hot\" or \"new\" listing). Reddit returns up to 100 per request; lowering this reduces data per subreddit.",
                        "default": 10
                    },
                    "postDateLimit": {
                        "title": "📅 Post date limit",
                        "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^$",
                        "type": "string",
                        "description": "If set, only posts created on or after this date (YYYY-MM-DD) are included. Use the date picker or enter a date. Leave empty to include all posts regardless of date."
                    },
                    "limitCommentsPerPage": {
                        "title": "💬 Limit of comments scraped inside a single page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of comments to retrieve per post. Reddit returns comments in a tree; this limits how many are fetched per post to avoid very large responses.",
                        "default": 10
                    },
                    "limitCommunityPages": {
                        "title": "🏘️ Limit of Communities' pages scraped",
                        "minimum": 1,
                        "type": "integer",
                        "description": "For each subreddit/community URL, the maximum number of listing pages to paginate through (each page can contain up to the \"Limit of posts\" value). Use a low number (e.g. 2) for quick runs or higher for more coverage.",
                        "default": 2
                    },
                    "limitUserPages": {
                        "title": "👤 Limit of Users' pages scraped",
                        "minimum": 1,
                        "type": "integer",
                        "description": "For each user profile URL, the maximum number of pages to fetch for submitted posts and comments. Each page contains multiple items; this cap controls how deep the actor goes into a user's history.",
                        "default": 2
                    },
                    "pageScrollTimeout": {
                        "title": "⏳ Page scroll timeout (seconds)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Timeout in seconds for any page or scroll-related operations during scraping. If a request or scroll step takes longer than this, it may be aborted. Increase for slow networks.",
                        "default": 40
                    },
                    "maxCommentDepth": {
                        "title": "🌳 Max comment tree depth",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum depth of nested comment replies to parse. Depth 1 means only top-level comments; higher values include more nested threads. Reddit threads can be very deep; limiting depth keeps output manageable (1–20).",
                        "default": 5
                    },
                    "maxItemsPerUser": {
                        "title": "👤 Max items per user (posts/comments)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Per user, the maximum number of submitted posts and the maximum number of comments to fetch. For example, 20 means up to 20 submitted posts and up to 20 comments per user profile.",
                        "default": 20
                    },
                    "fetchUserProfile": {
                        "title": "👤 Fetch user profile",
                        "type": "boolean",
                        "description": "When on, fetch each user's profile (name, karma, created date). When off, only submitted posts and/or comments are fetched according to the toggles below.",
                        "default": true
                    },
                    "fetchUserSubmitted": {
                        "title": "📝 Fetch user submitted posts",
                        "type": "boolean",
                        "description": "When on, fetch posts submitted by each user. When off, only profile and/or comments are fetched according to the other toggles.",
                        "default": true
                    },
                    "fetchUserComments": {
                        "title": "💬 Fetch user comments",
                        "type": "boolean",
                        "description": "When on, fetch comments made by each user. When off, only profile and/or submitted posts are fetched according to the other toggles.",
                        "default": true
                    },
                    "fetchUserOverview": {
                        "title": "📋 Fetch user overview",
                        "type": "boolean",
                        "description": "When on, in addition to profile, submitted posts, and comments, the actor fetches the user's combined overview and adds a summary (total items, posts count, comments count) to the user output. Slightly increases requests per user.",
                        "default": false
                    },
                    "fetchPopularSubreddits": {
                        "title": "🔥 Fetch popular subreddits list",
                        "type": "boolean",
                        "description": "When on, the actor fetches Reddit's list of popular subreddits and adds them to the \"subreddit_info.popular\" array in the output. The number of subreddits is capped by \"Max subreddits (popular/new lists)\" below.",
                        "default": false
                    },
                    "fetchNewSubreddits": {
                        "title": "🆕 Fetch new subreddits list",
                        "type": "boolean",
                        "description": "When on, the actor fetches recently created subreddits and adds them to \"subreddit_info.new\" in the output. The number is capped by \"Max subreddits (popular/new lists)\" below.",
                        "default": false
                    },
                    "maxSubredditsInfo": {
                        "title": "🔢 Max subreddits (popular/new lists)",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "When \"Fetch popular subreddits\" or \"Fetch new subreddits\" is enabled, this is the maximum number of subreddits to fetch for each of those lists. Does not affect metadata for subreddits from your Start URLs.",
                        "default": 25
                    },
                    "requestDelaySeconds": {
                        "title": "⏳ Delay between requests (seconds)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of seconds to wait between consecutive HTTP requests to Reddit. A value of 1 or 2 can help avoid rate limiting (429). Set to 0 for no delay (faster but higher risk of blocks).",
                        "default": 1
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy Configuration",
                        "type": "object",
                        "description": "Configure Apify Proxy for this run. By default the actor uses no proxy (direct connection to Reddit). If Reddit blocks or rate-limits the run, the actor will automatically try datacenter proxy, then residential proxy (up to 3 retries), and keep using the first one that works. Here you can optionally enable Apify proxy from the start (e.g. use Apify Proxy with a specific group) so all requests go through proxy immediately."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
