# Reddit Subreddit Scraper (`myagizm/reddit-subreddit-scraper`) Actor

Scrape posts from any subreddit as structured JSON — new/hot/top/rising, with text and media. No login, no API key.

- **URL**: https://apify.com/myagizm/reddit-subreddit-scraper.md
- **Developed by:** [MYM](https://apify.com/myagizm) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.10 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Subreddit Scraper — Scrape Subreddit Posts as JSON (No API Key, No Login)

<p align="center"><b>Scrape Reddit posts from any subreddit as clean, structured JSON — new, hot, top, rising, or controversial — with titles, scores, comment counts, author, flair, self text, and media URLs. No login, no API key, no cookies or account required. Export scraped data to JSON, CSV, Excel, or XML, schedule runs via API, and integrate with your tools and AI workflows.</b></p>

<p align="center"><b>Built for AI agents:</b> plug it into <b>Claude</b>, <b>ChatGPT / Codex</b>, and <b>Cursor</b> through the <b>Apify MCP server</b> so your agents can scrape Reddit posts on demand.</p>

<p align="center">
<a href="https://apify.com/myagizm/reddit-subreddit-scraper"><img src="https://img.shields.io/badge/Try%20Now-Reddit%20Subreddit%20Scraper-38A5F0?style=for-the-badge" alt="Try Now"></a>
<a href="https://apify.com/myagizm/reddit-subreddit-scraper/input-schema"><img src="https://img.shields.io/badge/Input%20Schema-View-5C6BC0?style=for-the-badge" alt="Input Schema"></a>
<a href="https://docs.apify.com/api/v2"><img src="https://img.shields.io/badge/API%20Docs-Apify-FF9012?style=for-the-badge" alt="API Docs"></a>
<a href="https://mcp.apify.com"><img src="https://img.shields.io/badge/MCP-AI%20Agents-7E57C2?style=for-the-badge" alt="MCP Server"></a>
</p>

<p align="center">
<a href="#what-can-reddit-subreddit-scraper-do">What it does</a> •
<a href="#use-with-ai-agents-mcp">AI agents (MCP)</a> •
<a href="#how-to-scrape-a-subreddit">How to use</a> •
<a href="#what-data-can-i-scrape-from-a-subreddit">Output data</a> •
<a href="#limits">Limiting results</a> •
<a href="#output-example">Output example</a> •
<a href="#how-much-does-scraping-a-subreddit-cost">Pricing</a> •
<a href="#integrations">Integrations</a> •
<a href="#faq">FAQ</a> •
<a href="#want-other-reddit-data">Other Reddit scrapers</a>
</p>

***

### What can Reddit Subreddit Scraper do? {#what-can-reddit-subreddit-scraper-do}

**Reddit Subreddit Scraper** turns any public subreddit into a structured dataset. Scrape Reddit posts from one or more subreddit names — like `AskReddit`, `technology`, or `news` — choose how you want the listing sorted, and get back a clean row for every post: title, score, number of comments, author, flair, creation time, permalink, self text, and (optionally) image and video URLs.

There is nothing to configure beyond the input form. **No API key, no login, no cookies or account required** — no developer account, no OAuth, no proxy setup. The actor handles fetching, pagination, retries, and normalization for you, and hands back ready-to-use JSON, CSV, Excel, or XML. It collects only **publicly available data**, and lets you go beyond the limitations of the official Reddit API — scrape subreddits **at scale** with **no limitations on requests**.

**Get your first results free in under 2 minutes** — enter a subreddit, click Start, and watch the posts stream into your dataset.

#### ✅ Scrape any subreddit, any sort order

Scrape Reddit posts from a single subreddit or a whole list of them in one run. Pick the listing you want — **New**, **Hot**, **Top**, **Rising**, or **Controversial** — exactly as you would browse it on Reddit. For **Top** and **Controversial**, choose a time window (past hour, day, week, month, year, or all time).

#### 🗂️ Structured, predictable subreddit fields

Every post comes back with the same flat schema, so it drops straight into a spreadsheet, database, or data warehouse. No HTML parsing, no scraping logic to maintain — just consistent columns like `title`, `score`, `numComments`, `author`, `subreddit`, `createdUtc`, and `url`. **Fast, fresh data**, every run.

#### 💬 Post text and metadata

Optionally pull each post's self/body text (`selftext`) so you get the full content, not just the headline. Flags like `nsfw`, `isSelf`, `spoiler`, `stickied`, `archived`, `gilded`, and `edited` come along for the ride, so you can filter and segment however you like.

#### 📊 Scrape media from a subreddit

Turn on media extraction to capture image and video URLs (single images, videos, galleries, and common external hosts) alongside each post — ideal for building image datasets, monitoring visual trends, or archiving content.

#### 🔄 Keyword and date filtering

Narrow a run to only the Reddit posts you care about: keep posts whose title or text contains one of your keywords, and/or keep only posts created on or after a given date. Skip NSFW content entirely, or include it — your call.

#### ⚡ Fast, bounded runs

Set a hard cap on how many posts you want, how many per subreddit, and how deep to paginate. Runs are designed to finish quickly and predictably so you can schedule them or call them from an agent without babysitting.

#### 🤖 Agent- and automation-ready

Because it needs zero credentials and returns clean JSON, this actor is perfect for AI agents and no-code automations. Call it from Claude, ChatGPT, Cursor, n8n, Zapier, or Make and scrape Reddit posts back in seconds.

***

### Use with AI agents — Claude, ChatGPT & Cursor (MCP) {#use-with-ai-agents-mcp}

This actor is exposed through the **Apify MCP (Model Context Protocol) server**, which means any MCP-capable AI assistant can run it as a tool and reason over the results.

- **Claude** (Claude Desktop, Claude Code, or the API) — add the Apify MCP server and let Claude scrape Reddit posts from any subreddit directly.
- **ChatGPT / Codex** — wire the actor in as a tool so your GPT can fetch fresh subreddit posts mid-conversation.
- **Cursor** — pull live Reddit data into your coding workflow while you build.

Once the data is in your agent, connect it to the rest of your stack with MCP connectors and automation platforms: **Slack**, **Notion**, **Airtable**, **Google Sheets**, **Zapier**, **Make**, and **n8n**. Ask your agent to "get the top posts from r/technology this week and drop them in Airtable," and it will run the scraper and route the results — no glue code required.

MCP server: `https://mcp.apify.com`

***

### How to scrape a subreddit {#how-to-scrape-a-subreddit}

1. Open the **[Reddit Subreddit Scraper](https://apify.com/myagizm/reddit-subreddit-scraper)** on Apify.
2. In **Subreddits**, enter one or more subreddit names — for example `AskReddit`, `technology`, `news`. The `r/` prefix is optional.
3. Choose a **Sort** order: New, Hot, Top, Rising, or Controversial.
4. If you picked Top or Controversial, choose a **Time range** (past hour → all time).
5. (Optional) Toggle **Include post text**, **Include media URLs**, or **Include NSFW**.
6. (Optional) Add a **Keyword filter** and/or an **Only posts on/after** date.
7. Set your limits — **Max items**, **Max posts per subreddit**, **Max listing pages**.
8. Click **Start**. When the run finishes, download the results as **JSON, CSV, Excel, or XML**, or pull them via the API.

That's it. No account, no API key, no proxy configuration. **Get your first results free in under 2 minutes.**

***

### What data can I scrape from a subreddit? {#what-data-can-i-scrape-from-a-subreddit}

Each Reddit post in the dataset is one row with the fields below.

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Reddit post ID (e.g. `t3_1uzslkc`). |
| `type` | string | Item type — always `post` for this actor. |
| `title` | string | Post title. |
| `author` | string | Username of the poster. |
| `subreddit` | string | Subreddit the post came from. |
| `url` | string | Canonical permalink to the post. |
| `outboundUrl` | string | The link the post points to (external URL for link posts, permalink for self posts). |
| `domain` | string | Source domain (e.g. `self.AskReddit`, `i.redd.it`). |
| `score` | integer | Net upvotes at scrape time. |
| `numComments` | integer | Number of comments. |
| `flair` | string | Post flair text, if any. |
| `selftext` | string | Post body/self text (when **Include post text** is on). |
| `createdUtc` | string | Post creation time (ISO 8601, UTC). |
| `createdText` | string | Human-readable relative time (e.g. `11 hours ago`). |
| `scrapedAt` | string | When the row was captured (ISO 8601). |
| `nsfw` | boolean | Whether the post is flagged over-18 / NSFW. |
| `isSelf` | boolean | Whether it's a self (text) post. |
| `spoiler` | boolean | Whether the post is marked as a spoiler. |
| `stickied` | boolean | Whether the post is pinned in the subreddit. |
| `archived` | boolean | Whether the post is archived. |
| `gilded` | boolean | Whether the post received awards. |
| `edited` | boolean | Whether the post has been edited. |
| `thumbnail` | string | Thumbnail URL, when available. |
| `sourceType` | string | How the row was collected (e.g. `listing`). |

> Media URLs (image/video/gallery links) are included when **Include media URLs** is enabled.

***

### Use cases — why scrape Reddit posts?

- **Market & product research** — track what people ask, praise, or complain about in niche subreddits.
- **Brand & reputation monitoring** — watch mentions and sentiment around your product or competitors.
- **Trend detection** — pull Top/Rising posts on a schedule to spot emerging topics early.
- **Lead & opportunity discovery** — filter posts by keywords like `hiring`, `looking for`, or `recommend`.
- **Content ideation** — mine high-scoring posts to see what resonates in your space.
- **Academic & social research** — build reproducible datasets of public discussion at scale.
- **AI training & RAG** — collect clean, labeled text corpora for models and knowledge bases.
- **Media & image datasets** — harvest image/video URLs from visual subreddits.
- **News & event tracking** — follow breaking discussion in news and topic subreddits.

***

### Input examples

Below are ready-to-paste input configurations using the **real field names** this actor accepts.

#### Scrape the hottest posts from one subreddit

```json
{
  "subreddits": ["AskReddit"],
  "sort": "hot",
  "maxItems": 50
}
```

#### Top posts from multiple subreddits this week

```json
{
  "subreddits": ["technology", "news"],
  "sort": "top",
  "time": "week",
  "includeSelftext": true,
  "maxItems": 100,
  "maxPostsPerSource": 50
}
```

#### Only keyword-matching posts, with media URLs

```json
{
  "subreddits": ["forhire", "jobbit"],
  "sort": "new",
  "searchTerms": ["hiring", "remote"],
  "includeMedia": true,
  "maxItems": 60
}
```

#### Recent posts only, since a specific date

```json
{
  "subreddits": ["MachineLearning"],
  "sort": "new",
  "postDateLimit": "2026-01-01",
  "includeSelftext": true,
  "maxPages": 5,
  "maxItems": 100
}
```

#### Include NSFW and dig deeper with pagination

```json
{
  "subreddits": ["worldnews"],
  "sort": "controversial",
  "time": "month",
  "includeNSFW": true,
  "maxPages": 10,
  "maxPostsPerSource": 80,
  "maxItems": 100
}
```

#### Field reference

| Input field | Type | Default | What it does |
|-------------|------|---------|--------------|
| `subreddits` | array | `["AskReddit"]` | Subreddit names to scrape. `r/` prefix optional. |
| `sort` | string | `hot` | Listing order: `new`, `hot`, `top`, `rising`, `controversial`. |
| `time` | string | `all` | Time window for Top/Controversial: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `includeSelftext` | boolean | `true` | Fetch each post's self/body text. |
| `includeMedia` | boolean | `false` | Extract image/video/gallery URLs. |
| `includeNSFW` | boolean | `false` | Include posts flagged over-18 / NSFW. |
| `postDateLimit` | string | — | Keep only posts on/after this date (`YYYY-MM-DD`). |
| `searchTerms` | array | — | Keep only posts whose title/text contains one of these words. |
| `maxItems` | integer | `50` | Hard cap on total posts saved (1–100). |
| `maxPostsPerSource` | integer | `25` | Cap on posts kept per subreddit (1–100). |
| `maxPages` | integer | `1` | Pagination depth per subreddit, 25 posts/page (1–20). |
| `maxRetries` | integer | `3` | Retry attempts per failed request (0–6). |
| `requestDelayMs` | integer | `300` | Politeness delay between requests, ms (0–10000). |
| `debug` | boolean | `false` | Emit verbose logs. |

***

### Limiting results {#limits}

This actor gives you fine-grained control over run size so you only pay for what you need:

- **`maxItems`** — the hard ceiling on total posts saved across the whole run (default `50`, max `100`).
- **`maxPostsPerSource`** — the cap on posts kept from each individual subreddit (default `25`, max `100`). Useful when scraping several subreddits at once and you want balanced coverage.
- **`maxPages`** — how many listing pages to paginate through per subreddit, at 25 posts per page (default `1`, max `20`). Increase this to reach further back in a listing.

A single run lasts at most about **10 minutes**, and only one long-running job runs at a time, so keep your caps sensible for the freshest, fastest results. For large ongoing collection, schedule multiple smaller runs rather than one huge one.

***

### Output example {#output-example}

A single dataset item looks like this:

```json
{
  "id": "t3_1uzslkc",
  "url": "https://www.reddit.com/r/AskReddit/comments/1uzslkc/what_was_one_one_name_mentioned_in_the_epstein/",
  "nsfw": false,
  "type": "post",
  "flair": "",
  "score": 4175,
  "title": "What was one one name mentioned in The Epstein Files which shocked you ?",
  "author": "Soft_Drummer1745",
  "domain": "self.AskReddit",
  "edited": false,
  "gilded": false,
  "isSelf": true,
  "spoiler": false,
  "archived": false,
  "selftext": "",
  "stickied": false,
  "scrapedAt": "2026-07-18T22:03:47.817Z",
  "subreddit": "AskReddit",
  "thumbnail": "",
  "createdUtc": "2026-07-18T10:44:05+00:00",
  "sourceType": "listing",
  "createdText": "11 hours ago",
  "numComments": 1749,
  "outboundUrl": "https://www.reddit.com/r/AskReddit/comments/1uzslkc/what_was_one_one_name_mentioned_in_the_epstein/"
}
```

You can export the full dataset as **JSON**, **CSV**, **Excel**, **HTML table**, **XML**, or **RSS** from the Apify console or via the API.

***

### How much does scraping a subreddit cost? {#how-much-does-scraping-a-subreddit-cost}

This actor uses simple, predictable **pay-per-result** pricing — you're billed for the Reddit posts you actually collect, not for time spent or infrastructure. Because runs are fast and bounded by your `maxItems` cap, costs stay easy to forecast: a 50-post run costs half of a 100-post run.

New Apify accounts include free monthly usage credits, so you can **get your first results free in under 2 minutes** and try the Reddit Subreddit Scraper at no cost. See the **Pricing** tab on the [actor page](https://apify.com/myagizm/reddit-subreddit-scraper) for current rates.

***

### Integrate with n8n, Zapier, and Make {#integrations}

The actor runs like any other Apify actor, so you can trigger it and read results from any tool that speaks HTTP. There are native integrations for **Make, Zapier, n8n, Slack, Airbyte, Gumloop, CrewAI, IFTTT, Lindy, GitHub, Google Sheets, and Google Drive**, plus a plain REST API and webhooks.

The actor path is `myagizm~reddit-subreddit-scraper`.

#### Run synchronously and get results in one call

Best for small runs where you want the dataset items back immediately:

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~reddit-subreddit-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subreddits": ["technology", "news"],
    "sort": "top",
    "time": "week",
    "maxItems": 50
  }'
```

#### Start a run asynchronously

Best for larger or scheduled jobs — start the run, then poll or use a webhook:

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~reddit-subreddit-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subreddits": ["AskReddit"],
    "sort": "hot",
    "maxItems": 100
  }'
```

#### Fetch dataset items later

```bash
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"
```

Replace `YOUR_APIFY_TOKEN` with your Apify API token and `DATASET_ID` with the dataset ID from the run response. You can request `format=csv`, `format=xlsx`, `format=xml`, and more.

***

### Want other Reddit data? {#want-other-reddit-data}

This Reddit Subreddit Scraper is part of a full **myagizm** Reddit toolkit. Need to scrape something else on Reddit? Pick the right tool for the job:

- **[Reddit Scraper](https://apify.com/myagizm/reddit-scraper)** — the all-in-one Reddit scraper for posts, comments, and subreddits from any URL.
- **[Reddit Comment Scraper](https://apify.com/myagizm/reddit-comment-scraper)** — pull full comment threads from any post.
- **[Reddit Search Scraper](https://apify.com/myagizm/reddit-search-scraper)** — scrape Reddit search results by keyword across the whole site.
- **[Reddit Community Scraper](https://apify.com/myagizm/reddit-community-scraper)** — get subreddit metadata, rules, and community stats.
- **[Reddit Profile Scraper](https://apify.com/myagizm/reddit-profile-scraper)** — collect a user's posts, comments, and profile details.

Working with other platforms too? Explore the wider myagizm store for **[YouTube](https://apify.com/myagizm/youtube-channel-scraper)**, **[Instagram](https://apify.com/myagizm/instagram-profile-scraper)**, **[LinkedIn](https://apify.com/myagizm/linkedin-profile-scraper)**, and **[Facebook](https://apify.com/myagizm/facebook-page-scraper)** data.

***

### Support {#support}

Questions, feature requests, or something not working as expected? Open an **Issue** on the [actor's page](https://apify.com/myagizm/reddit-subreddit-scraper/issues) and we'll take a look. Suggestions for new fields or filters are always welcome — this actor is actively maintained.

***

### FAQ — scraping Reddit posts {#faq}

#### Is it legal to scrape Reddit?

This actor collects only **publicly available** data — the same posts anyone can see without logging in. Scraping public data is generally lawful, but you are responsible for how you use it. Respect applicable laws, terms, and privacy regulations (such as GDPR), and don't use collected data to harass individuals.

#### Do I need a Reddit account or API key to scrape a subreddit?

No. There's **no login, no API key, no cookies or account required**, no OAuth, and no app registration. Enter a subreddit name and run it.

#### Can I use the Reddit Subreddit Scraper with the Apify API?

Yes. Start runs and fetch datasets via the Apify REST API using the actor path `myagizm~reddit-subreddit-scraper`. Use the sync endpoint for small runs or the async endpoint plus webhooks for larger, scheduled jobs.

#### Can I scrape Reddit data through an MCP server (AI agents)?

Yes. It's available through the Apify MCP server, so Claude, ChatGPT/Codex, and Cursor can call it as a tool and work with the results.

#### Do I need to configure proxies or cookies to scrape a subreddit?

No. The actor handles all connectivity, retries, and rate management for you. There's nothing to set up.

#### Can I integrate subreddit data with other apps?

Yes. Native integrations cover Make, Zapier, n8n, Slack, Google Sheets, Google Drive, GitHub, and more, plus webhooks and a plain REST API to push data anywhere.

#### Can I export Reddit posts to CSV, Excel, or JSON?

Yes — JSON, CSV, Excel (XLSX), HTML table, XML, and RSS, from the console or the API.

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

Yes. Enter several subreddit names in the **Subreddits** field and the actor scrapes them all in one run, with `maxPostsPerSource` keeping coverage balanced across them.

#### Can I schedule the Reddit Subreddit Scraper?

Yes. Use Apify **Schedules** to run the scraper hourly, daily, or on any cron expression — perfect for monitoring and trend tracking.

#### Can I scrape posts from private subreddits?

No — public subreddits only. Enter one or many in the **Subreddits** field; the `r/` prefix is optional. Private or banned subreddits can't be accessed.

#### Can I get the full post text, not just titles?

Yes. Keep **Include post text** enabled (it's on by default) to capture each post's `selftext` body.

#### Can I extract images and videos from a subreddit?

Yes. Turn on **Include media URLs** to capture image, video, and gallery links alongside each post.

#### How do I filter to only relevant posts?

Use **Keyword filter** (`searchTerms`) to keep only posts whose title or text contains one of your words, and/or **Only posts on/after** (`postDateLimit`) to restrict by date. You can also exclude NSFW content.

#### How many posts can I scrape per run?

Up to 100 posts per run (`maxItems`), balanced across subreddits with `maxPostsPerSource`, and reaching deeper into listings with `maxPages`. For more, schedule multiple runs.

#### Why did I get fewer posts than my limit?

Your effective count is bounded by whichever is smallest: `maxItems`, `maxPostsPerSource` × number of subreddits, and `maxPages` × 25. Filters (keywords, date, NSFW) can also reduce the total.

***

### Related searches {#related-searches}

subreddit scraper · scrape subreddit posts · reddit top posts export · monitor subreddit · subreddit data csv · reddit hot posts scraper · reddit new posts monitor · subreddit archive tool · reddit niche research · reddit job posts scraper · scrape subreddit without login · x402 actor · ai agent scraper no account · pay with usdc api · mcp scraper for agents

***

### Run it from an AI agent — no Apify account needed (x402) {#x402}

This actor accepts **agentic payments** over the open [x402 protocol](https://docs.apify.com/integrations/x402). An AI agent can pay for a run in **USDC on Base** and get the data without an Apify account, a credit card, or an API key:

```bash
## one-time: wallet + prepaid token (agent side)
npx -y awal auth login <email>
npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1&currency=usd' --max-amount 1000000 --json
## then use the returned token exactly like an Apify API token
curl "https://api.apify.com/v2/acts/myagizm~reddit-subreddit-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $PREPAID_TOKEN" -H 'Content-Type: application/json' -d '{INPUT}'
```

Why it works here: this actor is **pay per event** and runs with **limited permissions**, the two conditions x402 requires. You are charged per result, so an agent pays only for the rows it receives. The prepaid token is a hard spending cap and expires 14 days after purchase.

***

### Disclaimer

This is an independent tool and is not affiliated with, endorsed by, or sponsored by Reddit. All product names, logos, and brands are property of their respective owners. Use this actor responsibly and only to collect publicly available data in compliance with applicable laws and regulations.

***

### Resources {#resources}

- [Apify API documentation](https://docs.apify.com/api/v2)
- [Apify MCP server](https://mcp.apify.com) — connect this actor to Claude, ChatGPT, and Cursor
- [Exporting dataset results](https://docs.apify.com/platform/storage/dataset) — JSON, CSV, Excel, and more
- [Apify Schedules](https://docs.apify.com/platform/schedules) — automate recurring runs
- [Reddit Subreddit Scraper on Apify](https://apify.com/myagizm/reddit-subreddit-scraper)

***

## 中文说明 —— Reddit 子版块抓取工具（V1）

> **V1 = 轻量低价线。** 本 Actor 为 V1：自包含、价格最低、尽力而为。若需要更稳定的交付与更全的字段，请使用同一功能的 **V2** 版本（见 [myagizm 商店主页](https://apify.com/myagizm)）。

**免登录抓取 Reddit 公开数据** —— 按子版块抓取帖子列表（可含正文与媒体）。不需要 Reddit API Key、不需要 OAuth 应用、不需要登录或 Cookie。结果可导出为 JSON、CSV、Excel、XML，也可通过 Apify API 定时运行并接入 n8n、Zapier、Make 等工具。

> **两分钟内免费拿到第一批数据** —— 填入内容、点击 Start 即可。无需配置，试用不需要信用卡。

### 能做什么

- 📥 **按子版块抓取帖子**，一次可多个版块。
- 🔀 **排序**：`hot` / `new` / `top` / `rising` / `controversial`，配合时间范围。
- 📝 **可选帖子正文**（`includeSelftext`）与**媒体链接**（`includeMedia`）。
- 🔎 **站内关键词过滤**（`searchTerms`）。
- 🗓️ **日期截断**（`postDateLimit`）。
- 📌 **置顶、剧透、NSFW、归档、编辑**等状态标记齐全。
- 📏 **`maxItems` / `maxPostsPerSource` / `maxPages`** 控制深度与成本。

### 谁在用

- 📊 **市场研究** —— 持续监测一个垂直社区的话题走向。
- 🧠 **内容团队** —— 从高赞帖子里找选题。
- 💼 **招聘与自由职业者** —— 盯住招聘类版块的新帖。
- 🏢 **品牌团队** —— 跟踪与自身相关版块的讨论。
- 🧑‍💻 **数据团队** —— 构建按版块划分的帖子数据集。

### 可以抓取哪些数据

| 字段 | 类型 | 说明 |
|------|------|------|
| `id` | string | 记录 ID（帖子如 `t3_...`，评论如 `t1_...`） |
| `type` | string | 记录类型（`post` / `comment` / `user` / `community`） |
| `title` | string | 帖子标题 |
| `author` | string | 作者用户名 |
| `subreddit` | string | 所属子版块 |
| `url` | string | 永久链接 |
| `outboundUrl` | string | 帖子指向的链接（外链帖为外部地址，自帖为永久链接） |
| `domain` | string | 来源域名（如 `self.AskReddit`、`i.redd.it`） |
| `score` | integer | 抓取时的净赞数 |
| `numComments` | integer | 评论数 |
| `flair` | string | 帖子 flair 标签 |
| `selftext` | string | 帖子正文（开启 *Include post text* 时返回） |
| `createdUtc` | string | 创建时间（ISO 8601，UTC） |
| `createdText` | string | 人类可读的相对时间（如 `11 hours ago`） |
| `scrapedAt` | string | 该行的抓取时间（ISO 8601） |
| `nsfw` | boolean | 是否标记为成人内容 |
| `isSelf` | boolean | 是否为纯文本自帖 |
| `spoiler` | boolean | 是否标记为剧透 |
| `stickied` | boolean | 是否在版块内置顶 |
| `archived` | boolean | 是否已归档 |
| `gilded` | boolean | 是否获得奖励 |
| `edited` | boolean | 是否被编辑过 |
| `thumbnail` | string | 缩略图地址 |
| `sourceType` | string | 该行的采集方式（如 `listing`） |

> 字段取决于该条目公开了什么；不存在的值返回 `null`，数据结构保持稳定。

### 输入示例

```json
{
  "subreddits": ["AskReddit"],
  "sort": "hot",
  "maxItems": 50
}
```

### 输出示例

```json
{
  "id": "t3_1uzslkc",
  "url": "https://www.reddit.com/r/AskReddit/comments/1uzslkc/what_was_one_one_name_mentioned_in_the_epstein/",
  "nsfw": false,
  "type": "post",
  "flair": "",
  "score": 4175,
  "title": "What was one one name mentioned in The Epstein Files which shocked you ?",
  "author": "Soft_Drummer1745",
  "domain": "self.AskReddit",
  "edited": false,
  "gilded": false,
  "isSelf": true,
  "spoiler": false,
  "archived": false,
  "selftext": "",
  "stickied": false,
  "scrapedAt": "2026-07-18T22:03:47.817Z",
  "subreddit": "AskReddit",
  "thumbnail": "",
  "createdUtc": "2026-07-18T10:44:05+00:00",
  "sourceType": "listing",
  "createdText": "11 hours ago",
  "numComments": 1749,
  "outboundUrl": "https://www.reddit.com/r/AskReddit/comments/1uzslkc/what_was_one_one_name_mentioned_in_the_epstein/"
}
```

### 价格

采用**按结果计费**：只为真正拿到的数据付费，不按运行时间收费。

- 💸 成本 = 结果数量 × 单价，预算可提前算清。
- 📉 Apify 的 Bronze / Silver / Gold / Platinum / Diamond 套餐享阶梯折扣。
- 🆓 新账号自带每月免费额度，第一次运行不花钱。
- 🚫 无代理附加费、无单次请求费、无最低消费。

实时价格见 [Apify 商店页面](https://apify.com/myagizm/reddit-subreddit-scraper)。

### 使用建议

- 🔀 **`top` + `time` 做对标，`new` 做监控**。
- 🗓️ 监控用 `postDateLimit`，比拉大 limit 更省。
- 📌 时间序列分析时注意排除 `stickied` 置顶帖。
- 🆔 定时运行按 `id` 去重实现增量。
- 📏 每个版块单独设 `maxPostsPerSource`，避免一个热门版吃掉全部额度。

### 其他 Reddit 数据

- 🤖 **[Reddit 综合抓取](https://apify.com/myagizm/reddit-scraper-v2)** —— 子版块 / 用户 / 社区 / 搜索四合一。
- 🔎 **[Reddit 搜索抓取](https://apify.com/myagizm/reddit-search-scraper-v2)** —— 全站或指定版块关键词搜索。
- 🏘️ **[子版块抓取](https://apify.com/myagizm/reddit-subreddit-scraper-v2)** —— 按版块抓帖子。
- 💬 **[评论抓取](https://apify.com/myagizm/reddit-comment-scraper-v2)** —— 可控深度的评论采集。
- 📇 **[社区信息抓取](https://apify.com/myagizm/reddit-community-scraper-v2)** —— 版块规模与简介。
- 👤 **[用户资料抓取](https://apify.com/myagizm/reddit-profile-scraper-v2)** —— karma、账号年龄、徽章。

其他平台同样采用免登录、按结果计费的方式：**[Instagram](https://apify.com/myagizm/instagram-profile-scraper-v2)** ·
**[TikTok](https://apify.com/myagizm/tiktok-profile-scraper-v2)** · **[X（推特）](https://apify.com/myagizm/x-tweets-scraper)** ·
**[LinkedIn](https://apify.com/myagizm/linkedin-profile-scraper)** · **[YouTube](https://apify.com/myagizm/youtube-channel-scraper)** ·
**[Google 地图](https://apify.com/myagizm/google-maps-scraper)**。完整工具家族见 **[myagizm 商店主页](https://apify.com/myagizm)**。

### 配合 AI 智能体使用（MCP）

本 Actor 已接入 **Apify MCP 服务器**，Claude、ChatGPT、Cursor 等助手可以把它当作工具直接调用，用自然语言提问即可拿到结构化结果，无需写胶水代码。

### 集成与 API

支持 **Make、Zapier、n8n、Slack、Airbyte、Gumloop、CrewAI、IFTTT、Lindy、GitHub、Google Sheets、Google Drive**，以及 Webhook、定时任务与 MCP 服务器。

```bash
curl -X POST "https://api.apify.com/v2/acts/myagizm~reddit-subreddit-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "subreddits": ["AskReddit"],
  "sort": "hot",
  "maxItems": 50
}'
```

把 `format` 改成 `json`、`csv`、`xlsx` 或 `xml` 即可导出不同格式。

### 常见问题

**需要 Reddit API Key 或登录吗？**
不需要。没有 API Key、没有 OAuth 应用、不登录、不用 Cookie。

**抓取 Reddit 合法吗？**
只采集公开可见的数据，即任何未登录访客都能看到的内容。不登录、不访问私密版块或私信。合规责任由使用者承担：如涉及个人数据请遵守 GDPR / CCPA 与平台条款。

**能抓私密版块或已删除内容吗？**
不能，会被跳过并记录在运行日志中。

**需要配置代理吗？**
不需要，已内置托管。

**支持导出 CSV / Excel / JSON 吗？**
支持 JSON、CSV、Excel、XML。

**可以通过 Apify API 调用吗？**
可以，见上方示例。

**支持 AI 智能体（MCP）吗？**
支持，Claude、ChatGPT、Cursor 均可当作工具调用。

**可以定时运行吗？**
可以，支持 Apify Schedules、API 与 Webhook；按 `id` 去重即可实现增量采集。

**V1 和 V2 有什么区别？**
V1 轻量自包含、价格最低、尽力而为；V2 运行在托管基础设施上，交付更稳定、字段更全。两者输入基本一致，可以先用 V1 广筛、再用 V2 精查。

**数据有多新？**
不缓存，每次运行都读取当前公开页面。

### 让 AI 代理直接调用 —— 无需 Apify 账号（x402）

本工具支持基于开放 [x402 协议](https://docs.apify.com/integrations/x402) 的**代理支付**：AI 代理可以用 **Base 链上的 USDC** 直接付费运行，无需 Apify 账号、信用卡或 API 密钥。

```bash
npx -y awal auth login <邮箱>
npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1&currency=usd' --max-amount 1000000 --json
curl "https://api.apify.com/v2/acts/myagizm~reddit-subreddit-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $PREPAID_TOKEN" -H 'Content-Type: application/json' -d '{INPUT}'
```

之所以可用：本工具采用**按事件计费**且以**受限权限**运行，这正是 x402 的两个前提条件。按结果计费，代理只为拿到的数据付费；预付令牌本身就是消费上限，购买后 14 天到期。

***

### 免责声明

本工具为独立第三方工具，与 Reddit, Inc. 无任何隶属、认可或赞助关系，所有商标归各自所有者。

本 Actor 只采集**公开可见**的数据，不登录、不绕过访问控制、不获取私密内容。数据使用的合规责任由使用者承担。

### 相关搜索

子版块抓取 · reddit 版块帖子导出 · reddit 帖子监控 · reddit 热帖抓取 · 免登录抓取子版块 · reddit 版块数据 csv · reddit 选题挖掘 · reddit 招聘帖监控 · x402 支付 · ai 代理抓取 · usdc 付费 api

# Actor input Schema

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

Subreddit names to scrape posts from, e.g. "AskReddit", "news". The r/ prefix is optional — both "technology" and "r/technology" work.

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

Listing order, just like on Reddit. For example, choose "top" to get the highest-scoring posts.

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

Time window for Top / Controversial sorting. For example, choose "week" to get the top posts from the past 7 days.

## `includeSelftext` (type: `boolean`):

Fetch each post's self/body text (the "selftext" field). For example, a text post in r/AskReddit returns its full question body, not just the title.

## `includeMedia` (type: `boolean`):

Extract image/video URLs (i.redd.it, v.redd.it, imgur, galleries). For example, an image post in r/pics returns a direct link to the image.

## `includeNSFW` (type: `boolean`):

Include posts flagged over-18 / NSFW. For example, turn this on to include adult-tagged posts that are otherwise skipped.

## `postDateLimit` (type: `string`):

Keep only posts created on or after this date. Leave empty for no limit. For example, "2026-01-01" keeps only posts from 2026 onward.

## `searchTerms` (type: `array`):

Keep only posts whose title or text contains at least one of these words. For example, \["hiring", "remote"] keeps only posts mentioning hiring or remote work.

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

Hard cap on total posts saved across the whole run. For example, 50 stops the run once 50 posts are collected. A run lasts at most ~10 minutes.

## `maxPostsPerSource` (type: `integer`):

Cap on posts kept from each subreddit, for balanced coverage. For example, 25 keeps at most 25 posts per subreddit when scraping several at once.

## `maxPages` (type: `integer`):

Pagination depth per subreddit (25 posts/page). For example, 4 reaches roughly the first 100 posts of a listing.

## `maxRetries` (type: `integer`):

Retry attempts per failed request. For example, 3 retries a request up to three times before giving up.

## `requestDelayMs` (type: `integer`):

Politeness delay between requests, in milliseconds. For example, 300 waits 0.3 seconds between requests.

## `debug` (type: `boolean`):

Emit verbose logs, useful for troubleshooting. For example, turn this on to see each request and filter decision in the run log.

## Actor input object example

```json
{
  "subreddits": [
    "news",
    "technology"
  ],
  "sort": "hot",
  "time": "week",
  "includeSelftext": true,
  "includeMedia": false,
  "includeNSFW": false,
  "postDateLimit": "2026-01-01",
  "searchTerms": [
    "hiring",
    "release"
  ],
  "maxItems": 50,
  "maxPostsPerSource": 25,
  "maxPages": 1,
  "maxRetries": 3,
  "requestDelayMs": 300,
  "debug": false
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped items as structured JSON.

# 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 = {
    "subreddits": [
        "AskReddit"
    ],
    "sort": "hot",
    "time": "week",
    "includeSelftext": true,
    "includeMedia": false,
    "includeNSFW": false,
    "maxItems": 50,
    "maxPostsPerSource": 25,
    "maxPages": 1,
    "maxRetries": 3,
    "requestDelayMs": 300,
    "debug": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("myagizm/reddit-subreddit-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 = {
    "subreddits": ["AskReddit"],
    "sort": "hot",
    "time": "week",
    "includeSelftext": True,
    "includeMedia": False,
    "includeNSFW": False,
    "maxItems": 50,
    "maxPostsPerSource": 25,
    "maxPages": 1,
    "maxRetries": 3,
    "requestDelayMs": 300,
    "debug": False,
}

# Run the Actor and wait for it to finish
run = client.actor("myagizm/reddit-subreddit-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 '{
  "subreddits": [
    "AskReddit"
  ],
  "sort": "hot",
  "time": "week",
  "includeSelftext": true,
  "includeMedia": false,
  "includeNSFW": false,
  "maxItems": 50,
  "maxPostsPerSource": 25,
  "maxPages": 1,
  "maxRetries": 3,
  "requestDelayMs": 300,
  "debug": false
}' |
apify call myagizm/reddit-subreddit-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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