# Reddit Subreddit Database — Audience Finder & Targeting Data (`memo23/reddit-subreddit-db-scraper`) Actor

Reddit subreddit database — search or browse communities with subscriber counts, categories and descriptions, straight from Reddit's advertiser targeting catalogue. Plus geo, interest, device and carrier reference lists. No login or token. JSON/CSV.

- **URL**: https://apify.com/memo23/reddit-subreddit-db-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media, Agents, AI
- **Stats:** 16 total users, 13 monthly users, 97.4% runs succeeded, 0 bookmarks
- **User rating**: 4.95 out of 5 stars

## Pricing

from $2.00 / 1,000 rows

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/actors/running/actors-in-store.md#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 Subreddit Database — Audience Finder & Targeting Data

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-reddit-subreddit-db.png" alt="Reddit Subreddit Database" width="760">
</p>

**Find the right subreddits, with real numbers attached.** Search or browse Reddit's community catalogue and get each subreddit's **subscriber count, categories and description** as clean rows. The data comes from Reddit's own advertiser targeting catalogue, so it is curated and consistent — not stitched together from scattered public endpoints.

> **Zero setup. No login, no token, no cookies.** Press Start.

| You provide | You get back |
|---|---|
| Keywords (e.g. `crypto`, `gardening`) | Every subreddit Reddit matches to that topic, with subscriber counts |
| Nothing | The whole catalogue, ranked biggest-first |
| A different `mode` | Reddit's geo, interest, device or carrier targeting lists |

### Why use it

- **Audience research** — find the communities where a topic actually lives, sized by subscribers, before you post or advertise.
- **Ad planning** — these are the exact communities, interests, locations, devices and carriers Reddit lets advertisers target.
- **Market mapping** — one keyword returns the full cluster of related subreddits (searching `crypto` surfaces r/CryptoCurrency at 10.1M down to niche subs under 20k).
- **Clean numbers** — every row carries a real subscriber count, so you can sort, filter and rank.

### How it works

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-reddit-subreddit-db.png" alt="How it works" width="820">
</p>

1. The actor mints a fresh short-lived access token from a maintained Reddit Ads session. Nothing for you to configure.
2. It queries Reddit's targeting catalogue for your chosen mode.
3. In `subreddits` mode it either searches each keyword, or walks the whole catalogue with cursor pagination (100 per page).
4. Rows are filtered by `minSubscribers`, de-duplicated, and pushed to your dataset.

### Input

| Field | Type | Required | Notes |
|---|---|---|---|
| `mode` | string | no | `subreddits` (default), `geolocations`, `interests`, `devices`, `carriers`. |
| `searchQueries` | array | no | Keywords for `subreddits` mode. Empty = browse the whole catalogue. |
| `minSubscribers` | integer | no | Skip communities below this size. Default `0`. |
| `maxItems` | integer | no | Row cap. Default `1000`. |
| `redditSessionCookies` | string | no | *Advanced.* Use your own Reddit Ads session; auto-refreshes. |
| `bearerToken` | string | no | *Advanced.* Raw 24h token override. |
| `scrapedoKey` | string | no | *Advanced.* Run on your own Scrape.do credits. |

#### Example input

```json
{
  "mode": "subreddits",
  "searchQueries": ["crypto", "personal finance"],
  "minSubscribers": 10000,
  "maxItems": 500
}
```

### Output

#### `rowType: "subreddit"`

```jsonc
{
  "rowType": "subreddit",
  "id": "t5_2wlj3",
  "name": "CryptoCurrency",
  "url": "https://www.reddit.com/r/CryptoCurrency",
  "subscriberCount": 10129003,
  "categories": ["Crypto"],
  "description": "Stay updated on the latest news, trends, and analysis of the cryptocurrency market.",
  "iconUrl": "https://styles.redditmedia.com/…png",
  "matchedQuery": "crypto"
}
```

#### Other modes

| Mode | Rows | Fields |
|---|---|---|
| `geolocations` | ~1,232 | `id`, `name`, `country`, `region`, `city`, `dma`, `postalCode` |
| `interests` | ~153 | `id`, `name`, `category` |
| `devices` | ~1,174 | `make`, `model` |
| `carriers` | ~72 | `id`, `name`, `countryCode` |

### Pricing

Pay-per-result: **$2.00 per 1,000 rows** ($0.002 each). No monthly rental. A keyword search returning 25 subreddits costs about five cents.

### Notes & limitations

- `matchedQuery` is present only in keyword-search runs, not when browsing the whole catalogue.
- `description` and `categories` are Reddit's own editorial fields and are occasionally empty on smaller or newer communities.
- Browse mode is ordered by subscriber count descending, so `maxItems` gives you the biggest N communities.
- Subscriber counts are Reddit's advertiser-facing figures and can differ slightly from the number shown on the public subreddit page.

### FAQ

**Do I need a Reddit account?** No. Auth is built in and refreshes itself.

**Is this every subreddit on Reddit?** It is Reddit's targetable community catalogue, which covers the communities large and active enough for advertisers. Very small or restricted subreddits may not appear.

**Can I get subscriber counts for a specific list of subreddits?** Search for each name with `searchQueries`; matches come back with counts attached.

### 🤖 For AI Agents & LLM Apps

- **Purpose:** subreddit discovery and audience sizing — turn a topic into a ranked list of communities with subscriber counts.
- **Minimal input:** `{ "mode": "subreddits", "searchQueries": ["crypto"] }` (no auth needed).
- **Output fields:** `rowType, id, name, url, subscriberCount, categories[], description, iconUrl, matchedQuery`.
- **Other modes** return `geolocation` / `interest` / `device` / `carrier` rows; check `rowType`.
- **Billing:** pay-per-result, $2 / 1,000 rows. `maxItems` bounds cost.

### ⚠️ Disclaimer

This actor collects only data Reddit exposes to advertisers in its targeting catalogue. Use it in compliance with Reddit's Terms of Service and applicable law. You are responsible for how you use the data. This tool is for market and audience research and is not affiliated with or endorsed by Reddit, Inc.

### SEO Keywords

Reddit subreddit database, subreddit finder, subreddit search, Reddit audience research, subreddit subscriber counts, Reddit targeting data, find subreddits by topic, Reddit community list, subreddit analytics, Reddit ad targeting, Reddit marketing research, subreddit discovery tool, Reddit interests targeting, Reddit geolocation targeting.

# Actor input Schema

## `mode` (type: `string`):

Which Reddit targeting catalogue to pull. 'subreddits' returns communities with subscriber counts, categories and descriptions. The others are Reddit's advertiser reference lists. Default: subreddits.

## `searchQueries` (type: `array`):

Keywords to search the subreddit catalogue, e.g. \["crypto", "gardening"]. Each returns the communities Reddit matches to that topic. Leave empty to browse the entire catalogue ranked by subscriber count.

## `minSubscribers` (type: `integer`):

Skip subreddits smaller than this. Example: 10000 keeps only communities with 10k+ members. Default 0 (keep all).

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

Stop after this many rows. Example: 500. Default 1000.

## `redditSessionCookies` (type: `string`):

Advanced. Bring your own logged-in Reddit Ads session (must include reddit\_session); the actor mints its own 24h token from it. Leave empty to use the built-in session — no setup needed.

## `bearerToken` (type: `string`):

Advanced. A raw 24h Reddit Ads bearer token, used only if session cookies are empty. No auto-refresh. Prefer leaving both blank.

## `scrapedoKey` (type: `string`):

Advanced. Run requests on your own Scrape.do credits instead of the built-in key. Leave empty to use the included one.

## Actor input object example

```json
{
  "mode": "subreddits",
  "searchQueries": [
    "crypto"
  ],
  "minSubscribers": 0,
  "maxItems": 1000
}
```

# 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 = {
    "mode": "subreddits",
    "searchQueries": [
        "crypto"
    ],
    "maxItems": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/reddit-subreddit-db-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 = {
    "mode": "subreddits",
    "searchQueries": ["crypto"],
    "maxItems": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/reddit-subreddit-db-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "subreddits",
  "searchQueries": [
    "crypto"
  ],
  "maxItems": 1000
}' |
apify call memo23/reddit-subreddit-db-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/reddit-subreddit-db-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BaqXIaZJmLiNpqL1G/builds/lqRfb1FeVckgz68Nw/openapi.json
