Patreon Scraper avatar

Patreon Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Patreon Scraper

Patreon Scraper

Patreon Scraper extracts public creator data from Patreon pages. Collect creator names, descriptions, membership tiers, pricing, and post counts for research and analysis. Ideal for market research, creator discovery, and audience insights.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

2

Monthly active users

21 hours ago

Last modified

Share

Patreon Scraper — Patrons, Tiers and Creator Earnings

Patreon Scraper pulls structured data from any public Patreon creator page — patron count, paid-member count, membership tiers with prices and Discord access, monthly earnings when the creator publishes them, and social links — and returns it as clean JSON. Feed it a profile URL, a username, or a search keyword, and it resolves the campaign the same way Patreon's own site does, with no Patreon login required. Start a run from the Apify Console or call it from the API below.


What is Patreon Scraper?

Patreon Scraper is an Apify Actor that turns a Patreon creator page into a single structured row: campaign identity, patron and member counts, membership tiers, monthly earnings, and social links. It reads only the same public HTML and JSON that Patreon's own site serves to any visitor — no Patreon account, login, or OAuth app registration required. It's built for creator-economy analysts, sponsorship and marketing teams, and AI agents that need typed campaign data instead of scraped HTML.


What Patreon campaign data is publicly available to scrape?

Everything on a creator's public Patreon page — name, patron and paid-member counts, tier prices, Discord perks, bio, and social links — is visible to any visitor without logging in. Only member-only posts and earnings the creator has chosen not to publish are gated.

Data CategoryPublicly AvailableGated behind
Campaign name & creator identityYes
Patron count & paid-member countYes
Membership tiers, prices, Discord accessYes
About / bio textYes
Social links (Instagram, X, YouTube, etc.)Yes
Monthly earningsYes, only when the creator sets earnings visibility to publicHidden by the creator's own choice otherwise
Individual patron identities & pledge amountsNoNever exposed publicly by Patreon
Member-only posts & contentNoPaid membership required

Patreon Scraper only returns publicly visible data — what any visitor sees. Nothing behind a login wall.


What data can I extract with Patreon Scraper?

Patreon Scraper returns campaign identity, monetization metrics, membership tiers, and creator social links in a single flat JSON row per campaign.

Field NameDescription
urlPublic URL of the creator's Patreon page
idPatreon's internal id string, formatted campaign_<campaign_id>
campaign_idNumeric Patreon campaign id
usernameVanity/username portion of the URL, from the input or search result
nameCampaign name (the page title, distinct from the creator's personal name)
creation_nameShort tagline Patreon shows under the campaign name (e.g. "is creating videos")
creator_nameFull name of the creator who owns the campaign
aboutBio / description text, HTML stripped, paragraph breaks preserved
avatar_photo_urlCreator's avatar image URL
avatar_photo_blurred_urlBlurred variant of the avatar image
thumbThumbnail-sized avatar image URL
primary_theme_colorCampaign's accent colour as an integer (hex value converted)
is_nsfwWhether Patreon flags the campaign as NSFW
patron_countTotal number of patrons/members
total_membersSame value as patron_count (kept as a separate column for compatibility)
paid_membersNumber of paying patrons
total_postsTotal posts published on the campaign
post_countSame value as total_posts (kept as a separate column)
earnings_per_monthMonthly earnings in the campaign's currency, or null if not published
earnings_hiddenWhether the creator has hidden earnings from public view
earnings_currencyCurrency code for earnings_per_month
tiersArray of paid membership tiers — each with id, name, price, description, discord_access
socialsArray of every connected social platform — platform, url, display_name, is_public
instagram, twitter, youtube, facebook, twitch, tiktokFlat convenience columns pulled from socials for these six platforms
data_sourceWhich Patreon endpoint the row was built from — about_json or campaign_api
queryThe search keyword this row was returned for, or direct for a URL/username input
successtrue if the campaign resolved, false if it didn't
errorFailure reason string when success is false, otherwise null

Campaign identity fields

url, id, campaign_id, username, name, creation_name, creator_name, about, avatar_photo_url, avatar_photo_blurred_url, thumb, primary_theme_color, is_nsfw — what the campaign is, what it's called, and how it presents itself.

Monetization and membership fields

patron_count, total_members, paid_members, total_posts, post_count, earnings_per_month, earnings_hidden, earnings_currency, tiers — the counts, prices, and revenue signals.

socials, instagram, twitter, youtube, facebook, twitch, tiktok, data_source, query, success, error — where the creator is active elsewhere, and how the row itself was produced.

🤖 Add-on: Need additional Patreon data?

Patreon creators typically maintain a presence elsewhere too. Pair Patreon Scraper with Instagram Post Details Scraper or TikTok Scraper to pull the engagement numbers behind the social links this Actor returns, or with Skool Group Community Infos Scraper if the creator also runs a paid community there.


How does Patreon Scraper differ from the official Patreon API?

Patreon's official API (API v2) requires an OAuth app and only returns data the authenticated user is entitled to — their own campaign, or the campaigns they've joined as a patron — with no endpoint to search or list other creators. Patreon Scraper reads the same public pages a browser sees and can look up any creator by URL, username, or keyword without authenticating with Patreon at all.

FeaturePatreon API v2Patreon Scraper
AuthenticationOAuth 2.0 app registration + user authorizationNone — public pages only
Search/discover other creatorsNot supported — limited to the authenticated user's own campaign or membershipsBuilt-in keyword search across public campaigns
Access to any creator by URLNo — that creator must authorize your appYes — any public patreon.com/<username> URL
Rate limits100 requests/2 sec (client), 100 requests/min (access token)Governed by the Actor's own retry and proxy-escalation logic
Setup timeApp registration, OAuth flow, scope approvalPaste a URL or keyword and run
Bulk exportPer-campaign, per-authorized-user onlyAny number of campaigns in one run, one row each

Figures for the official API as published on docs.patreon.com, checked 2026-08-16.

Use the official API when you're building something a creator installs and authorizes for their own campaign. Use Patreon Scraper when you need public data on creators — yours or a competitor's — without asking each one to grant API access.


How to use Patreon Scraper

Patreon Scraper runs on the Apify platform — no separate signup, credential, or app registration beyond an Apify account.

  1. Open Patreon Scraper on its Apify Store listing (or in your own Apify Console if you already use Apify).
  2. Add one or more items to startUrls — a full patreon.com/<username> URL to scrape that creator directly, or a plain keyword to run through Patreon's own creator search.
  3. Set maxData if you're using keywords, to cap how many campaigns each keyword returns (default 10, maximum 500).
  4. Configure proxyConfiguration if you want a specific Apify proxy group; leave it default and the Actor escalates automatically on its own.
  5. Start the run and download results as JSON, CSV, or any other format Apify's dataset export supports.

How to scale to bulk campaign extraction

startUrls accepts any number of items in one run — mix direct profile URLs with search keywords in the same list. Each keyword is resolved independently up to maxData campaigns; each URL or username is always fully resolved regardless of maxData. There's no need to loop separate runs for bulk lookups — one run with a long startUrls list covers it.


What can you do with Patreon campaign data?

  • 📊 Creator-economy analysts tracking market sizing use patron_count and paid_members across a keyword search to benchmark how large a niche's creator base is.
  • 💰 Sponsorship and marketing teams use earnings_per_month and tiers to shortlist creators whose monetization level matches a campaign budget before reaching out.
  • 🏆 Competitive intelligence teams monitor tiers and discord_access to see how rival creators price and structure their membership perks.
  • 🔗 Growth teams cross-reference socials and the per-platform columns (instagram, youtube, tiktok) to map a creator's cross-platform footprint from one row.
  • 🤖 AI engineers feed the typed JSON output into a RAG pipeline or agent tool, using about as retrievable creator context and tiers / earnings_per_month as structured facts an LLM can reason over without parsing HTML.

How does Patreon Scraper handle rate limits and blocking?

Patreon sits entirely behind Cloudflare, so every request goes out with a real Chrome TLS/JA3 fingerprint (curl_cffi impersonating Chrome 131) rather than a generic HTTP client signature. If a request comes back 403, 429, or 503, the Actor automatically escalates — unproxied, then Apify's datacenter proxy, then Apify's residential proxy — without any input change from you; a custom proxy URL you supply is used as-is and isn't escalated away from. Each request gets up to 3 attempts with a short backoff before it's treated as failed. Patreon also rotates its internal Next.js build id on every deploy; if a lookup 404s because of that, the Actor refreshes the build id once and retries, then falls back to Patreon's campaigns API for any campaign it still can't resolve through the primary route. A campaign that can't be resolved after all of that is returned as a row with success: false and an error reason instead of silently vanishing from the output.


⬇️ Input

ParameterRequiredTypeDescriptionExample Value
startUrlsYesarrayAn item containing patreon.com/ (e.g. https://www.patreon.com/GreenRoomPythons) is scraped directly as that creator's campaign. Anything else - including a bare username - is used as a search keyword and run through Patreon's own creator search.["https://www.patreon.com/GreenRoomPythons", "python"]
maxDataNointegerHow many campaigns to return per search keyword (default 10, maximum 500). Direct profile URLs and usernames are always all scraped and are not limited by this number. Patreon's own search is the real ceiling: it returned 44-174 results per keyword when measured on 2026-08-10, and the run stops honestly when the result set is exhausted.25
proxyConfigurationNoobjectApify proxy groups, or your own proxy URLs when the section is expanded.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}

⚠️ maxData is capped by Patreon's own search results, not just by the number you enter. Patreon's creator search returned 44–174 campaigns per keyword when measured on 2026-08-10; setting maxData higher than what a keyword actually has won't produce more rows — the run stops honestly once Patreon's result set for that keyword is exhausted.

Example input

{
"startUrls": [
"https://www.patreon.com/GreenRoomPythons",
"python",
"web development"
],
"maxData": 25,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

⬆️ Output

Patreon Scraper writes typed, normalized JSON to an Apify dataset — one row per campaign, with the same field names on every run. Export it as JSON, CSV, Excel, or any other format Apify's dataset export supports.

Only successful rows (success: true) are billed, under the row_result charged event. A campaign that can't be resolved is still returned — as a row with success: false and an error reason — but is not charged. Filter it out of billed results with success === true, or filter it into an error report with error != null.

Example output

{
"url": "https://www.patreon.com/greenroompythons",
"id": "campaign_9284617",
"campaign_id": 9284617,
"username": "greenroompythons",
"name": "Green Room Pythons",
"creation_name": "is creating reptile care videos",
"creator_name": "Chris Peterson",
"about": "Green Room Pythons is a resource for reptile keepers.\n\nWe publish weekly husbandry breakdowns and Q&A streams.",
"avatar_photo_url": "https://c10.patreonusercontent.com/avatar.jpg",
"avatar_photo_blurred_url": "https://c10.patreonusercontent.com/avatar_blurred.jpg",
"thumb": "https://c10.patreonusercontent.com/avatar_thumb.jpg",
"primary_theme_color": 5802752,
"is_nsfw": false,
"patron_count": 1284,
"total_members": 1284,
"paid_members": 812,
"total_posts": 341,
"post_count": 341,
"earnings_per_month": 4210.5,
"earnings_hidden": false,
"earnings_currency": "USD",
"tiers": [
{
"id": "8452201",
"name": "Hatchling",
"price": 5.0,
"description": "Early access to every video plus the monthly Q&A stream.",
"discord_access": true
},
{
"id": "8452207",
"name": "Breeder",
"price": 25.0,
"description": "Everything in Hatchling, plus one-on-one husbandry consults.",
"discord_access": true
}
],
"socials": [
{ "platform": "instagram", "url": "https://instagram.com/greenroompythons", "display_name": "greenroompythons", "is_public": true },
{ "platform": "youtube", "url": "https://youtube.com/@greenroompythons", "display_name": null, "is_public": true }
],
"instagram": "https://instagram.com/greenroompythons",
"twitter": null,
"youtube": "https://youtube.com/@greenroompythons",
"facebook": null,
"twitch": null,
"tiktok": null,
"data_source": "about_json",
"query": "python",
"success": true,
"error": null
}

An unresolved campaign is returned with fewer fields instead of being dropped:

{
"url": "https://www.patreon.com/somerenamedvanity",
"username": "somerenamedvanity",
"query": "direct",
"success": false,
"error": "about_json_http_404 | campaign_id_unresolved"
}

How does it work?

Patreon Scraper reaches Patreon over curl_cffi, sending a real Chrome TLS/JA3 fingerprint on every request instead of a generic scraper signature, with Apify Proxy layered in and escalated on demand. It resolves each campaign from Patreon's own Next.js SSR route (/_next/data/<buildId>/<vanity>/about.json), and automatically falls back to Patreon's JSON:API campaigns endpoint when that route answers with a redirect envelope instead of campaign data — a real slice of Patreon vanities do this, and used to disappear silently. Only data those two endpoints publish is returned; nothing is scraped from rendered page HTML beyond a campaign id. Because both are Patreon's own structured data sources rather than the visual page, the output schema stays stable across Patreon UI redesigns and build-id rotations.


Integrations

Patreon Scraper runs on Apify, so it works with anything that can call the Apify API.

Calling Patreon Scraper programmatically

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("your-username/patreon-scraper").call(run_input={
"startUrls": ["https://www.patreon.com/GreenRoomPythons", "python"],
"maxData": 25,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["patron_count"])

Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.

No-code tools (n8n, Make)

In n8n, use the HTTP Request node against Apify's run-sync-get-dataset-items endpoint with your input JSON in the request body. In Make, the Apify app's "Run Actor and Get Dataset Items" module does the same without writing a raw request by hand.


Yes — Patreon Scraper only reads pages Patreon publishes to any visitor without a login, the same data an unauthenticated browser or search engine sees. This is business and monetization data — campaign names, tier pricing, patron counts — that creators publish specifically to attract paying members, not private personal records, so GDPR and similar personal-data regimes generally do not attach to it. What governs it instead is Patreon's own Terms of Service and database-rights law in jurisdictions that recognize them; scraping public web data is broadly permitted under current US and EU case law, but you're responsible for complying with Patreon's ToS and any rules that apply in your jurisdiction. Consult legal counsel if your use case involves bulk storage of personal identifiers such as creator names.


❓ Frequently asked questions

What Patreon campaign fields does Patreon Scraper return?

Patreon Scraper returns patron_count, paid_members, tiers, earnings_per_month, and socials, among 25+ other fields per campaign — see the full data fields table above.

Does Patreon Scraper require a Patreon account or login?

No. Every field comes from pages and JSON endpoints Patreon serves to a logged-out visitor; the Actor never authenticates with Patreon and needs no OAuth app or API key from you.

How many Patreon campaigns can I extract in one run?

As many as your startUrls list contains. Direct profile URLs and usernames are always fully resolved with no cap; keyword searches return up to maxData campaigns each (default 10, maximum 500), bounded by however many results Patreon's own search actually has for that keyword.

What happens if a Patreon campaign can't be resolved?

It still appears in your dataset — as a row with success: false, the username that was attempted, and an error string explaining why (an HTTP status from Patreon, or campaign_id_unresolved). These rows are not charged, so a dead vanity or a renamed URL costs nothing.

Can I scrape multiple Patreon campaigns at once?

Yes — startUrls accepts any mix of direct profile URLs and search keywords in a single run, each resolved independently.

Does Patreon Scraper work with Claude, ChatGPT, and other AI agent tools?

It's callable as an HTTP endpoint through the Apify API by any agent framework that can make a request — pass your input JSON, wait for the run to finish, and read the dataset back as JSON.

How does Patreon Scraper compare to other Patreon scrapers?

There's no independently verified comparison to cite. What's documented here comes from this Actor's own implementation: it resolves campaigns from two independent Patreon endpoints — falling back automatically when Patreon's primary route returns a redirect instead of data — never charges for a failed lookup, and returns earnings as null rather than 0 when a creator hasn't published them.

Does Patreon Scraper return data in a format LLMs can use directly?

Yes. Every field is typed JSON — strings, integers, booleans, and nested arrays for tiers and socials — with the same field names on every row. Pass it directly to an LLM, index about into a vector store, or feed the numeric fields to an agent tool without parsing HTML.

What happens when Patreon changes its layout or anti-bot system?

The Actor is maintained and the output schema stays stable across Patreon's own layout and build-id changes — it already handles Patreon rotating its Next.js build id mid-run by refreshing and retrying automatically.

Can I use Patreon Scraper without managing proxies or browser infrastructure?

Yes — the Actor handles TLS fingerprinting and proxy escalation (unproxied → Apify datacenter → Apify residential) automatically on a block. You only need to supply proxyConfiguration if you want to pin a specific proxy group instead.

Which Patreon campaign fields work best for AI training data and RAG indexing?

For RAG, index about (long-form creator bio text) alongside name and creation_name for retrieval context. For structured training data or agent facts, use patron_count, paid_members, tiers, and earnings_per_month — typed primitives that stay consistent across every row.


Scraper NameWhat it extracts
Skool Group Community Infos ScraperName, story, member count, activity, owner and tabs for public Skool community groups
Instagram Post Details ScraperLikes, comments, captions and owner profile details from Instagram post, reel and TV URLs
TikTok ScraperProfiles, videos, reposts, hashtags and keyword search results from TikTok
Reddit ScraperPosts, comments, users, subreddits and search results from public Reddit
YouTube Video SummarizerVideo metadata, chapters and timestamped transcripts, with optional AI summaries

💬 Your feedback

Found a bug, or a Patreon field this Actor doesn't capture yet? Let us know through the Issues tab on the Actor's Apify Console page, or leave a review on the store listing — both reach the maintainer directly.