# Patreon Scraper (`parsebird/patreon-scraper`) Actor

Scrape Patreon creators, membership tiers and posts without login. Get patron counts, paid members, tier prices, post likes and comments. Search creators by keyword, browse Explore topics, or fetch posts by URL.

- **URL**: https://apify.com/parsebird/patreon-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 records

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Patreon Scraper

Patreon Scraper extracts **public Patreon creator pages, membership tiers, and posts** without a Patreon account. Each creator comes with the patron count, paid-member count, total post count, tier prices, and social links. Each post comes with likes, comments, post type, and the full text when the post is public.

<table><tr>
<td style="border-left:4px solid #FF424D;padding:12px 16px;font-weight:600">
Scrape creators by name or URL, search Patreon by keyword, or browse 33 Patreon Explore topics, then filter by patron count and get creator stats, every paid tier with its price, and up to 1,000 recent posts per creator.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/patreon-scraper — scrapes public Patreon creators, membership tiers and posts without login. Input: {"mode": "creator"|"posts"|"search"|"explore"|"postByUrl" (default "creator"), "creators": ["PhilosophyTube", "https://www.patreon.com/thedollop"] (modes creator/posts; vanity names or URLs incl. /c/<name> and user?u=<id>), "searchQuery": "philosophy" (mode search), "category": "podcasts_and_shows"|"entertainment"|"comedy"|"pop_culture"|"true_crime"|"asmr"|"sports"|"educational"|"science"|"technology"|"music"|"musical_education"|"visual_arts"|"illustration"|"painting"|"comics"|"photography"|"art_tutorials"|"writing"|"video_games"|"indie_games"|"tabletop_games"|"role_playing_games"|"lifestyle"|"travel"|"spirituality"|"religion"|"beauty"|"wellness"|"fitness_and_health"|"handicrafts"|"social_impact"|"apps_and_software" (mode explore; empty = most popular overall), "exploreSort": "popular"|"trending", "postUrls": ["https://www.patreon.com/posts/171263802"] (mode postByUrl), "includePosts": true (mode creator), "maxPostsPerCreator": 20 (1-1000), "minPatronCount": 1000 (optional), "excludeNsfw": false, "maxItems": 50 (1-5000, creators + posts)}. Run via ApifyClient("YOUR_TOKEN").actor("parsebird/patreon-scraper").call(run_input=input). Output: creator records (recordType "creator": id, vanity, url, name, creationName, oneLiner, summary, currency, patronCount, paidMemberCount, creationCount, payPerName, isMonthly, isNsfw, offersFreeMembership, offersPaidMembership, tierCount, lowestTierAmount, publishedAt, createdAt, avatarPhotoUrl, coverPhotoUrl, pledgeUrl, mainVideoUrl, creator {id, fullName, vanity, url, imageUrl, socialLinks}, tiers [{id, title, description, amountCents, amountUsd, currency, postCount, userLimit, remaining, requiresShipping, imageUrl, checkoutUrl, publishedAt}], scrapedAt) and post records (recordType "post": id, vanity, campaignId, title, publishedAt, editedAt, url, postType, isPaid, isPublic, isPayPerPost, minCentsPledgedToView, commentCount, likeCount, teaserText, content, thumbnailUrl, embedUrl, embedProvider, embedSubject, scrapedAt). Empty fields are omitted. In mode creator with posts, posts go to a separate run dataset whose ID is in the default key-value store record OUTPUT (postsDatasetId). Pricing: pay per record. Get your API token at https://console.apify.com/account#/integrations. Full API spec: https://apify.com/parsebird/patreon-scraper/api
```

### What is Patreon Scraper?

Patreon Scraper is a **Patreon data extraction tool** that reads what [Patreon](https://www.patreon.com/) shows to any logged-out visitor and turns it into structured data. Use it as a **Patreon API alternative**: the [official Patreon API](https://docs.patreon.com/) needs OAuth and only covers your own campaign or users who authorize your app, while this scraper works for any public creator page.

The easiest way to try it: keep the example creator (`PhilosophyTube`), click **Start**, and open the dataset a few seconds later. You get the creator's page, their paid tiers, and their 10 newest posts.

No Patreon login, cookies, or proxy setup is needed.

### What can Patreon Scraper do?

- 👤 **Creator pages** — patron count, paid members, post count, launch date, tagline, about text, avatar, cover image, and social links.
- 💳 **Membership tiers** — every published paid tier with its title, price, currency, benefits text, post count, shipping flag, and checkout link. Tiers come sorted from cheapest to most expensive.
- 📝 **Creator posts** — the newest posts of any creator with title, date, type (text, podcast, video, image, link, and more), likes, comments, and whether a post is public or for members only.
- 🔎 **Keyword search** — find creators by keyword, the same way Patreon's search box does.
- 🧭 **Explore topics** — list Patreon's popular or trending creators in 33 topics, from podcasts and comedy to tabletop games and illustration.
- 🔗 **Posts by URL** — scrape single posts from a list of post links or IDs.
- 🎛️ **Filters** — keep only creators above a minimum patron count, skip adult (18+) creators, and cap the run with a record limit.

Because Patreon Scraper runs on the Apify platform, you also get:

- ⏰ [Scheduling](https://docs.apify.com/platform/schedules) to track patron counts or new posts daily or weekly.
- 🔌 [API access](https://docs.apify.com/api/v2) and client libraries for Python and JavaScript.
- 🔗 [Integrations](https://apify.com/integrations) with Make, Zapier, Google Sheets, Slack, webhooks, and more.
- 📦 Export to JSON, CSV, Excel, XML, or HTML from the Storage tab or the API.

### What data can you extract from Patreon?

**Creator records** (`recordType: "creator"`)

| Field | Description |
|-------|-------------|
| `id` | Patreon campaign ID |
| `vanity` / `url` | Creator handle and public Patreon URL |
| `name` / `creationName` / `oneLiner` | Page name, what they create, and their tagline |
| `summary` | About text as plain text |
| `patronCount` | All members, free and paid (missing if the creator hides it) |
| `paidMemberCount` | Paid members only |
| `creationCount` | Total number of posts |
| `payPerName` / `isMonthly` | Billing unit (`month`, `video`, `creation`, …) and whether billing is monthly |
| `offersFreeMembership` / `offersPaidMembership` | Whether a free tier and paid tiers exist |
| `tierCount` / `lowestTierAmount` | Number of paid tiers and the cheapest price |
| `currency` | Currency the creator charges in |
| `isNsfw` | Adult (18+) content flag |
| `publishedAt` / `createdAt` | When the page launched and was created |
| `avatarPhotoUrl` / `coverPhotoUrl` / `mainVideoUrl` | Profile images and intro video |
| `pledgeUrl` | Checkout link |
| `creator` | Owner's name, handle, image, and social links (YouTube, X, Facebook, Twitch) |
| `tiers` | Paid tiers (see below) |

**Tier fields** (inside `tiers`)

| Field | Description |
|-------|-------------|
| `id` / `title` / `description` | Tier ID, name, and benefits as plain text |
| `amountCents` / `amountUsd` | Price in cents and as a decimal in the creator's currency |
| `currency` | Currency code |
| `postCount` | Posts available to this tier |
| `userLimit` / `remaining` | Seat limit and seats left, for limited tiers |
| `requiresShipping` | True when the tier includes physical rewards |
| `imageUrl` / `checkoutUrl` | Tier image and direct join link |

**Post records** (`recordType: "post"`)

| Field | Description |
|-------|-------------|
| `id` / `url` / `title` | Post ID, link, and title |
| `vanity` / `campaignId` | Creator the post belongs to |
| `publishedAt` / `editedAt` | Publish and last edit time |
| `postType` | `text_only`, `podcast`, `video_embed`, `video_external_file`, `image_file`, `audio_file`, `link`, and others |
| `isPublic` / `isPaid` | Whether a logged-out visitor can read it, or it's locked to members |
| `isPayPerPost` | True when patrons are charged per post |
| `likeCount` / `commentCount` | Engagement counts |
| `content` | Full post text as plain text (public posts) |
| `teaserText` | Public teaser of a locked post, when the creator writes one |
| `thumbnailUrl` | Post image or video thumbnail |
| `embedUrl` / `embedProvider` / `embedSubject` | Linked or embedded video or web page |

Empty fields are left out of each record.

### How to scrape Patreon

1. Open [Patreon Scraper](https://apify.com/parsebird/patreon-scraper) and click **Try for free** to open it in Apify Console.
2. Choose a **Mode**: *Creators*, *Posts of creators*, *Search creators by keyword*, *Explore creators by topic*, or *Posts by URL*.
3. Fill in the field for that mode: creator names or URLs, a search keyword, an Explore topic, or post URLs.
4. Optionally set **Minimum patrons**, **Exclude NSFW creators**, **Max posts per creator**, and **Max records**.
5. Click **Start** and wait for the run to finish. Most runs take seconds.
6. Open the **Storage** tab and download the data as JSON, CSV, Excel, XML, or HTML.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `mode` | string | **Yes** | `creator` | `creator` (page + tiers + posts), `posts` (posts only), `search` (creators by keyword), `explore` (creators by topic), `postByUrl` (single posts) |
| `creators` | array | For `creator`, `posts` | — | Vanity names or URLs: `PhilosophyTube`, `https://www.patreon.com/thedollop`, `https://www.patreon.com/c/PhilosophyTube`, `https://www.patreon.com/user?u=315829` |
| `searchQuery` | string | For `search` | — | Keyword, e.g. `philosophy` |
| `category` | string | No | — | Explore topic for `explore`, e.g. `podcasts_and_shows`, `comedy`, `tabletop_games`. Empty = most popular creators overall |
| `exploreSort` | string | No | `popular` | `popular` or `trending` |
| `postUrls` | array | For `postByUrl` | — | Post URLs or post IDs |
| `includePosts` | boolean | No | `true` | In `creator` mode, also save each creator's newest posts |
| `maxPostsPerCreator` | integer | No | `20` | Newest posts per creator (1–1,000) |
| `minPatronCount` | integer | No | — | Only save creators with at least this many patrons |
| `excludeNsfw` | boolean | No | `false` | Skip creators marked as adult content |
| `maxItems` | integer | No | `50` | Maximum records per run, creators + posts (1–5,000) |

**Batch creators, no posts, at least 1,000 patrons**

```json
{
  "mode": "creator",
  "creators": ["PhilosophyTube", "thedollop", "naddpod"],
  "includePosts": false,
  "minPatronCount": 1000
}
```

**Search creators by keyword**

```json
{
  "mode": "search",
  "searchQuery": "philosophy",
  "minPatronCount": 500,
  "maxItems": 50
}
```

**Trending creators in an Explore topic**

```json
{
  "mode": "explore",
  "category": "tabletop_games",
  "exploreSort": "trending",
  "maxItems": 100
}
```

**Posts by URL**

```json
{
  "mode": "postByUrl",
  "postUrls": [
    "https://www.patreon.com/posts/171263802",
    "https://www.patreon.com/PhilosophyTube/posts/september-diary-168975308"
  ]
}
```

### Output example

A creator record (summary and tier text shortened):

```json
{
  "recordType": "creator",
  "id": "131434",
  "vanity": "thedollop",
  "url": "https://www.patreon.com/thedollop",
  "name": "The Dollop - An American History Podcast",
  "creationName": "A comedic American history podcast",
  "oneLiner": "A weekly American history podcast by comedians Dave Anthony and Gareth Reynolds",
  "summary": "Dave Anthony spends days buried in the library; Gareth Reynolds hears none of the research until they're recording. …",
  "currency": "USD",
  "patronCount": 14905,
  "paidMemberCount": 8394,
  "creationCount": 1967,
  "payPerName": "month",
  "isMonthly": true,
  "isNsfw": false,
  "offersFreeMembership": true,
  "offersPaidMembership": true,
  "tierCount": 4,
  "lowestTierAmount": 3.0,
  "publishedAt": "2015-05-03T20:24:52.000+00:00",
  "pledgeUrl": "https://www.patreon.com/checkout/thedollop",
  "mainVideoUrl": "https://youtu.be/UoHvw8OzWUA",
  "creator": {
    "id": "450422",
    "fullName": "The Dollop - An American History Podcast",
    "vanity": "thedollop",
    "url": "https://www.patreon.com/thedollop",
    "socialLinks": {
      "twitter": "https://x.com/thedollop",
      "facebook": "https://www.facebook.com/thedollop"
    }
  },
  "tiers": [
    {
      "id": "28739133",
      "title": "THE BELIEVER",
      "description": "You believe in the bit. That's enough. …",
      "amountCents": 300,
      "amountUsd": 3.0,
      "currency": "USD",
      "postCount": 7,
      "requiresShipping": false,
      "checkoutUrl": "https://www.patreon.com/checkout/thedollop?rid=28739133"
    },
    {
      "id": "130136",
      "title": "THE DOLLOPER ",
      "description": "This is the one. Everything you need to be a card-carrying member of the Dollop universe. …",
      "amountCents": 1000,
      "amountUsd": 10.0,
      "currency": "USD",
      "postCount": 447,
      "requiresShipping": false,
      "checkoutUrl": "https://www.patreon.com/checkout/thedollop?rid=130136"
    }
  ],
  "scrapedAt": "2026-10-04T05:29:50Z"
}
```

A public post record:

```json
{
  "recordType": "post",
  "id": "154074906",
  "vanity": "PhilosophyTube",
  "campaignId": "114875",
  "title": "Post Mortem Livestream Tonight",
  "publishedAt": "2026-03-27T12:06:27.000+00:00",
  "url": "https://www.patreon.com/PhilosophyTube/posts/post-mortem-154074906",
  "postType": "video_embed",
  "isPaid": false,
  "isPublic": true,
  "isPayPerPost": false,
  "commentCount": 4,
  "likeCount": 59,
  "content": "Hello lovely Patrons!\n\nTonight at 19:30 British time I'll be streaming, talking about the most recent episode on conversion therapy and how we made it …",
  "embedUrl": "https://www.youtube.com/live/Jokih4Rd8gE",
  "embedProvider": "YouTube",
  "scrapedAt": "2026-10-04T05:26:32Z"
}
```

In **Creators** mode with posts, creators are saved to the run's default dataset and posts to a second dataset named `posts`, so each table stays clean. Both are listed in the run's **Storage** tab, and the posts dataset ID is saved in the `OUTPUT` record of the run's key-value store. In **Posts** and **Posts by URL** modes, posts go to the default dataset.

### Use cases

- **Creator economy research** — compare patron counts, paid-member ratios, and tier pricing across a niche.
- **Pricing benchmarks** — see how creators in your category price their tiers before you launch or reprice your own page.
- **Influencer and partnership discovery** — find podcasters, artists, and educators above a patron threshold, with their YouTube, X, and Facebook links.
- **Growth tracking** — schedule runs to follow patron and paid-member counts of selected creators over time.
- **Content monitoring** — follow new posts, posting frequency, and engagement (likes and comments) of creators you watch.
- **Market maps** — export a whole Explore topic or keyword search to a spreadsheet for analysis.

### How it works

1. Patreon Scraper reads each creator's public page data, including published tiers and the owner's public profile.
2. For posts, it pages through the creator's post feed from newest to oldest until it has the number you asked for.
3. For search and Explore, it collects the matching creators, then loads each creator's full page data.
4. Filters are applied, empty fields are removed, and every record is saved to the dataset as soon as it's ready.

### How much does it cost to scrape Patreon?

Patreon Scraper uses pay-per-event pricing: you pay for each record saved (a creator or a post). There's no extra charge for compute or proxies.

| Event | Free plan | Bronze | Silver | Gold |
|-------|-----------|--------|--------|------|
| `record-scraped` — per creator or post | $0.00399 | $0.00379 | $0.00339 | $0.00299 |
| Per 1,000 records | **$3.99** | **$3.79** | **$3.39** | **$2.99** |

For example, one creator with its 20 newest posts is 21 records, or about $0.08 on the Free plan. 1,000 records cost $3.99 on the Free plan. Use **Max records** or a [spending limit](https://docs.apify.com/platform/actors/running/usage-and-resources) to cap a run. Apify's Free plan includes monthly platform credits you can use to try the scraper.

### Use Patreon Scraper with the API

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/patreon-scraper").call(run_input={
    "mode": "search",
    "searchQuery": "true crime",
    "minPatronCount": 1000,
    "maxItems": 100,
})
for creator in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(creator["name"], creator.get("patronCount"), creator.get("lowestTierAmount"))
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('parsebird/patreon-scraper').call({
    mode: 'creator',
    creators: ['PhilosophyTube'],
    includePosts: true,
    maxPostsPerCreator: 50,
});
const { items: creators } = await client.dataset(run.defaultDatasetId).listItems();
const output = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT');
const { items: posts } = await client.dataset(output.value.postsDatasetId).listItems();
console.log(creators, posts.length);
```

See the [API tab](https://apify.com/parsebird/patreon-scraper/api) for all endpoints and the [Apify API client docs](https://docs.apify.com/api/client/python) for more options.

### Is it legal to scrape Patreon?

Patreon Scraper only reads data that Patreon shows publicly to logged-out visitors: creator pages, published tiers, post titles, engagement counts, and the text of public posts. It does not log in, use cookies, or unlock members-only content. Some of this data belongs to individual creators, so make sure your use complies with data protection laws such as GDPR, Patreon's terms, and other rules that apply to you, and consult a lawyer if in doubt. Read more in Apify's post [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other creator and content scrapers

- [Substack Scraper](https://apify.com/parsebird/substack-scraper) — Substack posts, comments, and publication data with subscriber counts.
- [Kickstarter Scraper](https://apify.com/parsebird/kickstarter-scraper) — Kickstarter projects with funding, backers, and creator details.
- [YouTube Channel Search Scraper](https://apify.com/parsebird/youtube-channel-search-scraper) — find YouTube channels by keyword with subscriber and video counts.
- [YouTube Community Posts Scraper](https://apify.com/parsebird/youtube-community-posts-scraper) — YouTube community posts with likes, comments, and polls.
- [Twitch Scraper](https://apify.com/parsebird/twitch-scraper) — Twitch channels, live streams, clips, and VODs.
- [SoundCloud Scraper](https://apify.com/parsebird/soundcloud-scraper) — SoundCloud tracks, playlists, and artist profiles.
- [Podchaser Podcast Scraper](https://apify.com/parsebird/podchaser-scraper) — podcasts with host emails, ratings, and reach data.

### FAQ

**Do I need a Patreon account?**
No. Patreon Scraper works without login or cookies and only reads public data.

**Can it scrape members-only (patron-only) posts?**
No. For locked posts you get the title, date, type, likes, comments, thumbnail, and teaser text when the creator wrote one, but not the body. The full `content` is included only for posts that are public.

**Why is `patronCount` missing for some creators?**
Creators can hide their member count on Patreon. Those creators are still saved, without `patronCount` and `paidMemberCount`. When **Minimum patrons** is set, creators with a hidden count are skipped because they can't be checked.

**Does it include earnings or income?**
No. Patreon does not show earnings publicly for most creators, so this field is not included.

**Can I get the number of patrons on each tier?**
No. Patreon doesn't show per-tier member counts to logged-out visitors. Each tier includes its price, benefits, post count, and seat limit when the tier is limited.

**Are comments included?**
Not in this version. Each post includes `commentCount` and `likeCount`.

**How many creators can search and Explore return?**
Search returns as many creators as Patreon finds for the keyword (for example, 170 for `podcast` and 63 for `philosophy` when tested). Explore returns up to 120 creators per topic and sort order, which is the size of Patreon's own Explore lists. Run both `popular` and `trending` for more creators in a topic.

**Why don't adult creators show up in search or Explore?**
Patreon hides adult (18+) creators from logged-out search and Explore. You can still scrape them by name in **Creators** or **Posts** mode, and **Exclude NSFW creators** skips them there.

**Which creator URL formats work?**
Vanity names (`PhilosophyTube`), page URLs (`https://www.patreon.com/PhilosophyTube`), new-style URLs (`https://www.patreon.com/c/PhilosophyTube`), and user-ID URLs (`https://www.patreon.com/user?u=315829`).

**How do I track creators over time?**
Save your input as a [task](https://docs.apify.com/platform/actors/running/tasks) and add a [schedule](https://docs.apify.com/platform/schedules). Each run adds a dated snapshot (`scrapedAt`) that you can send to Google Sheets or a webhook via [integrations](https://apify.com/integrations).

**Something doesn't work or you need a new field?**
Open an issue in the [Issues tab](https://apify.com/parsebird/patreon-scraper/issues). We read every report.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/patreon-scraper/changelog.md

# Actor input Schema

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

Choose what to scrape. <b>Creators</b>: creator page + tiers (and posts if enabled). <b>Posts</b>: posts only. <b>Search</b>: creators matching a keyword. <b>Explore</b>: creators from a Patreon Explore topic. <b>Posts by URL</b>: single posts.

## `creators` (type: `array`):

Add Patreon creator names or page URLs, e.g. <code>PhilosophyTube</code>, <code>https://www.patreon.com/thedollop</code>, <code>https://www.patreon.com/c/PhilosophyTube</code> or <code>https://www.patreon.com/user?u=315829</code>. Used in <b>Creators</b> and <b>Posts</b> modes.

## `searchQuery` (type: `string`):

Enter a keyword to find creators, e.g. <code>philosophy</code>, <code>true crime podcast</code>, <code>miniatures</code>. Used in <b>Search</b> mode.

## `category` (type: `string`):

Pick a Patreon Explore topic. Leave empty to list Patreon's most popular creators overall. Patreon shows up to 120 creators per topic and sort order. Used in <b>Explore</b> mode.

## `exploreSort` (type: `string`):

Choose Patreon's <b>Popular</b> or <b>Trending</b> list for the topic. Used in <b>Explore</b> mode.

## `postUrls` (type: `array`):

Add Patreon post URLs or IDs, e.g. <code>https://www.patreon.com/posts/september-diary-168975308</code> or <code>168975308</code>. Used in <b>Posts by URL</b> mode.

## `includePosts` (type: `boolean`):

Also scrape each creator's latest posts in <b>Creators</b> mode. Posts are saved in a separate <code>posts</code> dataset of the run (see the Storage tab).

## `maxPostsPerCreator` (type: `integer`):

Set how many of the newest posts to save per creator.

## `minPatronCount` (type: `integer`):

Only save creators with at least this many patrons (free + paid). Creators who hide their patron count are skipped when this is set.

## `excludeNsfw` (type: `boolean`):

Skip creators that Patreon marks as adult (18+) content.

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

Set the maximum number of records (creators + posts) to save in this run.

## Actor input object example

```json
{
  "mode": "creator",
  "creators": [
    "PhilosophyTube"
  ],
  "searchQuery": "philosophy",
  "exploreSort": "popular",
  "includePosts": true,
  "maxPostsPerCreator": 10,
  "excludeNsfw": false,
  "maxItems": 20
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `output` (type: `string`):

No description

# 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": "creator",
    "creators": [
        "PhilosophyTube"
    ],
    "searchQuery": "philosophy",
    "maxPostsPerCreator": 10,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/patreon-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": "creator",
    "creators": ["PhilosophyTube"],
    "searchQuery": "philosophy",
    "maxPostsPerCreator": 10,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/patreon-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": "creator",
  "creators": [
    "PhilosophyTube"
  ],
  "searchQuery": "philosophy",
  "maxPostsPerCreator": 10,
  "maxItems": 20
}' |
apify call parsebird/patreon-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/patreon-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/zKuujDRFtpz0IEQGT/builds/DP0bRQasJ2yap7ADg/openapi.json
