# Patreon Scraper \[Only $4/1K💰] | Creators | Tiers | Posts (`ahmed_jasarevic/patreon-scraper`) Actor

Extract Patreon creator profiles, membership tiers & prices, patron counts, public earnings, social links, and post engagement for creator economy analysis, influencer research, and sponsorship prospecting. No login or API key required.

- **URL**: https://apify.com/ahmed\_jasarevic/patreon-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 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/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

## Patreon Scraper \[Only $4/1K💰] — Creators, Tiers, Posts & Public Earnings

**Extract Patreon creator campaigns and public post archives for creator economy analysis, influencer marketing research, and sponsorship prospecting — no login, no API key.** Get creator bios, patron and paid-member counts, membership tier prices and perks, publicly visible earnings, social links, and post-level engagement as clean structured JSON.

Built for creator-economy analysts, influencer and sponsorship marketers, media strategists, and market researchers. Run it on schedule via the Apify API and export to JSON, CSV, Excel, or HTML.

### Main Use Cases

- **Creator economy analysis** — map who creates what, how many patrons they have, and how they price their membership tiers.
- **Influencer marketing research** — evaluate creators by patron count, tier pricing, and engagement before outreach.
- **Sponsorship & brand partnership prospecting** — build targeted lists of creators in your niche with their social links and audience size.
- **Patreon lead generation** — turn creator profiles into structured outreach lists you can feed into your CRM.
- **Competitor creator benchmarking** — track competitor creators' patron growth, tier pricing, and post activity over time.
- **Building a Patreon creator database** — assemble a structured dataset of creators, tiers, and public posts for dashboards, newsletters, or ML training.

### How It Works

Patreon's campaign pages sit behind **Cloudflare Bot Management** — a plain HTTP request returns 403 before any HTML loads, so static and DOM scraping both fail. Instead, this actor talks to **Patreon's own internal JSON:API** — the exact endpoints the Patreon website frontend calls (no OAuth token, no cookies). The same technique used by widely deployed open-source tooling such as `yt-dlp`'s Patreon extractor and RSSHub's Patreon route.

For each creator the actor resolves the vanity name to a campaign ID, pulls campaign + membership tiers (`rewards`) + creator profile, and paginates the public post archive with engagement counts. If Patreon ever rejects a field set or a vanity can't be resolved, it auto-falls back to a minimal field set or the campaign page's embedded `__NEXT_DATA__` payload. Results stream into the dataset as `creator`, `post`, and `search_result` records.

### Build a Patreon Creator Database Without an Official API

Patreon's official API requires OAuth and only works for a creator account you own or that authorizes your app — there is **no public endpoint for arbitrary creators**. So market research, creator discovery, influencer outreach, and competitive analysis on creators who will never connect to your app are impossible through the official API. This actor fills that gap: it extracts only **publicly visible** campaign data at scale, no login required.

- Scrape specific creators by vanity handle (`cgpgrey`) or full URL.
- **Discover creators by niche keyword** (`searchQuery`) — e.g. "true crime podcast", "indie games", "watercolor" — and get full campaign profiles for every match.
- Pull each creator's **public post archive** with like/comment engagement.
- Get **membership tier pricing and perks**, patron counts, and social links in one structured record.

### Input

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `creatorUrls` | array | No\* | `["https://www.patreon.com/cgpgrey"]` | Creator pages to scrape: full URLs or bare vanity names |
| `searchQuery` | string | No | — | Keyword to discover Patreon creators by (runs in addition to `creatorUrls`) |
| `postUrls` | array | No | `[]` | Individual Patreon post URLs or numeric post IDs to fetch with engagement |
| `includePosts` | boolean | No | `true` | When on, paginate and save each creator's public post archive with like/comment counts |
| `maxPostsPerCreator` | integer | No | `20` | Max public posts saved per creator (1–200) |
| `maxItems` | integer | No | `50` | Max total records (creators + posts + search results) per run; paid users only, free preview capped at 10 |
| `useApifyProxy` | boolean | No | `true` | Route through Apify proxy (residential recommended for Patreon). Keep ON |
| `apifyProxyGroups` | array | No | `["BUYPROXIES94952"]` | Proxy groups used when `useApifyProxy` is enabled |
| `maxRequestsPerCrawl` | integer | No | `500` | Hard cap on HTTP requests per run (loop safety) |
| `maxConcurrency` | integer | No | `4` | Parallel requests — keep low (2–5) to respect Patreon rate limits |

*\*At least one of `creatorUrls` or `searchQuery` should be set for a useful run.*

### Output

Every row carries a `record_type` discriminator: `creator` (campaign metadata + `tiers[]`), `post` (archive posts with engagement), or `search_result` (keyword hits).

#### Creator record

- Identity: `creator_name`, `vanity`, `url`, `bio`, `one_liner`, `creation_name`
- Audience: `patron_count`, `paid_member_count` (both `null` when the creator hides them)
- Earnings: `earnings_cents`, `earnings_currency`, `earnings_public` (usually `null` — most creators hide payouts), and `est_monthly_cents` (a clearly-labeled directional estimate from `paid_member_count × cheapest paid tier`)
- Pricing: `tiers[]` (`title`, `amount_cents`, `description`, `patron_count`, `published`, `requires_shipping`, `perks[]`), `min_tier_cents`, `max_tier_cents`, `tier_count`, `currency`
- Facts: `post_count`, `is_nsfw`, `is_monthly`, `pay_per_name`
- Reach: `social_links[]` (connected accounts from the creator profile)

#### Post record

`post_id`, `vanity`, `title`, `url`, `published_at`, `like_count`, `comment_count`, `teaser_text`, plus `thumbnail_url` where available.

### Example Input

```json
{
    "creatorUrls": ["https://www.patreon.com/cgpgrey", "notjustbikes"],
    "searchQuery": "true crime podcast",
    "includePosts": true,
    "maxPostsPerCreator": 20,
    "maxItems": 50,
    "useApifyProxy": true,
    "apifyProxyGroups": ["BUYPROXIES94952"]
}
```

### Example Output

`creator` record (fields fall back to `null` when a creator hides them):

```json
{
    "record_type": "creator",
    "campaign_id": "80642",
    "vanity": "dissonancepod",
    "url": "https://www.patreon.com/dissonancepod",
    "creator_name": "Cognitive Dissonance Podcast",
    "bio": "We produce a weekly news podcast...",
    "patron_count": 1200,
    "paid_member_count": 950,
    "earnings_cents": null,
    "est_monthly_cents": 475000,
    "tier_count": 3,
    "min_tier_cents": 500,
    "max_tier_cents": 2000,
    "tiers": [{ "title": "Supporter", "amount_cents": 500, "perks": ["Bonus episodes"] }],
    "post_count": 68,
    "social_links": [{ "platform": "twitter", "url": "https://twitter.com/..." }],
    "is_nsfw": false
}
```

`post` record:

```json
{
    "record_type": "post",
    "post_id": "32452882",
    "vanity": "loish",
    "title": "VIDEO // sketchbook flipthrough",
    "url": "https://www.patreon.com/posts/32452882",
    "published_at": "2019-12-18T...",
    "like_count": 42,
    "comment_count": 7,
    "teaser_text": "..."
}
```

### Integrations & Automation

- **Apify API** — run it programmatically from Python, JS, or any language and pull results into your pipeline.
- **Webhooks** — trigger downstream workflows (Sheets, CRMs, databases) when a run finishes.
- **Zapier / Make** — connect Apify to thousands of apps for automated creator tracking.

Because this is ideal for **creator growth tracking, competitor benchmarking, and sponsorship monitoring**, schedule it on a **daily or weekly cadence** (e.g. weekly patron-count and tier-price snapshots). Recurring runs on a schedule are the standard way to track creators over time.

### Related Actors

- [Patreon Creator Scraper by haketa](https://apify.com/haketa/patreon-scraper) — keyword discovery plus full creator profiles, tiers, and posts.
- [Instagram Scraper](https://apify.com/apify/instagram-scraper) — social audience and engagement data for influencer and creator research.
- [YouTube Scraper](https://apify.com/streamers/youtube-scraper) — channel, video, and engagement data for creator research.
- [Substack Scraper](https://apify.com/automation-lab/substack-scraper) — newsletter and paid-subscription creator data for the broader creator economy.

### FAQ

#### Why use this actor instead of the official Patreon API?

Patreon's official API is **OAuth-only and account-scoped**: it returns data only for your own campaign or creators who authorize your app, and there is no public endpoint to fetch arbitrary creators by name, URL, or search term. This actor reads only **publicly visible** campaign data for any creator — no login, no OAuth, no creator consent required — which is exactly what creator-economy research, influencer marketing, and competitive analysis need.

#### What are alternatives to this actor / to scraping Patreon?

Alternative Apify actors include `haketa/patreon-scraper`, `crawlerbros/patreon-scraper`, `bovi/patreon-scraper`, `scrapingmonkey/patreon-scraper`, and `goat255/patreon-creator-scraper`. Third-party tools like ScrapingBee, ProxiesAPI, and Browserbeam also offer Patreon scraping APIs. This actor differentiates by calling Patreon's own JSON:API (no browser cost, no brittle HTML selectors) with automatic fallbacks, straightforward no-login input, and transparent pay-per-result pricing.

#### Do I need a Patreon API key or login to scrape public creator data?

No. This actor uses Patreon's public internal endpoints — the same ones the Patreon website calls — without authentication. It never touches login-gated or patron-only content.

#### Can I find Patreon creators by niche or keyword?

Yes. Set `searchQuery` (e.g. "true crime podcast", "indie games", "watercolor") and the actor discovers matching creators and returns a full campaign profile for each.

#### Why are patron counts or earnings sometimes null?

Creators can hide their patron counts and earnings. The actor returns `null` for these fields rather than guessing, and labels the directional estimate (`est_monthly_cents`) clearly so you never mistake it for an official figure.

#### How does Patreon protect against scrapers, and how does this actor handle it?

Patreon campaigns are behind Cloudflare Bot Management (a plain request returns 403). This actor bypasses that by speaking Patreon's own JSON:API with browser-like TLS (got-scraping) and routing through the Apify **residential proxy** — the same reason widely used tools like `yt-dlp` work. Keep `useApifyProxy` ON for reliable runs.

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

Pricing is pay-per-event: `$0.0005` per actor start (per GB) plus **`$0.004` per dataset result** (≈ `$4` per 1,000 records). The actor is HTTP-only (no browser), so runs are cheap — a creator with a small post archive costs only a handful of lightweight JSON requests.

### SEO Keywords

patreon scraper, scrape patreon, patreon creator database, creator economy analysis, influencer marketing research, patreon creator discovery, find patreon creators by niche, sponsorship prospecting, patreon lead generation, creator outreach, patreon tier pricing, patreon patron count, patreon earnings estimate, competitor creator analysis, creator benchmarking, patreon api alternative, patreon public data api, scrape patreon creators, creator market research, patreon growth tracking, patreon creator search, patreon membership tiers, patreon revenue data

### For AI Agents & LLM Apps

**What it returns:** Structured JSON rows describing Patreon creators (bios, patron/paid-member counts, membership tier prices & perks, public earnings signals, social links) and their public posts (title, published date, like/comment counts, teaser). Rows are discriminated by `record_type`: `creator`, `post`, or `search_result`.

**Minimal working input:**

```json
{
  "creatorUrls": ["https://www.patreon.com/cgpgrey"],
  "maxItems": 10
}
```

**Variant inputs:**

- Creator discovery by niche (search mode + posts):

```json
{
  "searchQuery": "true crime podcast",
  "includePosts": true,
  "maxItems": 100
}
```

- Single post lookup:

```json
{
  "postUrls": ["https://www.patreon.com/posts/32452882"]
}
```

**Output field list:** For creators: `record_type`, `campaign_id`, `vanity`, `url`, `creator_name`, `bio`, `one_liner`, `creation_name`, `patron_count`, `paid_member_count`, `earnings_cents`, `earnings_currency`, `earnings_public`, `est_monthly_cents`, `tier_count`, `min_tier_cents`, `max_tier_cents`, `currency`, `tiers[]` (`title`, `amount_cents`, `description`, `patron_count`, `perks[]`), `post_count`, `is_nsfw`, `is_monthly`, `pay_per_name`, `social_links[]`. For posts: `record_type`, `post_id`, `vanity`, `title`, `url`, `published_at`, `like_count`, `comment_count`, `teaser_text`, `thumbnail_url`.

**Behaviors an agent should know:**

- `creatorUrls` and `searchQuery` run additively; you can use either or both — no one is strictly required, but a run with neither returns nothing.
- If `maxItems` is left unset, it defaults to `50`; the free (unpaid) preview caps output at **10 items per run** — paid users get the full `maxItems` range.
- `includePosts` defaults to **true**, which adds one billed record per post; set it to `false` for a cheap creator-only pass.
- Patron counts and earnings are `null` when the creator hides them — do not treat `est_monthly_cents` as official revenue; only `earnings_cents` with `earnings_public: true` is authoritative.
- Keep `useApifyProxy: true` (residential group) — Patreon rate-limits aggressive clients and proxy off can produce `403`/`429`.

**Billing:** Pay-per-event — `$0.0005` per actor start (per GB) + **`$0.004` per dataset item** (≈ `$4` per 1,000 results), billed to the caller's Apify account.

### Legal & Compliance Disclaimer

This actor is **independent** and is **not affiliated with, endorsed by, or sponsored by Patreon, Inc.** "Patreon" is a trademark of its owner.

It accesses **only publicly available** Patreon campaign pages and public post metadata via Patreon's public web endpoints — it does not log in, bypass any paywall or authentication, or access patron-only content, and it does not return patron PII. Users are responsible for complying with Patreon's Terms of Service and applicable data-protection law (e.g. GDPR/CCPA where relevant) and for using the data responsibly and at reasonable request volumes.

# Actor input Schema

## `creatorUrls` (type: `array`):

Patreon creator pages to scrape. Accepts full URLs (https://www.patreon.com/cgpgrey, https://www.patreon.com/c/Name, /cw/Name, /m/12345) or bare vanity names.

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

Keyword to search Patreon creators by (e.g. "true crime podcast"). Runs in addition to creatorUrls.

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

Individual Patreon post URLs (https://www.patreon.com/posts/...) or numeric post IDs to fetch with engagement.

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

When enabled, each creator's public post archive is paginated and every post is saved as its own record with like/comment counts.

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

Maximum number of public posts saved per creator (1-200).

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

Maximum total records (creators + posts + search results) per run. Paid users only; free preview is capped at 10.

## `useApifyProxy` (type: `boolean`):

Route requests through the Apify proxy (residential group recommended for Patreon). Keep ON unless you know what you are doing.

## `apifyProxyGroups` (type: `array`):

Proxy groups to use when useApifyProxy is enabled. Residential recommended for Patreon.

## `maxRequestsPerCrawl` (type: `integer`):

Hard cap on HTTP requests per run (loop safety).

## `maxConcurrency` (type: `integer`):

Parallel requests (keep low: 2-5).

## Actor input object example

```json
{
  "creatorUrls": [
    "https://www.patreon.com/cgpgrey"
  ],
  "postUrls": [],
  "includePosts": true,
  "maxPostsPerCreator": 20,
  "maxItems": 50,
  "useApifyProxy": true,
  "apifyProxyGroups": [
    "BUYPROXIES94952"
  ],
  "maxRequestsPerCrawl": 500,
  "maxConcurrency": 4
}
```

# Actor output Schema

## `results` (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 = {
    "creatorUrls": [
        "https://www.patreon.com/cgpgrey"
    ],
    "searchQuery": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/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 = {
    "creatorUrls": ["https://www.patreon.com/cgpgrey"],
    "searchQuery": "",
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/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 '{
  "creatorUrls": [
    "https://www.patreon.com/cgpgrey"
  ],
  "searchQuery": ""
}' |
apify call ahmed_jasarevic/patreon-scraper --silent --output-dataset

```

## MCP server setup

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