# Reddit Subreddits V1 — Info, Browse, Join, Create (12 ops) (`red_crawler/reddit-subreddits`) Actor

Reddit subreddit toolkit — 8 anonymous lookups (info, rules, sidebar, browse, autocomplete, search names, popular feed, post listings) + 4 auth ops (my subreddits, join/leave, post requirements, create new). Use Reddit Vault or paste Token V2 + proxy.

- **URL**: https://apify.com/red\_crawler/reddit-subreddits.md
- **Developed by:** [Red Crawler](https://apify.com/red_crawler) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 14 total users, 5 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Subreddits — Info, Browse, Join, Create

![Endpoints](https://img.shields.io/badge/endpoints-12-blue) ![Auth](https://img.shields.io/badge/Reddit_account-8_no_/_4_yes-yellow) ![Proxy](https://img.shields.io/badge/proxy-only_for_account_endpoints-yellow) ![Pricing](https://img.shields.io/badge/pricing-pay_per_result-orange)

Twelve self-contained subreddit endpoints — info, rules, full sidebar, browse Reddit's directories, autocomplete, search names, popular feed, post listings, **plus the 4 "My account" endpoints** that require a signed-in Reddit account (your subscribed / contributed / moderated communities, join / leave, per-subreddit post requirements, create a new subreddit).

Pick the endpoint, fill the matching section, hit Start.

***

### What you can fetch

Subreddit names accept `AskReddit`, `r/AskReddit`, `/r/AskReddit`, or the full subreddit URL — paste whichever you have.

#### Public endpoints (no Reddit account needed)

##### 1. Subreddit Info — about / metadata

The standard "about" payload Reddit exposes for any community.

**Input:** subreddit name.

**Returns:** Reddit ID, fullname, display name (raw + prefixed), title, subscriber count, active user count, public + full description, created timestamp, language, type (public / private / restricted), NSFW flag, quarantine flag, URL, header / icon / banner / community-icon images, primary + key + banner-background colors, submit text, allowed submission types (videos / images / polls / galleries), spoilers-enabled flag, wiki-enabled flag.

**Use it when:** profiling a community in a single call, sizing audiences, importing a subreddit's settings into your own DB.

**Example**

**Input**

```json
{
  "endpoint": "subreddit_info",
  "info_subreddit": "Wordpress"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "subreddit_info",
  "id": "2qhjq",
  "name": "t5_2qhjq",
  "display_name": "Wordpress",
  "display_name_prefixed": "r/Wordpress",
  "title": "WordPress",
  "subscribers": 303183,
  "created_utc": 1205874670.0,
  "lang": "en",
  "subreddit_type": "public",
  "over18": false,
  "public_description": "The place for news, articles and discussion regarding WordPress, the open source software.",
  "description": "###Welcome to r/WordPress\n>The place for news, articles and discussion regarding WordPress.…",
  "submit_text": "Don't forget to set a link flair on your post after submitting.…",
  "url": "/r/Wordpress/",
  "primary_color": "#00749a",
  "banner_background_color": "#000000",
  "wiki_enabled": true,
  "submission_type": "any",
  "allow_videos": false,
  "allow_images": true
}
```

##### 2. Subreddit Rules

The community's posted rules.

**Input:** subreddit name.

**Returns per rule:** subreddit, priority, short name, full description, violation reason, kind (link / comment / both), created timestamp.

**Use it when:** building rule-aware moderation pipelines, posting bots that need to respect each subreddit's rules, compliance audits, content classifiers.

**Example**

**Input**

```json
{
  "endpoint": "subreddit_rules",
  "rules_subreddit": "Wordpress"
}
```

**Output** *(one dataset record per rule)*

```json
{
  "endpoint": "subreddit_rules",
  "subreddit": "wordpress",
  "priority": 0,
  "short_name": "No promotions of products or services",
  "description": "We do not allow posts or comments intended for promotion or advertising. These will be removed.…",
  "violation_reason": "No promotions of products or services",
  "kind": "all",
  "created_utc": 1728968309
}
```

##### 3. Subreddit Sidebar — full about payload

The full sidebar payload (a richer superset of Subreddit Info — includes the same metadata plus theme, banner styling, public description, submit guidelines, allowed post types, contributor flags, more).

**Input:** subreddit name.

**Returns:** complete subreddit settings record. Effectively a one-shot way to mirror a community's identity (theme, branding, posting permissions, allowed content types).

**Use it when:** theme audits, building branded clones / mirrors, capturing every public knob a subreddit has set.

**Example**

**Input**

```json
{
  "endpoint": "subreddit_sidebar",
  "sidebar_subreddit": "Wordpress"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "subreddit_sidebar",
  "id": "2qhjq",
  "name": "t5_2qhjq",
  "display_name": "Wordpress",
  "display_name_prefixed": "r/Wordpress",
  "title": "WordPress",
  "subscribers": 303183,
  "created_utc": 1205874670.0,
  "subreddit_type": "public",
  "over18": false,
  "public_description": "The place for news, articles and discussion regarding WordPress.…",
  "description": "###Welcome to r/WordPress…",
  "submit_text": "Don't forget to set a link flair on your post.…",
  "url": "/r/Wordpress/",
  "primary_color": "#00749a",
  "banner_background_color": "#000000",
  "wiki_enabled": true,
  "submission_type": "any",
  "allow_videos": false,
  "allow_images": true
}
```

##### 4. Browse Subreddits — popular / new / default directory

Reddit's curated directories.

**Inputs:**

- **Directory** — `popular` (default), `new`, or `default`.
- **Limit** — 1 to 100 (default 25).

**Returns:** one Subreddit Info record per community, in the order Reddit ranks them.

**Use it when:** discovery dashboards, leaderboards (popular vs new vs Reddit's default seed list), competitive audits.

**Example**

**Input**

```json
{
  "endpoint": "browse_subreddits",
  "browse_directory": "popular",
  "browse_limit": 3
}
```

**Output** *(one dataset record per subreddit — sample of the first row)*

```json
{
  "endpoint": "browse_subreddits",
  "id": "2qs0k",
  "name": "t5_2qs0k",
  "display_name": "Home",
  "display_name_prefixed": "r/Home",
  "title": "Home",
  "subscribers": 405521,
  "created_utc": 1232850357.0,
  "subreddit_type": "public",
  "over18": false,
  "description": "Everything home related: interior design, home improvement, architecture.…",
  "url": "/r/Home/",
  "wiki_enabled": false,
  "submission_type": "any",
  "allow_videos": true,
  "allow_images": true
}
```

##### 5. Autocomplete — match names by prefix

Subreddit name suggestions for a prefix string. Returns rich Subreddit Info records, not just names.

**Inputs:**

- **Query** — prefix to match (e.g. `ask`).
- **Limit** — 1 to 10 (default 10).
- **Include NSFW results** — off by default. Tick to include NSFW communities.

**Returns:** up to 10 Subreddit Info records ranked by relevance.

**Use it when:** building search-as-you-type pickers, validating that a subreddit exists, surfacing "did you mean…" suggestions.

**Example**

**Input**

```json
{
  "endpoint": "autocomplete",
  "autocomplete_q": "ask",
  "autocomplete_limit": 3,
  "autocomplete_include_over_18": false
}
```

**Output** *(one dataset record per suggestion — sample of the first row)*

```json
{
  "endpoint": "autocomplete",
  "id": "2qhlj",
  "name": "t5_2qhlj",
  "display_name": "ask",
  "display_name_prefixed": "r/ask",
  "title": "/r/Ask",
  "subscribers": 1274860,
  "created_utc": 1206117360.0,
  "subreddit_type": "public",
  "over18": false,
  "public_description": "This is a place to ask specific, closed-ended, non divisive questions.",
  "url": "/r/ask/",
  "primary_color": "#ff0000",
  "wiki_enabled": true,
  "submission_type": "self"
}
```

##### 6. Popular Posts — feed of `r/popular`

Posts directly from `r/popular`. Supports sort, time window, and **country filter**.

**Inputs:**

- **Sort** — `hot` (default), `new`, `top`, `rising`, `best`, `controversial`.
- **Time filter** *(optional)* — `hour` / `day` / `week` / `month` / `year` / `all`. Only used with `top` or `controversial`.
- **Country** *(optional)* — `GLOBAL` or any of 50 country codes (`US`, `GB`, `CA`, `AU`, `DE`, `FR`, `JP`, `IN`, `BR`, etc.). Only used with `best` or `hot`.
- **Limit** — 1 to 100 (default 25).

**Returns per post:** ID, fullname, title, body, author, subreddit, score, ups, comment count, created timestamp, permalink, URL, domain, flags, flair, thumbnail.

**Use it when:** trending feeds, geo-targeted listicles ("what's hot in Japan / Germany / Brazil right now"), regional newsfeeds, content syndication.

**Example**

**Input**

```json
{
  "endpoint": "popular_posts",
  "popular_sort": "hot",
  "popular_limit": 3
}
```

**Output** *(one dataset record per post — sample of the first row)*

```json
{
  "endpoint": "popular_posts",
  "id": "1tc5auo",
  "name": "t3_1tc5auo",
  "title": "Found this wierd red thing in my room",
  "author": "Parking-Cheek7779",
  "subreddit": "whatisit",
  "score": 9035,
  "ups": 9035,
  "num_comments": 3901,
  "created_utc": 1778690740.0,
  "permalink": "https://reddit.com/r/whatisit/comments/1tc5auo/found_this_wierd_red_thing_in_my_room/",
  "url": "https://i.redd.it/jv5fvavrox0h1.jpeg",
  "domain": "i.redd.it",
  "over_18": false,
  "spoiler": false,
  "locked": false,
  "stickied": false,
  "link_flair_text": "Solved!",
  "selftext": ""
}
```

##### 7. Search Names — search subreddit names

Free-text search across subreddit names. Returns matching names (string list), faster than autocomplete for "is this name taken" checks.

**Inputs:**

- **Search query** — text to match (e.g. `python`).
- **Include NSFW results** — off by default.

**Returns:** one record per matching name.

**Use it when:** validating availability of a new community name, building a name resolver, surfacing communities matching a topic keyword.

**Example**

**Input**

```json
{
  "endpoint": "search_names",
  "search_names_q": "python"
}
```

**Output** *(one dataset record per name — sample of the first row)*

```json
{
  "endpoint": "search_names",
  "name": "Python"
}
```

##### 8. Post Listings — feed of posts from a given subreddit

Pull the post feed for any subreddit. Supports the same sort + time filter as Reddit's own subreddit pages.

**Inputs:**

- **Subreddit** — community name (e.g. `Wordpress`).
- **Sort** — `hot` (default), `new`, `top`, `rising`, `controversial`.
- **Time filter** *(optional)* — `hour` / `day` / `week` / `month` / `year` / `all`. Only used with `top` or `controversial`.
- **Limit** — 1 to 100 (default 25).

**Returns per post:** ID, fullname, title, body / selftext, score, comment count, created timestamp, subreddit, permalink, URL, domain, flags (NSFW, spoiler, locked, stickied), flair, author.

**Use it when:** mirroring a subreddit's feed, building community dashboards, comparing competing communities, archiving daily top-of-sub posts.

**Example**

**Input**

```json
{
  "endpoint": "post_listings",
  "post_listings_subreddit": "Wordpress",
  "post_listings_sort": "hot",
  "post_listings_limit": 3
}
```

**Output** *(one dataset record per post — sample of the first row)*

```json
{
  "endpoint": "post_listings",
  "id": "1r80vkz",
  "name": "t3_1r80vkz",
  "title": "Monthly AMA - Suggestions wanted!",
  "author": "RealKenshino",
  "subreddit": "Wordpress",
  "score": 29,
  "ups": 29,
  "num_comments": 12,
  "created_utc": 1771415293.0,
  "permalink": "https://reddit.com/r/Wordpress/comments/1r80vkz/monthly_ama_suggestions_wanted/",
  "url": "https://www.reddit.com/r/Wordpress/comments/1r80vkz/monthly_ama_suggestions_wanted/",
  "domain": "self.Wordpress",
  "over_18": false,
  "stickied": true,
  "link_flair_text": null,
  "selftext": "We're launching a monthly AMA series featuring people from across the WordPress ecosystem.…"
}
```

#### Account-required endpoints (need a Reddit account)

These need a Reddit Token V2 cookie + the proxy that minted it. Save once in the [Reddit Vault](https://apify.com/red_crawler/reddit-vault) and reuse by name, or paste directly per run.

##### 9. My Subreddits — your subscribed / contributed / moderated communities

The signed-in user's communities, scoped to one of four lists.

**Inputs:**

- **Which list** — `subscriber` (default) / `contributor` / `moderator` / `streams`.
- **Limit** — 1 to 100 (default 25).
- Reddit credentials (saved account or Token V2 + proxy).

**Returns per subreddit:** the full Subreddit Info record (same shape as endpoint 1) for every community in the chosen list.

**Use it when:** mirroring your follow graph, auditing what an account moderates, exporting a community list for migration, building per-user dashboards.

**Example**

**Input**

```json
{
  "endpoint": "my_subreddits",
  "my_subreddits_where": "subscriber",
  "my_subreddits_limit": 3,
  "credentialSource": "vault",
  "accountName": "main"
}
```

**Output** *(one dataset record per subreddit — sample of the first row)*

```json
{
  "endpoint": "my_subreddits",
  "id": "2qh23",
  "name": "t5_2qh23",
  "display_name": "test",
  "display_name_prefixed": "r/test",
  "title": "Testing",
  "subscribers": 42322,
  "created_utc": 1201237888.0,
  "subreddit_type": "public",
  "over18": false,
  "description": "This is a place to test things.",
  "url": "/r/test/",
  "wiki_enabled": true,
  "user_is_subscriber": true,
  "user_is_moderator": false,
  "user_is_banned": false,
  "submission_type": "any",
  "allow_videos": true,
  "allow_images": true
}
```

##### 10. Membership — join or leave a subreddit

Subscribe to or unsubscribe from a community on behalf of the signed-in account.

**Inputs:**

- **Action** — `join` or `leave`.
- **Subreddit** — community name (e.g. `Wordpress`).
- Reddit credentials.

**Returns:** confirmation record with the action, target subreddit, and Reddit's success response.

**Use it when:** automated subscription management, bulk join / leave from a list, syncing your follow list with an external system.

**Example**

**Input**

```json
{
  "endpoint": "membership",
  "membership_action": "join",
  "membership_subreddit": "Wordpress",
  "credentialSource": "vault",
  "accountName": "main"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "membership",
  "action": "join",
  "subreddit": "Wordpress",
  "success": true,
  "data": {}
}
```

##### 11. Post Requirements — what a subreddit allows in posts

Returns the per-subreddit posting policy: required / blacklisted title strings, body length limits, allowed link domains, gallery rules, guideline text.

**Input:** subreddit name + Reddit credentials (Reddit requires bearer for this endpoint).

**Returns:** title rules (regex / required / blacklisted strings, min / max length), body rules (length, required / blacklisted strings, regex, restriction policy), link rules (whitelist / blacklist, repost age), gallery rules (min / max items, caption / URL requirements), flair-required flag, guidelines display policy + text.

**Use it when:** pre-flighting a post so the submit never gets rejected, auto-fitting titles to per-subreddit rules, building submission helpers / bots.

**Example**

**Input**

```json
{
  "endpoint": "post_requirements",
  "post_requirements_subreddit": "Wordpress",
  "credentialSource": "vault",
  "accountName": "main"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "post_requirements",
  "subreddit": "wordpress",
  "title_regexes": null,
  "body_blacklisted_strings": null,
  "title_blacklisted_strings": null,
  "body_text_max_length": null,
  "title_required_strings": null,
  "guidelines_text": "Before you post, make sure you have read the submission rules in the sidebar.…",
  "gallery_min_items": null,
  "domain_blacklist": null,
  "domain_whitelist": null,
  "title_text_max_length": null,
  "body_restriction_policy": "required",
  "link_restriction_policy": "none",
  "guidelines_display_policy": "all",
  "body_required_strings": null,
  "title_text_min_length": null,
  "gallery_captions_requirement": "none",
  "is_flair_required": false,
  "gallery_max_items": null,
  "gallery_urls_requirement": "none",
  "body_regexes": null,
  "link_repost_age": null,
  "body_text_min_length": null
}
```

##### 12. Create Subreddit — create a new subreddit

Create a brand-new community owned by the signed-in account. Reddit applies the same eligibility checks it shows in the "Create a community" UI (account age, karma minimums, etc.).

**Inputs:**

- **New subreddit name** — 3–21 chars, letters / digits / underscores.
- Reddit credentials.

**Returns:** confirmation record with the new community's name and Reddit's creation response.

**Use it when:** programmatically spinning up communities (alt brands, regional spinoffs, project-specific subs), bulk-creating sandbox communities for testing.

**Example**

**Input**

```json
{
  "endpoint": "create_subreddit",
  "create_subreddit_name": "MyTestCommunity2026",
  "credentialSource": "vault",
  "accountName": "main"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "create_subreddit",
  "name": "MyTestCommunity2026",
  "success": true,
  "data": {
    "id": "t5_zzzzzz",
    "name": "MyTestCommunity2026",
    "url": "/r/MyTestCommunity2026/"
  }
}
```

***

### Credentials

The 4 account-required endpoints (My Subreddits, Membership, Post Requirements, Create Subreddit) need a Reddit Token V2 cookie + the proxy that minted it. The first 8 endpoints ignore credentials entirely — leave the section blank for those.

#### Credential lifetime

| Credential | Lifetime | When to refresh |
|---|---|---|
| **Token V2** (`token_v2` cookie) | ~24 hours | Daily — or save a Reddit Session in the [Reddit Vault](https://apify.com/red_crawler/reddit-vault) and let the vault auto-refresh the Token V2 from it (recommended). |
| **Reddit Session** (`reddit_session` cookie) | ~180 days | Only needed if you save an account in the [Reddit Vault](https://apify.com/red_crawler/reddit-vault) — the vault uses it to auto-mint fresh Token V2 cookies every ~23 hours. Refresh roughly twice a year. |

> **How to extract these from your browser:** open Reddit in Chrome / Brave / Edge / Firefox, then **DevTools → Application → Cookies → `https://www.reddit.com`**. Filter by `token_v2` (the Token V2) or `reddit_session` (the Reddit Session) and copy the **Value** column.
>
> ![Token V2 cookie in DevTools](https://docs.redcrawler.com/img/credentials/token-v2-cookie.jpg)
>
> ![Reddit Session cookie in DevTools](https://docs.redcrawler.com/img/credentials/reddit-session-cookie.jpg)

You have two options:

#### Option A — Use a saved account (recommended)

1. Run the **Reddit Vault** actor once to store a Reddit account under a name you choose (e.g. `main`, `alt-account`, `burner1`). The vault encrypts the Token V2 + matching proxy and stores them keyed by name.
2. In this actor, set **Credential source = Use saved account (vault)** and put the same name in **Saved account name**.
3. Done — Token V2 + proxy load automatically. Refresh the vault entry whenever the Token V2 expires (~24 h lifetime).

#### Option B — Paste Token V2 + proxy directly

For one-off runs without setting up the vault:

1. Set **Credential source = Paste Token V2 + proxy**.
2. Paste your Reddit `token_v2` cookie value (`eyJ...`) into **Token V2**.
3. Paste the matching proxy in `ip:port:user:pass` format into **Proxy**.

**Critical:** Reddit IP-binds Token V2 cookies. The proxy MUST be the exact same IP that originally minted the Token V2 — otherwise Reddit returns 401 on every account-required call. Both fields are stored encrypted by Apify.

***

### How to run

1. **Pick an endpoint** in the "What to fetch" dropdown at the top. Public endpoints (1–8) are at the top of the list; account-required endpoints (9–12) are grouped at the bottom.
2. **Open the matching section** below it and fill its fields.
3. **If your endpoint is account-required** (9–12), fill the Reddit credentials section at the bottom.
4. **Click Start.**

Each endpoint section is independent — fields outside your chosen section are ignored, so you can leave them as-is between runs. Default endpoint is `Subreddit Info` on `AskReddit`, so the actor runs out of the box.

***

### Output

Results are pushed to the actor's default dataset. View them as a table or download as JSON / CSV / Excel / XML.

- **Subreddit Info / Subreddit Sidebar / Membership / Post Requirements / Create Subreddit** push **one record** per run.
- **Subreddit Rules** push **one record per rule** (typically 5–15).
- **Browse / Autocomplete / Search Names / Popular Posts / Post Listings / My Subreddits** push **one record per item** (up to your `limit`).

The most useful columns are placed first (`endpoint`, `id`, `name`, `display_name`, `title`, `subscribers`, etc.) so the dataset Table view is readable without horizontal scrolling.

***

### Common edge cases

- **Private subreddits** — not accessible. Reddit hides their about / rules / sidebar from anonymous calls.
- **Quarantined subreddits** — return Reddit's quarantine notice rather than full data.
- **Banned subreddits** — return an error stub.
- **Lenient name matching** — `AskReddit`, `r/AskReddit`, `/r/AskReddit`, and `https://www.reddit.com/r/AskReddit/` all resolve to the same community.
- **Autocomplete / Search Names NSFW filter** — by default NSFW results are excluded. Tick `Include NSFW results` to include them.
- **Popular Posts country filter** — only honored when sort is `best` or `hot`. With other sorts, Reddit returns the global feed regardless.
- **Empty results** — return zero records. The actor reports an empty result rather than failing.
- **Bearer expired** — Reddit Token V2 cookies live ~24 h. If you get an `error_kind: bearer_expired` response, refresh the Token V2 in your vault entry (or paste a fresh one in manual mode) and re-run.
- **Create Subreddit eligibility** — Reddit enforces account-age and karma minimums; brand-new accounts will get a clear error explaining the missing requirement.
- **Membership idempotency** — joining a community you're already in, or leaving one you're not, both return success with no state change.

***

### Why this actor is fast

- **Speed — 1–3 seconds per call, end-to-end.** Pure HTTP to Reddit's API. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based scrapers typically take 15–60 seconds per call.
- **Reliability — zero browser flakiness.** No headless-Chromium crashes. No JS-render timeouts. No captcha pages. No surprise mid-run failures from a browser quirk.
- **Footprint — under 100 MB RAM per run.** Most browser-based scrapers need 1–4 GB. Built for reliability behind the scenes — just paste your inputs and run.

***

### Status & error reference

**Run status** *(Apify-side, shown on the run page)*

| Status | Apify message | Meaning | What to do |
|---|---|---|---|
| <img src="https://redcrawler.com/s/apify_pill_succeeded_v11.png" alt="Succeeded" height="40" style="max-width:none" /> | "Actor succeeded with N results in the dataset" | Run finished. Some or zero records pushed. | Open the dataset to view results. |
| <img src="https://redcrawler.com/s/apify_pill_failed_v11.png" alt="Failed" height="40" style="max-width:none" /> | "The Actor process failed…" | Validation error or upstream Reddit fault. | Check the run log. You are NOT charged for failed runs. |
| <img src="https://redcrawler.com/s/apify_pill_timed_out_v11.png" alt="Timed out" height="40" style="max-width:none" /> | "The Actor timed out. You can resurrect it with a longer timeout to continue where you left off." | Run exceeded its timeout. | Re-run with a smaller `limit` or fewer inputs. |
| <img src="https://redcrawler.com/s/apify_pill_aborted_v11.png" alt="Aborted" height="40" style="max-width:none" /> | "The Actor process was aborted. You can resurrect it to continue where you left off." | You stopped the run manually. | No charge for unpushed results. |

**Common in-run conditions** *(visible in run log)*

| Condition | Cause | Result |
|---|---|---|
| Empty result set | No matching data for the chosen endpoint. | Run `SUCCEEDED`, 0 records, no charge. |
| Private / quarantined subreddit | Reddit hides these from anonymous reads. | Run `SUCCEEDED`, those rows skipped. |
| Banned subreddit | Subreddit has been banned by Reddit. | Run `SUCCEEDED`, 0 records for that input. |
| Bearer expired | Token V2 past ~24 h, no vault session for auto-refresh. | Run `SUCCEEDED`, failure row with `error_kind: bearer_expired`. |
| Validation error: missing `subreddit` | Required input not provided. | Run `FAILED` immediately, no charge. |

***

### Pricing

Pay-per-result. **You're only charged for records actually pushed to the dataset — failed runs, validation errors, and empty results cost nothing.**

| Event | Trigger | Price (per 1,000) |
|-------|---------|--------------------|
| `result` | Each subreddit / rule / suggestion / post / membership / requirement record pushed to the dataset | **$1.99** |

***

### Need a different shape of data?

- **[Reddit Users V2](https://apify.com/red_crawler/reddit-users-v2)** — single-user lookups (profile, trophies, posts, comments) plus your-own-account endpoints
- **[Reddit Search V2](https://apify.com/red_crawler/reddit-search-v2)** — search Reddit by query (posts, comments, communities, users)
- **[Reddit Bulk Scrape V2](https://apify.com/red_crawler/reddit-bulk-scrape-v2)** — paste up to 1500 IDs / names / URLs in a single run
- **[Reddit Scraper V2](https://apify.com/red_crawler/reddit-scrape-v2)** — single & bulk reads for posts, comments, profiles, communities
- **[Reddit Posts V1](https://apify.com/red_crawler/reddit-posts)** — front-page feed, crosspost duplicates, pinned posts
- **[Reddit Wiki, Emojis & Widgets](https://apify.com/red_crawler/reddit-wiki-emojis-widgets)** — wiki pages, custom emojis, sidebar widgets
- **[Reddit Vault](https://apify.com/red_crawler/reddit-vault)** — save Reddit accounts once, call them by name from this actor (free)

***

### Support and feedback

Found a bug, want a feature, hit a Reddit error code we don't translate clearly? Open an issue via the actor's Apify Console feedback link, or reach out at the RedCrawler support channel.

***

*Reddit Subreddits is part of the RedCrawler family of Reddit actors. RedCrawler is independent — not affiliated with, endorsed by, or sponsored by Reddit, Inc. Use it within Reddit's API terms.*

# Actor input Schema

## `endpoint` (type: `string`):

Choose which kind of subreddit lookup to run.

## `info_subreddit` (type: `string`):

Subreddit name (e.g. AskReddit). Used by: Subreddit Info.

## `rules_subreddit` (type: `string`):

Subreddit name (e.g. AskReddit). Used by: Subreddit Rules.

## `sidebar_subreddit` (type: `string`):

Subreddit name (e.g. AskReddit). Used by: Subreddit Sidebar.

## `browse_directory` (type: `string`):

Which directory to browse. Used by: Browse Subreddits.

## `browse_limit` (type: `integer`):

Max subreddits to return (1–100). Used by: Browse Subreddits.

## `autocomplete_q` (type: `string`):

Prefix to match against subreddit names. Used by: Autocomplete.

## `autocomplete_limit` (type: `integer`):

Max suggestions (1–10). Used by: Autocomplete.

## `autocomplete_include_over_18` (type: `boolean`):

If on, NSFW (over-18) subreddits are returned in autocomplete results. Default: off.

## `popular_sort` (type: `string`):

Sort order. Used by: Popular Posts.

## `popular_time_filter` (type: `string`):

Time window — IGNORED unless sort is 'top' or 'controversial'. Leave as '—' for other sort orders.

## `popular_geo_filter` (type: `string`):

Country filter — IGNORED unless sort is 'best' or 'hot'. Leave as '—' for everywhere.

## `popular_limit` (type: `integer`):

Max posts (1–100). Used by: Popular Posts.

## `search_names_q` (type: `string`):

Text to search for in subreddit names. Used by: Search Names.

## `search_names_include_over_18` (type: `boolean`):

If on, NSFW (over-18) subreddits are included in results. Default: off.

## `post_listings_subreddit` (type: `string`):

Subreddit name (e.g. AskReddit). Used by: Post Listings.

## `post_listings_sort` (type: `string`):

Sort order. Used by: Post Listings.

## `post_listings_time_filter` (type: `string`):

Time window — IGNORED unless sort is 'top' or 'controversial'. Leave as '—' for other sort orders.

## `post_listings_limit` (type: `integer`):

Max posts (1–1000). Used by: Post Listings.

## `my_subreddits_where` (type: `string`):

subscriber = communities you've joined; contributor = where you can post; moderator = where you have mod rights. Used by: My Subreddits.

## `my_subreddits_limit` (type: `integer`):

Max items (1–100). Used by: My Subreddits.

## `membership_action` (type: `string`):

Whether to join or leave the target subreddit. Used by: Membership.

## `membership_subreddit` (type: `string`):

Subreddit name to join or leave (with or without `r/`). Used by: Membership.

## `post_requirements_subreddit` (type: `string`):

Subreddit name (e.g. AskReddit). Used by: Post Requirements.

## `create_subreddit_name` (type: `string`):

Name for the new subreddit (no `r/` prefix). Used by: Create Subreddit.

## `credentialSource` (type: `string`):

Used by all auth-required endpoints (My Subreddits, Membership, Post Requirements, Create Subreddit). Anonymous endpoints ignore this section. **Use saved account (vault)** loads your stored Token V2 + proxy from the **reddit-vault** actor (auto-refreshed if you saved a Reddit Session) — only the 'Saved account name' field below is used. **Paste Token V2 + proxy** uses the values you paste below — the 'Saved account name' field is ignored.

## `accountName` (type: `string`):

The name you used in the **reddit-vault** actor when you stored this account. Your Token V2 + proxy load automatically from the vault. Ignored when 'Credential source' = manual.

## `bearer` (type: `string`):

Your Reddit `token_v2` cookie value (`eyJ...`). Lifetime ~24 h. Encrypted at rest by Apify. Ignored when 'Credential source' = vault.

## `proxy` (type: `string`):

Proxy in `ip:port:user:pass` format. MUST be the same IP that originally minted the Token V2. Ignored when 'Credential source' = vault.

## Actor input object example

```json
{
  "endpoint": "subreddit_info",
  "info_subreddit": "AskReddit",
  "rules_subreddit": "AskReddit",
  "sidebar_subreddit": "AskReddit",
  "browse_directory": "popular",
  "browse_limit": 25,
  "autocomplete_q": "ask",
  "autocomplete_limit": 10,
  "autocomplete_include_over_18": false,
  "popular_sort": "hot",
  "popular_time_filter": "",
  "popular_geo_filter": "",
  "popular_limit": 25,
  "search_names_q": "ask",
  "search_names_include_over_18": false,
  "post_listings_subreddit": "AskReddit",
  "post_listings_sort": "hot",
  "post_listings_time_filter": "",
  "post_listings_limit": 25,
  "my_subreddits_where": "subscriber",
  "my_subreddits_limit": 25,
  "membership_action": "join",
  "membership_subreddit": "AskReddit",
  "post_requirements_subreddit": "AskReddit",
  "credentialSource": "vault"
}
```

# 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 = {
    "endpoint": "subreddit_info",
    "info_subreddit": "AskReddit",
    "rules_subreddit": "AskReddit",
    "sidebar_subreddit": "AskReddit",
    "autocomplete_q": "ask",
    "search_names_q": "ask",
    "post_listings_subreddit": "AskReddit",
    "membership_subreddit": "AskReddit",
    "post_requirements_subreddit": "AskReddit",
    "create_subreddit_name": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("red_crawler/reddit-subreddits").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 = {
    "endpoint": "subreddit_info",
    "info_subreddit": "AskReddit",
    "rules_subreddit": "AskReddit",
    "sidebar_subreddit": "AskReddit",
    "autocomplete_q": "ask",
    "search_names_q": "ask",
    "post_listings_subreddit": "AskReddit",
    "membership_subreddit": "AskReddit",
    "post_requirements_subreddit": "AskReddit",
    "create_subreddit_name": "",
}

# Run the Actor and wait for it to finish
run = client.actor("red_crawler/reddit-subreddits").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 '{
  "endpoint": "subreddit_info",
  "info_subreddit": "AskReddit",
  "rules_subreddit": "AskReddit",
  "sidebar_subreddit": "AskReddit",
  "autocomplete_q": "ask",
  "search_names_q": "ask",
  "post_listings_subreddit": "AskReddit",
  "membership_subreddit": "AskReddit",
  "post_requirements_subreddit": "AskReddit",
  "create_subreddit_name": ""
}' |
apify call red_crawler/reddit-subreddits --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/cvNLryHVZTL1BrWkn/builds/dymUDVizNLs5rspeF/openapi.json
