Reddit Subreddit Search Scraper avatar

Reddit Subreddit Search Scraper

Pricing

from $10.00 / 1,000 subreddit founds

Go to Apify Store
Reddit Subreddit Search Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

FieldDescription
subredditCanonical label, for example r/MachineLearning
subredditNameCommunity name without the r/ prefix
subredditUrlDirect browser URL to the public community
titleHuman-facing community title, when supplied by Reddit
subscribersReported subscriber count, when available
activeUsersReported activity metric, when available
isNsfwWhether Reddit marks the community as adult content
publicDescriptionPublic description in detailed mode
searchQueryInput phrase that matched the community
sourcereddit-oauth, reddit-public-json, or scrapecreators
scrapedAtISO-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.

EventPriceWhen charged
Actor start$0.00005Once when a run starts
Search query processed$0.005Once after each requested community search is processed
Subreddit found$0.01Once 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 ApifyClient
client = 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().items
print(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.