# Patreon Creator Profiles & Public Posts Scraper (`datascraperes/patreon-creator-profiles`) Actor

Scrape public Patreon creator profiles and recent posts from URLs or usernames. Get creator names, audience metrics, tiers with original/USD prices, and only publicly accessible posts in structured JSON—without login, cookies, browser automation, or an official API token.

- **URL**: https://apify.com/datascraperes/patreon-creator-profiles.md
- **Developed by:** [DataScraperES](https://apify.com/datascraperes) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 creator profiles

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?

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

Turn public Patreon creator usernames or profile URLs into structured creator, membership-tier, audience, and recent public-post data. **Each processed creator becomes one auditable Dataset item**, with public-only access checks and optional post collection.

This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Patreon. It does not access paid-only or private content.

### What this Actor does

Patreon Creator Profiles & Public Posts Scraper accepts up to 100 creator references, normalizes equivalent usernames and URLs, removes duplicates, and collects public campaign information. Results can include the creator name and description, audience metrics, published membership tiers with original and USD prices, and up to 250 recent posts that Patreon exposes as public.

### Use cases

- Compare public creator audiences, membership tiers, and pricing.
- Build creator-research or influencer-analysis datasets.
- Monitor public profile changes and newly available public posts.
- Enrich creator directories with public Patreon URLs, images, tiers, and activity.

### How to use

1. Open the Actor in Apify Console.
2. Add one or more Patreon usernames or public profile URLs.
3. Choose whether to include public posts and set the per-creator post and page limits.
4. Click **Start** and open the Dataset when the run finishes.

### Input

| Field | Type | Required | Description |
|---|---|---:|---|
| `campaignUrls` | array | Yes | From 1 to 100 usernames or public Patreon profile URLs. Usernames, `/c/<username>` URLs, and standard profile URLs are accepted and deduplicated. |
| `maxRecentPosts` | integer | No | Maximum public posts per creator, from 0 to 250; default 10. |
| `includePublicPosts` | boolean | No | Whether to collect recent public posts; default `true`. |
| `maxPostPages` | integer | No | Maximum post pages checked per creator, from 1 to 20; default 10. |
| `continueOnError` | boolean | No | Continue processing other creators after an individual error; default `true`. |

This input was used for the complete real output example below:

```json
{
  "campaignUrls": [
    "veritasium"
  ],
  "maxRecentPosts": 1,
  "includePublicPosts": true,
  "maxPostPages": 1,
  "continueOnError": true
}
```

### Output

The default Dataset contains one item per normalized creator processed. A successful item has `status: "success"`; an unsuccessful creator can produce `status: "error"` with a safe error code and message. When `continueOnError` is enabled, one failed creator does not remove successful results for the other inputs. Results can be exported as JSON, CSV, Excel, XML, RSS, or HTML, and `SUMMARY` in the default key-value store contains run-level totals.

This is the complete Dataset item from a real successful run:

```json
{
  "status": "success",
  "error_code": null,
  "error_message": null,
  "campaign_url": "https://www.patreon.com/veritasium",
  "source_input": "veritasium",
  "slug": "veritasium",
  "campaign_id": "70092",
  "name": "Veritasium",
  "summary_html": "I make videos about any area of science that interests me (and that's all of it). This is what I do with most of my time. And it's not cheap - sometimes I dress up in atom costumes, rent musical instruments to make science music vids, or recreate 19th century experiments. So with your support I can make even more awesome science content.",
  "summary_text": "I make videos about any area of science that interests me (and that's all of it). This is what I do with most of my time. And it's not cheap - sometimes I dress up in atom costumes, rent musical instruments to make science music vids, or recreate 19th century experiments. So with your support I can make even more awesome science content.",
  "patron_count": 18296,
  "paid_member_count": 2886,
  "total_post_count": 537,
  "posts_api_total": 537,
  "currency": "USD",
  "pledge_sum_currency": "EUR",
  "image_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/70092/ca593903846542c7b6c49d9f3f5b5751/eyJ3IjoxOTIwLCJ3ZSI6MX0%3D/3.jpg?token-hash=EvP6n2SuYOH1Ge4w7Sj0t950cShuYIuu4mPMIc5DnII%3D&token-time=1788480000",
  "tiers": [
    {
      "id": "-1",
      "title": null,
      "description_html": "Everyone",
      "description_text": "Everyone",
      "is_free_tier": true,
      "amount_cents": 0,
      "price": 0,
      "currency": "EUR",
      "patron_amount_cents": null,
      "patron_currency": "EUR",
      "post_count": null,
      "published": null,
      "published_at": null,
      "url": null,
      "image_url": null,
      "price_usd": 0,
      "usd_conversion_rate": 1.1699,
      "usd_conversion_source": "frankfurter.app"
    },
    {
      "id": "10302173",
      "title": "Free",
      "description_html": "",
      "description_text": null,
      "is_free_tier": true,
      "amount_cents": 0,
      "price": 0,
      "currency": "USD",
      "patron_amount_cents": 100,
      "patron_currency": "EUR",
      "post_count": 4,
      "published": true,
      "published_at": "2023-10-11T14:20:21.228+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=10302173",
      "image_url": null,
      "price_usd": 0,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "376",
      "title": "Hydrogen",
      "description_html": "<p style=\"\">Access to the Patreon feed, including behind the scenes photos, outtakes and sneak previews of WIP videos.</p>",
      "description_text": "Access to the Patreon feed, including behind the scenes photos, outtakes and sneak previews of WIP videos.",
      "is_free_tier": false,
      "amount_cents": 100,
      "price": 1,
      "currency": "USD",
      "patron_amount_cents": 100,
      "patron_currency": "EUR",
      "post_count": 6,
      "published": true,
      "published_at": "2019-06-13T15:28:41.470+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=376",
      "image_url": null,
      "price_usd": 1,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "377",
      "title": "Lithium",
      "description_html": "<p style=\"\">+ My everlasting gratitude</p>",
      "description_text": "+ My everlasting gratitude",
      "is_free_tier": false,
      "amount_cents": 300,
      "price": 3,
      "currency": "USD",
      "patron_amount_cents": 300,
      "patron_currency": "EUR",
      "post_count": 0,
      "published": true,
      "published_at": "2019-06-01T14:16:31.438+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=377",
      "image_url": null,
      "price_usd": 3,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "378",
      "title": "Nitrogen",
      "description_html": "Your name (or pseudonym) will appear on the Wall of Thanks on Veritasium.com for as long as you maintain this pledge.<br>+ All above rewards",
      "description_text": "Your name (or pseudonym) will appear on the Wall of Thanks on Veritasium.com for as long as you maintain this pledge. + All above rewards",
      "is_free_tier": false,
      "amount_cents": 700,
      "price": 7,
      "currency": "USD",
      "patron_amount_cents": 650,
      "patron_currency": "EUR",
      "post_count": 0,
      "published": true,
      "published_at": "2019-06-01T14:17:32.087+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=378",
      "image_url": null,
      "price_usd": 7,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "578389",
      "title": "Chlorine",
      "description_html": "<p style=\"\">+ All above rewards</p><p style=\"\"><span style=\"color:rgb(255, 255, 255);\"><mark style=\"background-color:rgb(27, 28, 32);\">+ My everlasting gratitude</mark></span></p>",
      "description_text": "+ All above rewards + My everlasting gratitude",
      "is_free_tier": false,
      "amount_cents": 1700,
      "price": 17,
      "currency": "USD",
      "patron_amount_cents": 1550,
      "patron_currency": "EUR",
      "post_count": 2,
      "published": true,
      "published_at": "2019-06-13T15:29:49.978+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=578389",
      "image_url": null,
      "price_usd": 17,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "379",
      "title": "Veritasium",
      "description_html": "Your name in the video description of all Veritasium videos published while you maintain this pledge.<br>+ All above rewards",
      "description_text": "Your name in the video description of all Veritasium videos published while you maintain this pledge. + All above rewards",
      "is_free_tier": false,
      "amount_cents": 4200,
      "price": 42,
      "currency": "USD",
      "patron_amount_cents": 3800,
      "patron_currency": "EUR",
      "post_count": 0,
      "published": true,
      "published_at": "2019-06-01T14:18:24.192+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=379",
      "image_url": null,
      "price_usd": 42,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    },
    {
      "id": "578388",
      "title": "Maximum Truth",
      "description_html": "Your name will appear on screen at the end of all Veritasium videos posted while you maintain this pledge<br>+ All above rewards",
      "description_text": "Your name will appear on screen at the end of all Veritasium videos posted while you maintain this pledge + All above rewards",
      "is_free_tier": false,
      "amount_cents": 10000,
      "price": 100,
      "currency": "USD",
      "patron_amount_cents": 8950,
      "patron_currency": "EUR",
      "post_count": 0,
      "published": true,
      "published_at": "2021-09-08T00:35:56.512+00:00",
      "url": "https://www.patreon.com/checkout/veritasium?rid=578388",
      "image_url": null,
      "price_usd": 100,
      "usd_conversion_rate": 1,
      "usd_conversion_source": "identity"
    }
  ],
  "recent_public_posts": [
    {
      "id": "166925162",
      "title": "Want a sticker that's been to the edge of space?",
      "url": "https://www.patreon.com/veritasium/posts/want-sticker-to-166925162",
      "published_at": "2026-08-17T14:24:13.000+00:00",
      "created_at": "2026-08-17T14:13:28.000+00:00",
      "edited_at": "2026-08-17T14:24:13.000+00:00",
      "post_type": "image_file",
      "teaser_text": null,
      "is_paid": false,
      "is_public": true,
      "access_rule_types": [
        "public"
      ],
      "comment_count": 4,
      "like_count": 57,
      "image_url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/166925162/b0275c6db54f4177ae3558906cb0f17a/eyJ3Ijo2MjB9/1.jpg?token-hash=U8nbD3LP2pEDo_iJAq05jg-bwsQun9LgtED7E9PTRhc%3D&token-time=1788825600",
      "content_html": null
    }
  ],
  "public_posts_scanned": 500,
  "hydration_payload": "__NEXT_DATA__",
  "transport": "proxy",
  "proxy_configured": true,
  "proxy_fallback_used": false,
  "warnings": [],
  "scraped_at": "2026-08-24T11:19:00.268711Z",
  "login_used": false,
  "browser_used": false,
  "official_patreon_api_used": false
}
```

The most useful top-level fields are creator identity and description, public audience counts, `tiers`, `recent_public_posts`, public-post scan counts, warnings, collection status, and `scraped_at`. Tier and post fields remain `null` or empty when Patreon does not publish a value.

### Pricing

The Actor uses tiered pay-per-event pricing. One `patreon-profile` event is charged for each successful creator row, plus one `patreon-post` event for each public post included in that row. Both events use the same plan prices, selected automatically by Apify.

| Apify plan tier | Price per profile | Price per public post |
| --- | ---: | ---: |
| Free | $0.001 | $0.001 |
| Bronze | $0.0009 | $0.0009 |
| Silver | $0.0008 | $0.0008 |
| Gold | $0.00075 | $0.00075 |
| Platinum | $0.00075 | $0.00075 |
| Diamond | $0.00075 | $0.00075 |

There is no Actor-start charge. A profile-only result does not create post charges. Paid-only posts, excluded posts, duplicates, failed creator rows, and results not saved because of the spending limit are free.

### API and integrations

Run the Actor through Apify Console, API, CLI, schedules, or webhooks. Use the Dataset API for creator records and the `SUMMARY` key-value-store record for run monitoring. Scheduled runs can feed spreadsheets, databases, data warehouses, or creator-monitoring workflows.

### Related Actors

| Actor | Best for |
|---|---|
| [Linktree Profile & Links Scraper](https://apify.com/datascraperes/linktree-profile-scraper) | Extending creator research with public Linktree identity, outbound links, and social destinations. |
| [Beacons Profile & Links Scraper](https://apify.com/datascraperes/beacons-profile-scraper) | Collecting creator profiles, featured links, public contact details, and embedded media from Beacons. |
| [Instagram Profile Scraper - No Login](https://apify.com/datascraperes/instagram-profile-scraper-no-login) | Comparing Patreon creators with public Instagram biography and audience signals. |
| [TikTok Profile Scraper – Bio, Stats & Playlists](https://apify.com/datascraperes/tiktok-profile-scraper) | Adding public TikTok identity, audience statistics, playlists, and visible contact hints. |

### Limits and data quality

A run accepts at most 100 unique creators, 250 returned public posts per creator, and 20 post pages per creator. Only posts identified as publicly accessible are included; paid-only, tier-restricted, login-only, and private content is excluded. Public counts, tiers, prices, posts, images, and signed media URLs can change or become unavailable after collection.

Some creators do not publish audience counts, tiers, post totals, descriptions, or images. Missing values remain `null`, empty, or are explained in `warnings`; the Actor does not guess them. A low `maxPostPages` can return fewer public posts when public entries are sparse among the scanned posts.

### Frequently asked questions

#### Do I need a Patreon login or API token?

No. The Actor collects public information and does not require Patreon credentials.

#### Can I collect only profile and tier data?

Yes. Set `includePublicPosts` to `false` or `maxRecentPosts` to `0`.

#### Are duplicate creator URLs processed twice?

No. Equivalent usernames and supported profile URLs are normalized and processed once per run.

#### Does the Actor return paid-only posts?

No. It includes only posts that Patreon marks as publicly accessible.

### Responsible use

Use public creator data responsibly. You are responsible for complying with applicable laws, privacy and data-protection requirements, intellectual-property rights, and the source website's terms, and for confirming that your intended use is permitted.

### Support

Open an issue in the Actor's **Issues** tab and include a reproducible input and run ID. Mention the affected creator, expected result, and observed result so the issue can be investigated.

# Actor input Schema

## `campaignUrls` (type: `array`):

Public Patreon URLs such as https://www.patreon.com/swiftologist or vanity slugs such as swiftologist.

## `maxRecentPosts` (type: `integer`):

Maximum number of recent public posts to include per creator. Paid-only posts are excluded using Patreon access rules.

## `includePublicPosts` (type: `boolean`):

When enabled, request and filter recent public posts. Disable it to collect creator profile and tier data only.

## `maxPostPages` (type: `integer`):

Safety limit for pagination when a creator has few public posts among recent non-draft posts.

## `continueOnError` (type: `boolean`):

Keep processing other creators when one URL returns an error or a changed payload.

## Actor input object example

```json
{
  "campaignUrls": [
    "https://www.patreon.com/swiftologist"
  ],
  "maxRecentPosts": 10,
  "includePublicPosts": true,
  "maxPostPages": 10,
  "continueOnError": true
}
```

# Actor output Schema

## `campaignResults` (type: `string`):

Campaign metrics, tiers, USD prices and recent public posts.

# 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 = {
    "campaignUrls": [
        "https://www.patreon.com/swiftologist"
    ],
    "maxRecentPosts": 10,
    "includePublicPosts": true,
    "maxPostPages": 10,
    "continueOnError": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascraperes/patreon-creator-profiles").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 = {
    "campaignUrls": ["https://www.patreon.com/swiftologist"],
    "maxRecentPosts": 10,
    "includePublicPosts": True,
    "maxPostPages": 10,
    "continueOnError": True,
}

# Run the Actor and wait for it to finish
run = client.actor("datascraperes/patreon-creator-profiles").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 '{
  "campaignUrls": [
    "https://www.patreon.com/swiftologist"
  ],
  "maxRecentPosts": 10,
  "includePublicPosts": true,
  "maxPostPages": 10,
  "continueOnError": true
}' |
apify call datascraperes/patreon-creator-profiles --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datascraperes/patreon-creator-profiles"
        }
    }
}

```

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/CQPAh2GqPUZWDy57b/builds/mjrntUKBKSVCWPSPT/openapi.json
