Patreon Scraper By Patron & Earnings Filters
Pricing
from $2.99 / 1,000 results
Patreon Scraper By Patron & Earnings Filters
Patreon Scraper by Patron & Earnings Filters extracts public creator and patron data, including creator profiles, patron counts, membership tiers, earnings estimates, posts, and engagement. Filter Patreon creators by patrons or earnings for market research and prospecting.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Patreon Scraper By Patron & Earnings Filters
Patreon Scraper By Patron & Earnings Filters searches Patreon by keyword or profile URL and returns only the creator campaigns that clear the numeric bar you set — paying members, total members, monthly earnings, published posts, and entry-tier price. Every row carries patron_count, paid_members, earnings_per_month, cheapest_paid_tier_price, tiers, and connected social links, plus a filter_reasons note on anything dropped. Built for sponsorship scouts, marketing agencies, and researchers who need a pre-qualified shortlist rather than a raw keyword match, this actor turns Patreon's own published numbers into structured JSON, one campaign per row.
What is Patreon Scraper By Patron & Earnings Filters?
It is a Patreon creator scraper with built-in qualification thresholds: give it search keywords, campaign URLs, or bare usernames, and it returns campaign records that pass minimum-member, minimum-earnings, minimum-post, and minimum-entry-price filters you set — or, if you ask for it, the rejected campaigns too, each carrying the exact reason it failed. No Patreon account, cookie, or API key is required — every field comes from Patreon's own public, logged-out pages and search endpoint.
- Discovery by keyword or direct URL —
startUrlsaccepts free-text search terms (run through Patreon's own creator search) orpatreon.com/...profile URLs, which are qualified directly without a search step. - Five native qualification thresholds — minimum paying members, minimum total members, minimum monthly earnings, minimum published posts, and minimum entry-tier price, each compared against the campaign's own published figure.
- Hidden numbers reported as hidden, never as zero — a creator who switches off member counts or earnings gets
nullfields and a*_hiddenflag, not a silent 0 that would let them fail a threshold they never actually failed. - A reason on every rejection —
filter_reasonsnames the exact threshold each dropped campaign missed and by how much; turn onincludeRejectedCampaignsto export the rejects alongside the shortlist. - Entry price as its own field —
cheapest_paid_tier_priceis the cost of the cheapest paid membership, extracted once per campaign rather than left buried in a tier array. - Structured JSON export — one flat row per campaign, downloadable as JSON, CSV, Excel, XML, or RSS through the Apify dataset API or Console.
What data can I extract with Patreon Scraper By Patron & Earnings Filters?
Every campaign resolves to one flat row covering identity, membership and earnings figures, paid tiers, connected socials, and the qualification verdict.
| Field | Example Value | Use Case |
|---|---|---|
url | https://www.patreon.com/GreenRoomPythons | Link straight back to the campaign for outreach |
id | campaign_7057610 | Patreon's composite campaign id |
campaign_id | 7057610 | Same id as an integer, for joins |
name | Green Room Pythons | Campaign display name |
creator_name | Green Room Pythons | Creator's public display name |
username | GreenRoomPythons | Vanity handle from the profile URL |
creation_name | reptile care guides | What the creator says they publish |
about | Green Room Pythons is... | Summary text for a pitch or brief |
avatar_photo_url | https://c10.patreonusercontent.com/... | Full-size avatar for a media kit |
avatar_photo_blurred_url | https://c10.patreonusercontent.com/... | Blurred avatar variant Patreon serves |
thumb | https://c10.patreonusercontent.com/... | Small avatar for list views |
primary_theme_color | 5802752 | Campaign brand color, as an integer |
is_nsfw | false | Adult-content flag used by excludeNsfw |
patron_count | 4012 | Total members, free plus paid |
total_members | 4012 | Legacy alias of patron_count |
paid_members | 615 | Paying members only |
paid_members_hidden | false | Whether the creator switched member counts off |
member_count_preference | TOTAL | Which count the creator publishes: TOTAL or PAID_ONLY |
total_posts | 470 | Posts published — a liveness signal |
post_count | 470 | Legacy alias of total_posts |
earnings_per_month | null | Published monthly earnings, null when not published |
earnings_hidden | true | Whether the creator switched earnings off |
earnings_currency | USD | Currency of earnings and tier prices |
tiers | [{ "name": "Tier 1", "price": 5.0, ... }] | Every paid membership tier, with price and Discord access |
cheapest_paid_tier_price | 5.0 | Entry price of the membership |
cheapest_paid_tier_currency | USD | Currency of the entry tier |
cheapest_paid_tier_name | Tier 1: The Infallible Den of Husbandry | Name of the entry tier |
socials | [{ "platform": "instagram", "url": "..." }] | Every connected platform, including ones without a dedicated column |
instagram / twitter / youtube / facebook / twitch / tiktok | https://www.instagram.com/... or null | Direct contact channel per platform |
data_source | about_json | Which Patreon route resolved the row: about_json or campaign_api |
query | python | Keyword that produced the row, or direct for a URL input |
success | true | Whether the campaign resolved at all |
error | null | Failure reason on a success: false row |
passed_creator_filter | true | Whether the campaign cleared every threshold set |
filter_reasons | [] | One sentence per failed threshold; empty when passed |
Membership, earnings and tier data
patron_count and paid_members give total and paying-member counts; earnings_per_month gives published monthly income in the campaign's own currency (earnings_currency) with no FX conversion. All three are null — never 0 — when a creator has switched the figure off, flagged by paid_members_hidden and earnings_hidden respectively. tiers lists every paid, titled membership tier with its price and Discord-role access, and cheapest_paid_tier_price pulls out the cheapest one as a standalone number — the entry cost a sponsorship buyer actually needs, instead of a tier array to scan by eye.
Qualification and targeting fields
passed_creator_filter and filter_reasons carry the verdict: true with an empty reasons array on a campaign that cleared every threshold, false with a named reason on one that didn't. These are populated by the five threshold inputs — minPaidMembers, minPatronCount, minEarningsPerMonth, minPostCount, minCheapestTierPrice — plus excludeNsfw and keepCreatorsHidingNumbers, which decide what happens to a campaign whose relevant number is hidden rather than merely low.
How does Patreon Scraper By Patron & Earnings Filters differ from the official Patreon API?
Patreon's own API v2 (docs.patreon.com, checked 2026-08-16) requires an OAuth access_token scoped to campaigns or campaigns.members, and it only returns data for campaigns the authenticated user owns or has been explicitly authorized to see — there is no documented endpoint for searching or bulk-listing campaigns you don't control. That makes it useless for the actual job here: finding and qualifying creators you have never talked to.
| Feature | Patreon API v2 | Patreon Scraper By Patron & Earnings Filters |
|---|---|---|
| Access without creator authorization | No — OAuth per campaign owner required | Yes — reads Patreon's public, logged-out pages |
| Keyword / creator discovery | Not documented | Built-in — walks Patreon's own search per keyword |
| Numeric qualification thresholds | None | 5 native thresholds plus NSFW and hidden-number handling |
| Setup requirement | OAuth app + creator's explicit authorization | An Apify account only |
| Earnings visibility handling | Creator's own dashboard | earnings_hidden reported explicitly, never estimated |
| Output | JSON:API, one authorized campaign at a time | Structured JSON dataset across every matched campaign |
Why can't I just pull this from Patreon's own API?
Patreon's OAuth model ties every request to a token issued by the campaign owner — you cannot request data for a creator who hasn't authorized your app, and there is no public endpoint to discover creators by keyword at all. That works for a creator building their own dashboard; it does not work for a buyer trying to find and compare fifty creators they've never contacted. This actor works around the gap by reading the same public pages a logged-out browser sees: Patreon's own search endpoint for discovery, and the public campaign page for every field in the row above.
The official API is the right choice when you already run a Patreon campaign and need your own member or pledge data. This actor is the right choice when you need to discover and qualify campaigns you don't own, at a scale no OAuth handshake supports.
How to use data extracted from Patreon?
Sponsorship and brand-deal scouts
Set minPaidMembers and minCheapestTierPrice to your budget floor, run a batch of niche keywords through startUrls, and get back only the campaigns worth pitching — with filter_reasons on file for anyone who asks why a creator was skipped, and instagram/youtube/twitter columns ready for direct outreach.
Agencies benchmarking on behalf of clients
Run the same keyword set on a schedule with includeRejectedCampaigns on, and compare each keyword's examined → qualified → rejected funnel (logged per run) over time to show a client how the qualifying pool for their category is moving, not just a one-off list.
Market research and pricing intelligence
Pull cheapest_paid_tier_price and tiers across a keyword set to map the price distribution of a content category, or cross paid_members against earnings_per_month on the campaigns that publish both to benchmark realistic revenue-per-patron in a niche.
AI agents and automated pipelines
Because every threshold is evaluated against Patreon's own published figures with no estimation, an agent can call this actor as a qualification tool mid-conversation — "find podcast creators with 500+ paying members" — and trust that a passed_creator_filter: true row is genuinely qualified, not scored.
🔼 Input sample
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
startUrls | Yes | array | One entry per line. An entry containing patreon.com/ is qualified directly as that creator's campaign; anything else — including a bare username — runs through Patreon's own search and every result is qualified against your thresholds. | ["python", "https://www.patreon.com/GreenRoomPythons"] |
maxData | No | integer | How many campaigns that pass your thresholds to return per keyword (default 10, max 500). Rejected campaigns don't count against it. Direct profile URLs are always all qualified and uncapped. | 15 |
minPaidMembers | No | integer | Keep only campaigns with at least this many paying members (paid_member_count). 0 = not evaluated. | 500 |
minPatronCount | No | integer | Keep only campaigns with at least this many total members, free and paid (patron_count). 0 = not evaluated. | 0 |
minEarningsPerMonth | No | number | Keep only campaigns publishing at least this much per month, in the campaign's own currency. 0 = not evaluated. | 0 |
minPostCount | No | integer | Keep only campaigns with at least this many published posts. 0 = not evaluated. | 50 |
minCheapestTierPrice | No | number | Keep only campaigns whose cheapest paid tier costs at least this much, in that tier's own currency. 0 = not evaluated. | 3 |
excludeNsfw | No | boolean | Drop campaigns Patreon flags as adult content. Default true. | true |
keepCreatorsHidingNumbers | No | boolean | When a threshold lands on a number a creator hides: true keeps the campaign flagged for review, false drops it. Default false. Does nothing when no thresholds are set. | false |
includeRejectedCampaigns | No | boolean | Also write rejected campaigns to the dataset, with passed_creator_filter: false and filter_reasons. Not charged. Default false. | false |
proxyConfiguration | No | object | Apify proxy groups, or your own proxy URLs. | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } |
{"startUrls": ["python", "podcast"],"maxData": 15,"minPaidMembers": 500,"minPatronCount": 0,"minEarningsPerMonth": 0,"minPostCount": 50,"minCheapestTierPrice": 3,"excludeNsfw": true,"keepCreatorsHidingNumbers": false,"includeRejectedCampaigns": false,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Common pitfall: minEarningsPerMonth and minCheapestTierPrice compare raw numbers with no currency conversion — a keyword that mixes USD and EUR campaigns (both were observed in testing) will compare them as if they were the same currency unless you check earnings_currency / cheapest_paid_tier_currency on the results. A second pitfall: setting a threshold with keepCreatorsHidingNumbers left at its false default silently drops every creator who hides that number, which can be most of your qualifying candidates — only 6 of 23 campaigns measured (26%) published an earnings figure at all when tested on 2026-08-10.
🔽 Output sample
One dataset row per campaign, typed and consistently shaped, exportable as JSON, CSV, Excel, XML, or RSS from the Apify Console or dataset API.
{"url": "https://www.patreon.com/GreenRoomPythons","id": "campaign_7057610","campaign_id": 7057610,"name": "Green Room Pythons","creator_name": "Green Room Pythons","username": "GreenRoomPythons","creation_name": "reptile care content","about": "Green Room Pythons is a resource for ball python keepers...","avatar_photo_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/7057610/avatar.jpg","avatar_photo_blurred_url": null,"thumb": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/7057610/thumb.jpg","primary_theme_color": 5802752,"is_nsfw": false,"patron_count": 4012,"total_members": 4012,"paid_members": 615,"paid_members_hidden": false,"member_count_preference": "TOTAL","total_posts": 470,"post_count": 470,"earnings_per_month": null,"earnings_hidden": true,"earnings_currency": "USD","tiers": [{"id": "9268143","name": "Tier 1: The Infallible Den of Husbandry","price": 5.0,"description": "Access to the community Discord and monthly Q&A.","discord_access": true}],"cheapest_paid_tier_price": 5.0,"cheapest_paid_tier_currency": "USD","cheapest_paid_tier_name": "Tier 1: The Infallible Den of Husbandry","socials": [{ "platform": "instagram", "url": "https://www.instagram.com/green_room_pythons", "display_name": null, "is_public": true }],"instagram": "https://www.instagram.com/green_room_pythons","twitter": null,"youtube": null,"facebook": null,"twitch": null,"tiktok": null,"data_source": "about_json","query": "python","success": true,"error": null,"passed_creator_filter": true,"filter_reasons": []}
A campaign that could not be resolved (a dead vanity, a Patreon deploy mid-run) is still written, in a shorter shape: { "url": ..., "username": ..., "query": ..., "success": false, "error": "about_json_http_404 | campaign_id_unresolved", "passed_creator_filter": null, "filter_reasons": ["campaign_unresolved"] }.
How do you filter and target specific campaigns?
Two ways to feed startUrls: a free-text keyword runs through Patreon's own creator search and every result is qualified against your thresholds; a direct patreon.com/... URL or bare username is qualified on its own, skipping search entirely and never counted against maxData. Use direct URLs when you already know the creators to check, and keywords when you're discovering a category.
Volume is controlled by maxData — but it counts campaigns that pass, not campaigns fetched. When thresholds are active the run keeps walking Patreon's search pages until either maxData campaigns have qualified or Patreon's own result set for that keyword runs out; either way it logs the examined → qualified → rejected funnel so you can see how selective your bar actually was.
Quality is set by five thresholds — minPaidMembers, minPatronCount, minEarningsPerMonth, minPostCount, minCheapestTierPrice — each compared to the campaign's own published number, never estimated. Because Patreon lets creators hide member counts and earnings, keepCreatorsHidingNumbers decides whether a campaign with a hidden number you're filtering on stays in the export (flagged for manual review) or is dropped as unqualifiable. excludeNsfw drops flagged adult campaigns.
{ "startUrls": ["podcast"], "maxData": 15, "minPaidMembers": 500, "minCheapestTierPrice": 3, "excludeNsfw": true }
{ "startUrls": ["https://www.patreon.com/GreenRoomPythons"], "minPatronCount": 1000, "minPostCount": 100 }
{ "startUrls": ["photography", "digital art"], "maxData": 20, "minEarningsPerMonth": 500, "keepCreatorsHidingNumbers": true, "includeRejectedCampaigns": true }
▶️ Want to try other creator and community scrapers?
| Scraper Name | What it extracts |
|---|---|
| ../../Skool-Group-Community-Infos-Scrape/skool-group-community-infos-scrape-top-members-and-whos-online | Skool community membership, top members, and who's-online activity |
| ../../Reddit-Scraper/reddit-scraper-user-profiles-and-subreddit-activity | Reddit user profiles and subreddit activity |
| ../../Udemy-Course-Reviews-Scraper/udemy-course-reviews-scraper-instructor-course-catalog | Instructor course catalogs and student reviews |
| ../../Instagram-Post-Details-Scraper/instagram-post-details-scraper-with-engagement-data | Instagram post details and engagement metrics |
How to extract Patreon data programmatically
Every run is a standard Apify Actor call — one authenticated request in, structured JSON dataset rows out.
Python example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"startUrls": ["podcast"],"maxData": 15,"minPaidMembers": 500,"minCheapestTierPrice": 3,}run = client.actor("<ACTOR_ID>").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("passed_creator_filter"):print(item["name"], item["paid_members"], item["cheapest_paid_tier_price"])
MCP for AI agents
This Actor is reachable through Apify's hosted Actors MCP Server at https://mcp.apify.com (checked 2026-08-16), which exposes any Apify Actor — including this one — as a callable tool over OAuth or a bearer APIFY_API_TOKEN, for MCP clients such as Claude.ai, Claude Code, and VS Code. An agent can call it with a keyword and threshold values to pull a live, pre-qualified creator shortlist mid-conversation, without a separate scraping integration.
Export to spreadsheets or CRM
Export the dataset as CSV or Excel directly from the Apify Console or API, mapping name/creator_name → identifying columns, patron_count/paid_members/earnings_per_month → metric columns, cheapest_paid_tier_price → a budget column, and instagram/youtube/twitter → outreach columns for a CRM import.
Is it legal to scrape Patreon?
Yes. This actor collects only public, logged-out campaign data — the same page and figures a browser without a Patreon login already sees, published by the creator as part of running a public membership business. Campaign names, member and earnings figures, and tier pricing are business and product data, not private personal records, so this falls under the platform's terms of service and database-rights framing rather than GDPR or CCPA, which govern personal data. Nothing paywalled, private, or behind a login is accessed. Consult legal counsel for commercial applications involving bulk storage of personal data (for example, if you separately collect and retain the creator_name field alongside other identifying information).
❓ FAQ
How do you know a campaign hasn't been abandoned or shut down?
There's no explicit "closed" flag, but total_posts and success cover it in practice: minPostCount filters out campaigns that never really got going, and a vanity that no longer resolves at all comes back as success: false with an error reason instead of silently vanishing from the results.
Can I get the creator's connected social profiles along with the qualification data?
Yes. instagram, twitter, youtube, facebook, twitch, and tiktok are returned as flat columns on every row, and socials carries every connected platform Patreon lists — including ones without their own column — as { platform, url, display_name, is_public } objects. No extra request or setting is needed; they come from the same campaign fetch as everything else.
How accurate is the member and earnings data?
The actor returns the figures exactly as Patreon publishes them at request time — nothing is estimated, averaged, or projected. Accuracy after that depends on how current the creator keeps their own numbers; re-run the actor to refresh a shortlist rather than relying on a stored snapshot for time-sensitive decisions.
How many campaigns can I get per run?
Up to maxData (default 10, maximum 500) qualified campaigns per keyword, plus every direct profile URL in startUrls, uncapped. ⚠️ The real ceiling is Patreon's own search result set for that keyword, not this actor — Patreon returned 44 to 174 results per keyword when measured on 2026-08-10. If fewer than maxData campaigns clear your thresholds, the run log states plainly that the keyword's result set ran out, rather than looking like a truncated run.
How do the qualification thresholds actually work?
Each of the five numeric inputs (minPaidMembers, minPatronCount, minEarningsPerMonth, minPostCount, minCheapestTierPrice) is compared against the campaign's own published figure and is skipped entirely when left at 0. A campaign fails a threshold only when its published number is genuinely below it — a hidden number is never treated as 0, so keepCreatorsHidingNumbers decides separately whether an un-verifiable campaign is kept (flagged) or dropped.
Does Patreon Scraper By Patron & Earnings Filters work with Claude, ChatGPT, and AI agent frameworks?
Yes — it's reachable through Apify's Actors MCP Server (https://mcp.apify.com) for MCP-compatible clients, and callable as a standard HTTP/API endpoint via apify_client from any agent framework that can make an authenticated API call.
How does this compare to other Patreon scrapers?
As observed on their live Apify Store listings on 2026-08-16: Bovi's Patreon Scraper (from $1.50 / 1,000 results) advertises "earnings estimation" that calculates a conservative monthly revenue figure when a creator doesn't publish one, and EasyAPI's Patreon Creator Scraper (from $2.99 / 1,000 results) scrapes by category across 30+ creator categories. This actor takes the opposite approach on the honesty question: it never estimates a hidden number, reporting it as null with an explicit *_hidden flag instead, and it is the only one of the three with native numeric qualification thresholds that reject non-matching campaigns with a stated filter_reasons explanation rather than returning every match unfiltered.
Can I use this without a Patreon API key or developer account?
Yes. No Patreon login, cookie, or API key is needed — only an Apify account to run the actor. Everything is read from Patreon's public, logged-out search and campaign pages.
Conclusion
Patreon Scraper By Patron & Earnings Filters turns a Patreon keyword search into a pre-qualified shortlist: campaigns that clear your paying-member, earnings, post, and entry-price bar, each with the exact reason attached when they don't. It never treats a hidden number as zero, and every filter is checked against a figure Patreon itself published in that run. Start a run on this Actor's page in the Apify Console, drop in your keywords or profile URLs, and set the thresholds that define a qualified creator for you.