Reddit Subreddit Search Scraper
Pricing
from $10.00 / 1,000 subreddit founds
Reddit Subreddit Search Scraper
Find public Reddit communities by keyword with activity, descriptions, and direct URLs. MCP-ready. $0.005/query + $0.01/community, plus platform usage.
Pricing
from $10.00 / 1,000 subreddit founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Discover public Reddit communities from keywords and return clean subreddit metadata for market research, audience discovery, content planning, and AI-agent workflows.
Use this actor when you need to answer questions such as “Which public Reddit communities discuss AI safety?”, “What subreddits reach SaaS founders?”, or “Find active communities around personal finance.” It returns one record per subreddit with a canonical name, URL, subscriber count, activity count when exposed, content-safety flag, and the search query that found it.
This is deliberately a community-discovery tool. It does not scrape Reddit posts, comments, user profiles, private communities, or membership lists. Use a dedicated Reddit posts scraper after selecting the relevant communities.
When to use it
- Find relevant subreddits before launching a social-listening or market-research workflow.
- Build a community list for an editorial calendar, sponsorship research, or competitor analysis.
- Identify public audiences for a niche such as “remote accounting,” “indie hackers,” or “machine learning.”
- Give an AI agent a small, predictable tool for choosing a public Reddit community instead of returning an unbounded set of posts and comments.
- Enrich a research brief with audience size, community title, public description, and a direct community URL.
Do not use this actor to find a particular Reddit post, scrape comment threads, collect user data, or access content that is private, quarantined, or otherwise unavailable publicly.
What you get
Each dataset item has a stable, agent-friendly structure. concise mode keeps records small for automation; detailed mode adds public descriptions and artwork URLs when Reddit exposes them.
| Field | Description |
|---|---|
subreddit | Canonical label, for example r/MachineLearning |
subredditName | Community name without the r/ prefix |
subredditUrl | Direct browser URL to the public community |
title | Human-facing community title, when supplied by Reddit |
subscribers | Reported subscriber count, when available |
activeUsers | Reported activity metric, when available |
isNsfw | Whether Reddit marks the community as adult content |
publicDescription | Public description in detailed mode |
searchQuery | Input phrase that matched the community |
source | reddit-oauth, reddit-public-json, or scrapecreators |
scrapedAt | ISO-8601 normalization time |
The actor also writes OUTPUT and RUN_SUMMARY to its default key-value store. These records report the terminal outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, or UPSTREAM_FAILED), source requests, filters, validation skips, and charged event counts. This makes an API or MCP workflow easy to audit without putting summary rows into the dataset.
Input
queries is an array of one to twenty short phrases. The default is artificial intelligence, so the Actor has a safe health-check input. Query terms are matched by Reddit’s community search surface; they are not Reddit URLs and are not post-content searches.
maxSubreddits caps all unique records returned across all queries. It accepts 1–100 and is the principal cost control. minSubscribers filters out smaller communities. sort applies after deduplication and can keep Reddit’s relevance order or order by reported subscriber count, activity, or newest known community. Adult-marked communities are excluded unless includeNsfw is true. Select responseFormat: "detailed" only when you need descriptions and image URLs.
{"queries": ["machine learning", "AI safety"],"maxSubreddits": 25,"minSubscribers": 1000,"sort": "subscribers","includeNsfw": false,"responseFormat": "detailed"}
How retrieval works
The actor first uses owner-managed Reddit OAuth when it is configured. If that route is temporarily unavailable, it tries Reddit’s public JSON endpoint. If native routes are blocked or rate-limited, it falls back to ScrapeCreators’ verified public Reddit endpoints: a site search identifies candidate community names, then the provider’s subreddit-details endpoint supplies the public metadata required by the schema.
Users never need to provide Reddit credentials, browser cookies, or a provider API key. All access is owner-managed and public-data-only. The source field makes every returned record traceable to the route that supplied it. A successful fallback is reported as a normal completed run; a run becomes PARTIAL only if an advertised source route still leaves useful work incomplete.
Pricing
This Actor uses Pay per event + usage. Event charges are simple and predictable; Apify compute and proxy usage are passed through separately by the platform.
| Event | Price | When charged |
|---|---|---|
| Actor start | $0.00005 | Once when a run starts |
| Search query processed | $0.005 | Once after each requested community search is processed |
| Subreddit found | $0.01 | Once for each validated community written to the dataset |
A run with one query and ten returned communities has $0.10505 in event charges, plus platform usage. Three processed queries and 25 returned communities cost $0.26505 in event charges, plus platform usage. maxSubreddits bounds result charges, and the actor prints the maximum possible event charge before it starts work.
The fallback provider uses one credit for a search plus one credit for each detailed community record. The event model keeps a healthy margin even when a user runs a small, multi-query discovery task, while avoiding any hidden provider fee.
Run through the API
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/reddit-subreddit-search-scraper').call({queries: ['indie hackers', 'bootstrapped SaaS'],maxSubreddits: 20,sort: 'activity',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_APIFY_TOKEN')run = client.actor('khadinakbar/reddit-subreddit-search-scraper').call(run_input={"queries": ["personal finance"], "maxSubreddits": 15})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/khadinakbar~reddit-subreddit-search-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries":["remote work"],"maxSubreddits":10}'
Practical tips
Use multiple precise phrases instead of one vague phrase when researching adjacent audiences. For example, "technical writing", "developer relations", and "docs as code" provide a more controllable community set than "writing". Use a positive minSubscribers threshold when you only need established communities, but leave it at zero when researching small emerging niches. Detailed mode is useful for human review; concise mode is usually the better default for agents and scheduled automations.
Results depend on public Reddit and provider metadata at the time of the request. Subscriber and activity counts can be unavailable, delayed, or rounded by the source. activity sorting uses the reported activity metric only when it is exposed; it is not a live traffic guarantee. The actor never infers missing values or invents community metadata.
FAQ
Does this scrape posts or comments?
No. It finds and describes communities only. This keeps runs faster, output smaller, and the actor’s MCP scope unambiguous.
Do I need a Reddit account or cookies?
No. The actor uses owner-managed public access routes. Do not put Reddit passwords, session cookies, or API keys in the input.
What happens when a search has no matching communities?
The run succeeds with VALID_EMPTY, an empty dataset, and a clear message in OUTPUT and RUN_SUMMARY. Broaden the phrase or lower minSubscribers before trying again.
Why did a run return PARTIAL?
Some useful records were stored, but a source route, provider detail lookup, schema validation, or your charge cap prevented the actor from completing the full requested work. The exact reason is in RUN_SUMMARY.
Is this an official Reddit API client?
No. It is an independent Apify Actor that retrieves public community metadata. Follow applicable laws, platform rules, and your organization’s data-use requirements.
Data-use notice
Only use this actor for lawful, authorized purposes and handle returned public data responsibly. Do not use it to identify, profile, or target individuals in ways that violate privacy, platform rules, or applicable law.