# Reddit Keyword Search Scraper (`happitap/reddit-keyword-search-scraper`) Actor

Reddit Keyword Search Scraper searches Reddit and extracts posts matching your keywords using public web pages. It returns post titles, content, authors, engagement metrics, media URLs, and matched keywords across all Reddit or selected subreddits.

- **URL**: https://apify.com/happitap/reddit-keyword-search-scraper.md
- **Developed by:** [HappiTap](https://apify.com/happitap) (community)
- **Categories:** Developer tools, Social media, Other
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Keyword Search Scraper

**Reddit Keyword Search Scraper** is a powerful web scraping tool that searches Reddit and extracts matching posts based on your keywords. This Actor scrapes Reddit's HTML pages to find posts containing your search terms across all of Reddit or within specific subreddits. Simply provide a search query, and the Actor will return detailed post information including titles, content, author details, engagement metrics, media URLs, and matched keywords.

### What does Reddit Keyword Search Scraper do?

**Reddit Keyword Search Scraper** searches Reddit's public content and extracts posts that match your search query. Unlike Reddit's official API, this Actor uses web scraping to access Reddit's search functionality, allowing you to find posts by keywords across the entire platform or within specific subreddits. The Actor extracts comprehensive post data including titles, text content, author information, upvote scores, comment counts, timestamps, permalinks, post flairs, media URLs, and identifies which keywords from your query were found in each post.

The input is simple: provide a **search query** (required), optionally specify **subreddits** to search within, choose a **sort order** (relevance, new, top, or comments), set a **time period** for sorting, and define a **limit** for the number of results. The Actor handles all the complexity of web scraping, pagination, and data extraction automatically.

### Why use Reddit Keyword Search Scraper?

#### Business Use Cases

- **Market Research**: Track discussions about your products, competitors, or industry trends
- **Sentiment Analysis**: Monitor public opinion and sentiment around specific topics
- **Content Discovery**: Find popular posts and trending discussions for content marketing
- **Community Monitoring**: Keep track of discussions in relevant subreddits
- **Data Collection**: Gather Reddit data for research, analysis, or machine learning projects

#### Platform Advantages

When you use **Reddit Keyword Search Scraper** on the Apify platform, you get:

- **Scalability**: Run multiple searches simultaneously with automatic resource management
- **Monitoring**: Track your scraping runs with detailed logs and metrics
- **API Access**: Integrate Reddit data extraction into your workflows via REST API
- **Scheduling**: Automate regular Reddit searches with built-in scheduling
- **Data Storage**: Results are automatically stored in Apify datasets with easy export options
- **Integrations**: Connect to Zapier, Make, and other automation platforms
- **Reliability**: Built-in retry logic and error handling for robust scraping

### What data can Reddit Keyword Search Scraper extract?

The Actor extracts comprehensive data from each matching Reddit post:

| Field | Description |
|-------|-------------|
| **title** | The title of the Reddit post |
| **text** | The selftext/body content of the post |
| **author** | The username of the post author |
| **score** | The upvote score (karma) of the post |
| **commentCount** | Number of comments on the post |
| **createdAt** | ISO 8601 timestamp when the post was created |
| **permalink** | Full URL to the Reddit post |
| **flair** | Link flair text (if any) |
| **mediaUrls** | Array of media URLs (images, videos, galleries) found in the post |
| **matchedKeywords** | Keywords from your search query that were found in the post |
| **searchRank** | The rank/position of this result in the search results |

### How to scrape Reddit with Reddit Keyword Search Scraper

#### Step-by-Step Tutorial

1. **Set up your search query**
   - Enter your search keywords in the "Search Query" field
   - Example: "javascript tutorial" or "machine learning"

2. **Optionally specify subreddits**
   - Leave empty to search all of Reddit
   - Or add specific subreddits like "learnprogramming" or "node"

3. **Choose sorting options**
   - **Sort**: Select relevance, new, top, or comments
   - **Time Period**: Choose day, week, month, year, or all time (for top/comments sort)

4. **Set result limit**
   - Specify how many posts you want (1-1000)
   - Default is 50 posts

5. **Run the Actor**
   - Click "Start" to begin scraping
   - Monitor progress in real-time
   - Results are automatically saved to the dataset

6. **Download your data**
   - Access results from the Dataset tab
   - Export as JSON, CSV, Excel, or HTML
   - Use the API to integrate with your applications

#### Video Tutorial

[Add YouTube video URL here if available]

### How much does it cost to scrape Reddit?

**Reddit Keyword Search Scraper** uses Apify's consumption-based pricing model, meaning you only pay for the Compute Units (CUs) consumed during the scraping run. The cost depends on the complexity of your search and the number of results requested.

- **Free Plan**: Get started with free CUs to test the Actor
- **Small Searches** (1-50 results): Typically consumes 0.1-0.5 CUs
- **Medium Searches** (50-200 results): Typically consumes 0.5-2 CUs
- **Large Searches** (200-1000 results): Typically consumes 2-10 CUs

The Actor is optimized for efficiency with built-in rate limiting and smart pagination to minimize compute usage. Since Reddit scraping can vary based on the number of subreddits searched and result limits, actual CU consumption may vary. You can monitor CU usage in real-time during each run.

**Tip**: Start with a small limit (10-20 results) to test your search query and estimate costs before running larger extractions.

### Input

**Reddit Keyword Search Scraper** has the following input options. Click on the [input tab](#input) for more information.

#### Input Parameters

- **query** (required): The search query to find matching Reddit posts
- **subreddits** (optional): Array of subreddit names to scope the search. If not provided, searches all of Reddit
- **sort** (optional): Sort order - `relevance`, `new`, `top`, or `comments` (default: `relevance`)
- **time** (optional): Time period for sorting - `day`, `week`, `month`, `year`, or `all` (default: `day`)
- **limit** (optional): Maximum number of posts to return (1-1000, default: 50)

#### Example Input

```json
{
  "query": "javascript tutorial",
  "subreddits": ["learnprogramming", "webdev"],
  "sort": "relevance",
  "time": "week",
  "limit": 50
}
````

### Output

You can download the dataset extracted by **Reddit Keyword Search Scraper** in various formats such as JSON, HTML, CSV, or Excel.

#### Output Example

Each item in the dataset contains the following structure:

```json
{
  "title": "Best JavaScript Tutorial for Beginners in 2024",
  "text": "I've been learning JavaScript and found this amazing tutorial...",
  "author": "jslearner123",
  "score": 245,
  "commentCount": 32,
  "createdAt": "2024-01-15T10:30:00.000Z",
  "permalink": "https://www.reddit.com/r/learnprogramming/comments/abc123/best_javascript_tutorial/",
  "flair": "Tutorial",
  "mediaUrls": [
    "https://i.redd.it/example.jpg"
  ],
  "matchedKeywords": ["javascript", "tutorial"],
  "searchRank": 1
}
```

### Advanced Options and Tips

#### Optimizing Your Searches

- **Use specific keywords**: More specific queries yield better results
- **Limit subreddits**: Searching specific subreddits is faster and more targeted than searching all of Reddit
- **Adjust sort order**: Use "relevance" for best matches, "new" for recent posts, "top" for popular content
- **Set reasonable limits**: Start with smaller limits (10-50) to test, then scale up

#### Rate Limiting

The Actor includes built-in rate limiting and retry logic to avoid being blocked by Reddit. It automatically:

- Adds delays between requests
- Retries failed requests with exponential backoff
- Uses realistic browser headers to avoid detection

#### Keyword Matching

The Actor automatically extracts keywords from your search query and identifies which keywords were found in each post. This helps you understand why certain posts matched your search.

### Is it legal to scrape Reddit?

Our scrapers are ethical and do not extract any private user data, such as email addresses, phone numbers, or private messages. They only extract what users have chosen to share publicly on Reddit. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

**Important**: Always respect Reddit's Terms of Service and robots.txt. This Actor is designed for research and data collection purposes. Do not use scraped data for spam, harassment, or any illegal activities.

### Reddit API vs Web Scraping

**Reddit Keyword Search Scraper** uses web scraping instead of Reddit's official API. Here's why:

| Web Scraping (This Actor) | Reddit Official API |
|---------------------------|---------------------|
| ✅ No API key required | ❌ Requires OAuth authentication |
| ✅ Access to all public content | ⚠️ Limited by API rate limits |
| ✅ Flexible search across all subreddits | ⚠️ More complex API endpoints |
| ✅ No API quotas or restrictions | ⚠️ Subject to API rate limits |
| ✅ Works immediately | ⚠️ Requires app registration |

This Actor provides a simpler alternative to Reddit's API for users who need quick access to Reddit search functionality without the complexity of API authentication.

### Troubleshooting

#### Common Issues

**403 or 429 errors (Rate Limited or Blocked)**

Reddit has aggressive anti-bot protection that may block automated access. If you encounter 403 errors:

1. **Use Apify Proxies**: Configure Apify proxies in your Actor settings to rotate IP addresses
2. **Reduce request frequency**:
   - Lower the `limit` parameter (try 10-20 results first)
   - Add longer delays between multiple runs
   - Avoid running too many searches in quick succession
3. **Try different times**: Run during off-peak hours when Reddit's servers are less busy
4. **Use old.reddit.com**: The Actor automatically tries old.reddit.com first (less protected)
5. **Check your IP**: Your IP may be temporarily blocked - wait a few hours before retrying

The Actor includes automatic retry logic with exponential backoff and will try both old.reddit.com and www.reddit.com.

**No results returned**

- Try a broader search query
- Check if the subreddit names are spelled correctly
- Verify that posts matching your query exist on Reddit
- Reddit may have blocked the request - see 403 error solutions above

**Missing data fields**

- Some posts may not have all fields (e.g., text posts vs link posts)
- The Actor handles missing data gracefully, using `null` for unavailable fields
- Old Reddit and New Reddit have different HTML structures - some fields may be unavailable

**Rate limiting**

- The Actor includes automatic retry logic with delays
- Consider reducing the number of results or searching fewer subreddits
- Add delays between multiple runs (5-10 seconds minimum)
- Use Apify proxies for better success rates

#### Getting Help

If you encounter issues or have questions:

1. Check the [Issues tab](#issues) for known problems and solutions
2. Review the Actor logs for detailed error messages
3. Contact support through the Apify platform
4. Report bugs or request features in the Issues tab

We're always open to feedback and improvements!

### Use Cases

#### Market Research

Track discussions about your products, competitors, or industry trends across Reddit communities.

#### Content Marketing

Discover popular posts and trending discussions to inform your content strategy.

#### Sentiment Analysis

Monitor public opinion and sentiment around specific topics, brands, or products.

#### Data Collection

Gather Reddit data for research, academic studies, or machine learning projects.

#### Community Monitoring

Keep track of discussions in relevant subreddits for community management.

### API Integration

**Reddit Keyword Search Scraper** can be integrated into your applications using Apify's REST API. This allows you to:

- Trigger searches programmatically
- Retrieve results via API calls
- Integrate with Zapier, Make, and other automation platforms
- Schedule automated searches
- Build custom workflows

See the [API tab](#api) for detailed API documentation and code examples in Python, JavaScript, and other languages.

### Related Actors

Looking for more Reddit scraping capabilities? Check out these related Actors:

- [Reddit Scraper](https://apify.com/apify/reddit-scraper) - Scrape posts, comments, and user profiles from Reddit
- [Reddit Comments Scraper](https://apify.com/apify/reddit-comments-scraper) - Extract comments from Reddit posts
- [Reddit User Scraper](https://apify.com/apify/reddit-user-scraper) - Scrape user profiles and post history

### Important: Reddit Anti-Bot Protection

**Reddit has aggressive anti-bot protection** that may block automated scraping attempts. If you encounter 403 errors:

#### Recommended Solutions

1. **Use Apify Proxies** (Highly Recommended)
   - Configure Apify proxies in your Actor settings
   - Proxies rotate IP addresses to avoid detection
   - Significantly improves success rates
   - Available in Apify Console under Actor settings

2. **Optimize Your Scraping**
   - Start with small limits (10-20 results) to test
   - Add delays between multiple runs (5-10 seconds minimum)
   - Avoid running too many searches in quick succession
   - Run during off-peak hours when Reddit's servers are less busy

3. **Reduce Request Volume**
   - Lower the `limit` parameter
   - Search fewer subreddits per run
   - Spread searches over time instead of running all at once

The Actor automatically:

- Uses `old.reddit.com` by default (less protected)
- Includes retry logic with exponential backoff
- Mimics real browser behavior with Playwright
- Tries both old.reddit.com and www.reddit.com

However, **using Apify proxies is the most effective solution** for avoiding Reddit's blocking.

### FAQ

#### How accurate is the keyword matching?

The Actor extracts keywords from your search query and matches them against post titles and text content. It uses case-insensitive matching to find all occurrences.

#### Can I search multiple subreddits at once?

Yes! Provide an array of subreddit names in the `subreddits` field. The Actor will search each subreddit sequentially.

#### What's the difference between "sort" options?

- **relevance**: Reddit's algorithm determines the most relevant posts
- **new**: Most recently posted content
- **top**: Highest upvoted posts
- **comments**: Posts with the most comments

#### How does pagination work?

The Actor automatically handles pagination to collect the requested number of results. It will fetch multiple pages if needed to reach your limit.

#### Can I get more than 1000 results?

The current limit is 1000 results per run. For larger datasets, you can run multiple searches with different queries or time periods.

#### Is my data stored securely?

Yes, all data is stored securely in Apify's cloud storage. You can download, export, or delete your datasets at any time.

#### Can I customize the Actor?

The Actor is open-source and can be customized for your specific needs. You can also contact us for custom development based on this Actor.

#### Why am I getting 403 errors?

Reddit has sophisticated anti-bot protection that detects automated access. This is normal and expected. To improve success rates:

- Use Apify proxies (most effective)
- Reduce the number of results per run
- Add longer delays between runs
- Try running during off-peak hours

The Actor includes automatic retry logic, but persistent 403 errors indicate Reddit is blocking your IP. Using proxies is the recommended solution.

### Support

We're committed to providing the best scraping experience. If you need help:

- 📧 Contact us through the Apify platform
- 🐛 Report issues in the [Issues tab](#issues)
- 💡 Suggest features or improvements
- 📚 Check our [documentation](https://docs.apify.com)
- 🎓 Visit the [Apify Academy](https://apify.com/academy)

***

**Ready to start scraping Reddit?** [Run the Actor now](#run) and get your first results in minutes!

# Actor input Schema

## `query` (type: `string`):

The search query to find matching Reddit posts

## `subreddits` (type: `array`):

Optional list of subreddits to scope the search. If not provided, searches all of Reddit.

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

How to sort the search results

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

Time period for sorting (only applies to 'top' and 'comments' sort)

## `limit` (type: `integer`):

Maximum number of posts to return

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

Proxy settings to avoid being blocked by Reddit. Residential proxies are recommended for best results.

## Actor input object example

```json
{
  "query": "apify actor",
  "subreddits": [
    "learnprogramming",
    "node"
  ],
  "sort": "relevance",
  "time": "week",
  "limit": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "query": "javascript",
    "subreddits": [
        "learnprogramming",
        "node"
    ],
    "sort": "relevance",
    "time": "week",
    "limit": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("happitap/reddit-keyword-search-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 = {
    "query": "javascript",
    "subreddits": [
        "learnprogramming",
        "node",
    ],
    "sort": "relevance",
    "time": "week",
    "limit": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("happitap/reddit-keyword-search-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 '{
  "query": "javascript",
  "subreddits": [
    "learnprogramming",
    "node"
  ],
  "sort": "relevance",
  "time": "week",
  "limit": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call happitap/reddit-keyword-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reddit Keyword Search Scraper",
        "description": "Reddit Keyword Search Scraper searches Reddit and extracts posts matching your keywords using public web pages. It returns post titles, content, authors, engagement metrics, media URLs, and matched keywords across all Reddit or selected subreddits.",
        "version": "0.0",
        "x-build-id": "y9VHA6lZffTBR0oLZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/happitap~reddit-keyword-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-happitap-reddit-keyword-search-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/happitap~reddit-keyword-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-happitap-reddit-keyword-search-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/happitap~reddit-keyword-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-happitap-reddit-keyword-search-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": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "The search query to find matching Reddit posts"
                    },
                    "subreddits": {
                        "title": "Subreddits",
                        "type": "array",
                        "description": "Optional list of subreddits to scope the search. If not provided, searches all of Reddit.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sort": {
                        "title": "Sort Order",
                        "enum": [
                            "relevance",
                            "new",
                            "top",
                            "comments"
                        ],
                        "type": "string",
                        "description": "How to sort the search results",
                        "default": "relevance"
                    },
                    "time": {
                        "title": "Time Period",
                        "enum": [
                            "day",
                            "week",
                            "month",
                            "year",
                            "all"
                        ],
                        "type": "string",
                        "description": "Time period for sorting (only applies to 'top' and 'comments' sort)",
                        "default": "day"
                    },
                    "limit": {
                        "title": "Result Limit",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of posts to return",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings to avoid being blocked by Reddit. Residential proxies are recommended for best results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
