# Fast Reddit Scraper ($2/1k): Cheap & Bulk Data (`practicaltools/apify-reddit-api`) Actor

The most affordable Reddit scraper on the store. 60% cheaper than the competition. Perfect for training AI models, bulk historical data, and sentiment analysis.

- **URL**: https://apify.com/practicaltools/apify-reddit-api.md
- **Developed by:** [Practical Tools](https://apify.com/practicaltools) (community)
- **Categories:** Developer tools, Social media
- **Stats:** 907 total users, 231 monthly users, 93.5% runs succeeded, 36 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 item prices

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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

⚠️ Need Daily Alerts? If you are trying to monitor keywords for leads, this actor might fetch duplicates. For "Smart Monitoring" (New posts only + Negative Keywords), use our [Reddit Keyword Monitor](https://apify.com/practicaltools/reddit-keyword-monitor) instead.

#### 🚀 Choose the Right Tool for Your Needs

| Feature | ⚡ Fast Reddit Scraper (API) | 🧠 Smart Lead Monitor |
| :--- | :--- | :--- |
| **Best For** | Bulk Data / AI Training | Lead Gen / Brand Alerts |
| **Price** | **Lowest ($2/1k)** | Premium Logic |
| **Deduplication** | ❌ (Raw Dump) | ✅ **Auto-Deduplication** |
| **Filters** | Basic | **Advanced (Negative Keywords)** |
| **State** | Stateless | **Stateful (Remembers history)** |
| **Link** | [Get Raw Data →](#how-to-use) | [Find Leads →](https://apify.com/practicaltools/reddit-keyword-monitor) |


## Reddit API Actor

This Apify Actor lets you extract data from Reddit using Reddit's official OAuth2 API (no end-user login required). It enables you to scrape posts, comments, and user info from Reddit communities, posts, and user profiles—without end-user authentication or API key setup.

### What does this Actor do?

- Scrape subreddits (communities) and get top/new/hot posts
- Extract Reddit posts with title, text, username, number of comments, votes, and media
- Get Reddit comments, timestamps, points, usernames, post and comment URLs
- Scrape user details, their most recent posts, and comments
- Sort scraped data by Relevance, Hot, Top, or New
- Scrape by specific Reddit URLs or by keyword search

### What data can you extract?

- Subreddit details: name, number of members, description, URL
- Reddit posts: title, text, username, votes, media, timestamps
- Reddit comments: body, username, upvotes, timestamps, parent/post info
- User details: profile info, karma, recent posts/comments

### Why Choose This Actor?
- **Half the price of competitors** – Only **$0.002 per result** ($2 per 1,000), compared to $4 per 1,000 elsewhere.
- **Fair billing** – Pay only for the actual results you receive. No per-run or start fees.
- **Official Reddit API** – 100% compliant, stable, and reliable.
- **Super fast** – Uses the API, not scraping, so you get results in seconds.
- **Transparent** – Costs scale linearly with data volume. Easy to predict, no surprises.
- **Developer-friendly** – Clean JSON output, well-structured schema, and easy integration.

## Pricing

Our pricing is simple, transparent, and **Minimum 4× cheaper than competitors**.

**Pay-As-You-Go:**
- $2.00 per 1,000 results stored (posts, comments, users, or communities)
- No per-run fees — you only pay for the data you actually get
- First 1,000 results per month free


**How it works:**
- You are charged for the number of items returned (posts, comments, users, communities) per run.
- At the end of each run, the actor counts the results and charges accordingly.
- Example: If your run returns 10,000 results, you pay $20 (first 1,000/month are free).

**Why this model?**
- Fair: You don't pay just to start an actor.
- Predictable: Costs scale linearly with results.
- Efficient: Built on Reddit's official API, not scraping, so you get reliable data.

**Competitor Comparison:**
- Most competitors charge $4.00+ per 1,000 results, plus per-run fees.
- Our actor: $2.00 per 1,000 results, no per-run fees.


### How it works

The actor has two modes that can be used independently or together:

#### Mode 1: Start URLs (direct scraping)

Provide one or more Reddit URLs. The actor detects the URL type and acts accordingly:

| URL type | What you get |
|---|---|
| `reddit.com/r/python/` | Posts from the subreddit feed + optional community metadata |
| `reddit.com/r/python/comments/abc123/` | That specific post + its comments (with nested replies) |
| `reddit.com/user/someuser/` | User profile + their recent posts |

#### Mode 2: Search Queries

Provide one or more search queries. Each runs independently and searches **all of Reddit** by default. Use the search type flags to control what kinds of results you get:

> **Tip:** wrap a query in quotes for exact phrase matching — `"web scraping"` only matches that exact phrase, while `web scraping` matches posts containing both words anywhere.

- **Search Posts** — posts whose title or body matches the keyword *(on by default)*
- **Search Comments** — comments whose body contains the keyword (works by finding relevant posts and then filtering their comments)
- **Search Communities** — subreddits matching the keyword
- **Search Users** — Reddit accounts matching the keyword

#### Combining both

If you provide a **subreddit URL + a search query together**, the search is scoped to that subreddit instead of all of Reddit. This is equivalent to using Reddit's search-within-subreddit feature.

> Post and user URLs are always fetched directly, regardless of search queries.

#### Getting comments alongside posts

By default, posts returned from a subreddit feed or keyword search include only metadata (title, upvote count, number of comments, etc.) — not the actual comments. To get comments embedded in each post result, enable **Fetch Comments for Each Post**. Note this makes one extra API call per post.

---

### How to use

1. Add Reddit URLs to **Start URLs** and/or keywords to **Search Queries**
2. Configure sort order, time filter, max items, and any skip/fetch options
3. Run the Actor on Apify or locally with `apify run`
4. Download results in JSON, CSV, XML, or Excel format

### Example inputs

**Scrape a subreddit feed:**
```json
{
  "startUrls": [{ "url": "https://www.reddit.com/r/javascript/" }],
  "sort": "hot",
  "maxItems": 50,
  "skipCommunity": true
}
````

**Search for posts and their comments:**

```json
{
  "searches": ["web scraping"],
  "searchPosts": true,
  "searchComments": true,
  "fetchPostComments": true,
  "sort": "relevance",
  "time": "month",
  "maxItems": 25
}
```

**Search within a specific subreddit:**

```json
{
  "startUrls": [{ "url": "https://www.reddit.com/r/python/" }],
  "searches": ["web scraping"],
  "searchPosts": true,
  "sort": "relevance",
  "maxItems": 25
}
```

**Fetch a post with all its comments:**

```json
{
  "startUrls": [{ "url": "https://www.reddit.com/r/python/comments/abc123/some_post/" }],
  "skipComments": false
}
```

**Scrape a user profile:**

```json
{
  "startUrls": [{ "url": "https://www.reddit.com/user/someuser/" }],
  "skipUserPosts": false,
  "maxItems": 50
}
```

#### A note on `maxItems`

`maxItems` is a **per-job** limit. Each URL and each search query is a separate job, so total output can be higher than `maxItems`. For example, two search queries with `maxItems: 25` can return up to 50 posts total.

### Example output

```json
[
    {
        "id": "1o54rpqv4d",
        "url": "https://www.reddit.com/user/PlebbitOG/",
        "username": "PlebbitOG",
        "userIcon": "https://styles.redditmedia.com/t5_ear3qt/styles/profileIcon_5dyhmqzr8xye1.jpeg?width=256&height=256&crop=256:256,smart&s=b4bdf21a2c6e1a72c1b7792e7c81c398d80af011",
        "postKarma": 1669,
        "commentKarma": 274,
        "description": "\n\n",
        "over18": false,
        "createdAt": "2025-04-26T20:51:57.000Z",
        "scrapedAt": "2025-08-31T10:45:08.456Z",
        "dataType": "user"
    },
    {
        "id": "t3_abcdefg",
        "parsedId": "abcdefg",
        "url": "https://www.reddit.com/r/javascript/comments/abcdefg/example_post/",
        "username": "exampleuser",
        "title": "Example Post Title",
        "communityName": "r/javascript",
        "parsedCommunityName": "javascript",
        "body": "This is an example post body.",
        "html": null,
        "numberOfComments": 5,
        "upVotes": 42,
        "isVideo": false,
        "isAd": false,
        "over18": false,
        "createdAt": "2025-08-30T17:37:51.000Z",
        "scrapedAt": "2025-08-31T10:45:08.456Z",
        "dataType": "post"
    }
]
```

### Use cases

- Track discussions about your brand or product
- Research topics and gather opinions
- Monitor trends, news, and PR opportunities
- Perform sentiment analysis on Reddit comments

### FAQ

**Is Reddit scraping legal?**
Scraping public Reddit data is generally allowed, but always comply with Reddit's terms of service and use data responsibly.

**Do I need proxies?**
No.

**Can I export data?**
Yes, you can export results in JSON, CSV, XML, or Excel formats from the Apify platform or via API.

**Does this use the official Reddit API?**
Yes, this actor uses Reddit's official OAuth2 API for all data extraction. No end-user login or API key setup is required—API credentials are built in for seamless access.

***

For more details, see the Input Schema tab or the code comments.

# Actor input Schema

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

Reddit URLs to scrape directly. Supports three URL types:
• Subreddit (e.g. reddit.com/r/python/) — scrapes the subreddit feed
• Post (e.g. reddit.com/r/python/comments/abc123/) — fetches that post and its comments
• User (e.g. reddit.com/user/someuser/) — fetches the user profile and their recent posts

Tip: combine with Search Queries to search within a specific subreddit instead of globally.

## `searches` (type: `array`):

Keywords or phrases to search for on Reddit. Each query runs independently and returns up to Max Items results.

Tip: wrap a query in quotes for exact phrase matching — e.g. '"web scraping"' will only match that exact phrase, while 'web scraping' matches posts containing both words anywhere.

What gets searched depends on the search type flags below. If you also provide a subreddit in Start URLs, the search is scoped to that subreddit. Otherwise it searches all of Reddit.

## `sort` (type: `string`):

How to order results.

For search queries: relevance (default) gives the best matches; new/top/hot/comments also work.
For subreddit feeds: hot/new/top/controversial/rising. If you pick 'relevance' with a subreddit feed, it falls back to hot.

relevance and comments are only valid for searches, not subreddit feeds.

## `time` (type: `string`):

Limits results to posts created within the selected time window. Applies to both subreddit feeds and search queries. Use 'all' to include posts from any time.

## `maxItems` (type: `integer`):

Maximum number of results per job. Each search query, subreddit, or URL counts as a separate job, so total output can exceed this number when you have multiple inputs.

Example: 2 search queries × maxItems 25 = up to 50 posts total.

## `includeNSFW` (type: `boolean`):

Include NSFW (Not Safe For Work) content.

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

When scraping a direct post URL, comments are fetched by default. Enable this to get only the post metadata without its comments. Does not affect the 'Fetch Comments for Each Post' option.

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

When scraping a user profile, recent posts are fetched by default alongside profile info. Enable this to get only the profile metadata.

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

When scraping a subreddit feed, community metadata (member count, description, etc.) is fetched alongside posts. Enable this to skip that extra request and get only posts.

## `ignorestartUrls` (type: `boolean`):

Forces search-only mode — Start URLs are ignored even if provided. Useful if you have URLs saved in your input but want to run a search-only job without deleting them.

## `searchPosts` (type: `boolean`):

Find posts matching the search keyword. Returns post objects with title, body, upvotes, and comment count. On by default — disable if you only want comments, communities, or users.

## `searchComments` (type: `boolean`):

Find comments matching the search keyword. Works by fetching posts that match the keyword and then filtering their comments — this uses more API calls than post search.

## `fetchPostComments` (type: `boolean`):

When enabled, each post returned from a subreddit or keyword search will include a 'comments' array with its top-level comments. Significantly increases API usage — one extra request per post.

## `searchCommunities` (type: `boolean`):

Find subreddits whose name or description matches the keyword. Returns community objects with member count, description, and URL.

## `searchUsers` (type: `boolean`):

Find Reddit user accounts matching the keyword. Returns user objects with karma, profile info, and account age.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.reddit.com/r/javascript/"
    }
  ],
  "searches": [
    "apify"
  ],
  "sort": "relevance",
  "time": "all",
  "maxItems": 25,
  "includeNSFW": false,
  "skipComments": false,
  "skipUserPosts": false,
  "skipCommunity": true,
  "ignorestartUrls": false,
  "searchPosts": true,
  "searchComments": false,
  "fetchPostComments": false,
  "searchCommunities": false,
  "searchUsers": 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": [
        {
            "url": "https://www.reddit.com/r/javascript/"
        }
    ],
    "searches": [
        "apify"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("practicaltools/apify-reddit-api").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": [{ "url": "https://www.reddit.com/r/javascript/" }],
    "searches": ["apify"],
}

# Run the Actor and wait for it to finish
run = client.actor("practicaltools/apify-reddit-api").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": [
    {
      "url": "https://www.reddit.com/r/javascript/"
    }
  ],
  "searches": [
    "apify"
  ]
}' |
apify call practicaltools/apify-reddit-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Fast Reddit Scraper ($2/1k): Cheap & Bulk Data",
        "description": "The most affordable Reddit scraper on the store. 60% cheaper than the competition. Perfect for training AI models, bulk historical data, and sentiment analysis.",
        "version": "0.0",
        "x-build-id": "Ti1T96ND6ULOh9uV3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/practicaltools~apify-reddit-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-practicaltools-apify-reddit-api",
                "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/practicaltools~apify-reddit-api/runs": {
            "post": {
                "operationId": "runs-sync-practicaltools-apify-reddit-api",
                "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/practicaltools~apify-reddit-api/run-sync": {
            "post": {
                "operationId": "run-sync-practicaltools-apify-reddit-api",
                "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",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Reddit URLs to scrape directly. Supports three URL types:\n• Subreddit (e.g. reddit.com/r/python/) — scrapes the subreddit feed\n• Post (e.g. reddit.com/r/python/comments/abc123/) — fetches that post and its comments\n• User (e.g. reddit.com/user/someuser/) — fetches the user profile and their recent posts\n\nTip: combine with Search Queries to search within a specific subreddit instead of globally.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "pattern": "^(https?:\\/\\/)?(www\\.)?reddit\\.com\\/.+$",
                                    "description": "A valid Reddit URL."
                                }
                            },
                            "required": [
                                "url"
                            ]
                        }
                    },
                    "searches": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Keywords or phrases to search for on Reddit. Each query runs independently and returns up to Max Items results.\n\nTip: wrap a query in quotes for exact phrase matching — e.g. '\"web scraping\"' will only match that exact phrase, while 'web scraping' matches posts containing both words anywhere.\n\nWhat gets searched depends on the search type flags below. If you also provide a subreddit in Start URLs, the search is scoped to that subreddit. Otherwise it searches all of Reddit.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sort": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "hot",
                            "new",
                            "top",
                            "comments",
                            "controversial",
                            "rising"
                        ],
                        "type": "string",
                        "description": "How to order results.\n\nFor search queries: relevance (default) gives the best matches; new/top/hot/comments also work.\nFor subreddit feeds: hot/new/top/controversial/rising. If you pick 'relevance' with a subreddit feed, it falls back to hot.\n\nrelevance and comments are only valid for searches, not subreddit feeds.",
                        "default": "relevance"
                    },
                    "time": {
                        "title": "Time Filter",
                        "enum": [
                            "all",
                            "day",
                            "hour",
                            "month",
                            "week",
                            "year"
                        ],
                        "type": "string",
                        "description": "Limits results to posts created within the selected time window. Applies to both subreddit feeds and search queries. Use 'all' to include posts from any time.",
                        "default": "all"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum number of results per job. Each search query, subreddit, or URL counts as a separate job, so total output can exceed this number when you have multiple inputs.\n\nExample: 2 search queries × maxItems 25 = up to 50 posts total.",
                        "default": 25
                    },
                    "includeNSFW": {
                        "title": "Include NSFW",
                        "type": "boolean",
                        "description": "Include NSFW (Not Safe For Work) content.",
                        "default": false
                    },
                    "skipComments": {
                        "title": "Skip Comments (for direct post URLs)",
                        "type": "boolean",
                        "description": "When scraping a direct post URL, comments are fetched by default. Enable this to get only the post metadata without its comments. Does not affect the 'Fetch Comments for Each Post' option.",
                        "default": false
                    },
                    "skipUserPosts": {
                        "title": "Skip User Posts",
                        "type": "boolean",
                        "description": "When scraping a user profile, recent posts are fetched by default alongside profile info. Enable this to get only the profile metadata.",
                        "default": false
                    },
                    "skipCommunity": {
                        "title": "Skip Community Info",
                        "type": "boolean",
                        "description": "When scraping a subreddit feed, community metadata (member count, description, etc.) is fetched alongside posts. Enable this to skip that extra request and get only posts.",
                        "default": true
                    },
                    "ignorestartUrls": {
                        "title": "Ignore Start URLs",
                        "type": "boolean",
                        "description": "Forces search-only mode — Start URLs are ignored even if provided. Useful if you have URLs saved in your input but want to run a search-only job without deleting them.",
                        "default": false
                    },
                    "searchPosts": {
                        "title": "Search Posts",
                        "type": "boolean",
                        "description": "Find posts matching the search keyword. Returns post objects with title, body, upvotes, and comment count. On by default — disable if you only want comments, communities, or users.",
                        "default": true
                    },
                    "searchComments": {
                        "title": "Search Comments",
                        "type": "boolean",
                        "description": "Find comments matching the search keyword. Works by fetching posts that match the keyword and then filtering their comments — this uses more API calls than post search.",
                        "default": false
                    },
                    "fetchPostComments": {
                        "title": "Fetch Comments for Each Post",
                        "type": "boolean",
                        "description": "When enabled, each post returned from a subreddit or keyword search will include a 'comments' array with its top-level comments. Significantly increases API usage — one extra request per post.",
                        "default": false
                    },
                    "searchCommunities": {
                        "title": "Search Communities",
                        "type": "boolean",
                        "description": "Find subreddits whose name or description matches the keyword. Returns community objects with member count, description, and URL.",
                        "default": false
                    },
                    "searchUsers": {
                        "title": "Search Users",
                        "type": "boolean",
                        "description": "Find Reddit user accounts matching the keyword. Returns user objects with karma, profile info, and account age.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
