Patreon Scraper By Patron & Earnings Filters avatar

Patreon Scraper By Patron & Earnings Filters

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Patreon Scraper By Patron & Earnings Filters

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

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

2

Monthly active users

3 days ago

Last modified

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 URLstartUrls accepts free-text search terms (run through Patreon's own creator search) or patreon.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 null fields and a *_hidden flag, not a silent 0 that would let them fail a threshold they never actually failed.
  • A reason on every rejectionfilter_reasons names the exact threshold each dropped campaign missed and by how much; turn on includeRejectedCampaigns to export the rejects alongside the shortlist.
  • Entry price as its own fieldcheapest_paid_tier_price is 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.

FieldExample ValueUse Case
urlhttps://www.patreon.com/GreenRoomPythonsLink straight back to the campaign for outreach
idcampaign_7057610Patreon's composite campaign id
campaign_id7057610Same id as an integer, for joins
nameGreen Room PythonsCampaign display name
creator_nameGreen Room PythonsCreator's public display name
usernameGreenRoomPythonsVanity handle from the profile URL
creation_namereptile care guidesWhat the creator says they publish
aboutGreen Room Pythons is...Summary text for a pitch or brief
avatar_photo_urlhttps://c10.patreonusercontent.com/...Full-size avatar for a media kit
avatar_photo_blurred_urlhttps://c10.patreonusercontent.com/...Blurred avatar variant Patreon serves
thumbhttps://c10.patreonusercontent.com/...Small avatar for list views
primary_theme_color5802752Campaign brand color, as an integer
is_nsfwfalseAdult-content flag used by excludeNsfw
patron_count4012Total members, free plus paid
total_members4012Legacy alias of patron_count
paid_members615Paying members only
paid_members_hiddenfalseWhether the creator switched member counts off
member_count_preferenceTOTALWhich count the creator publishes: TOTAL or PAID_ONLY
total_posts470Posts published — a liveness signal
post_count470Legacy alias of total_posts
earnings_per_monthnullPublished monthly earnings, null when not published
earnings_hiddentrueWhether the creator switched earnings off
earnings_currencyUSDCurrency of earnings and tier prices
tiers[{ "name": "Tier 1", "price": 5.0, ... }]Every paid membership tier, with price and Discord access
cheapest_paid_tier_price5.0Entry price of the membership
cheapest_paid_tier_currencyUSDCurrency of the entry tier
cheapest_paid_tier_nameTier 1: The Infallible Den of HusbandryName of the entry tier
socials[{ "platform": "instagram", "url": "..." }]Every connected platform, including ones without a dedicated column
instagram / twitter / youtube / facebook / twitch / tiktokhttps://www.instagram.com/... or nullDirect contact channel per platform
data_sourceabout_jsonWhich Patreon route resolved the row: about_json or campaign_api
querypythonKeyword that produced the row, or direct for a URL input
successtrueWhether the campaign resolved at all
errornullFailure reason on a success: false row
passed_creator_filtertrueWhether 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.

FeaturePatreon API v2Patreon Scraper By Patron & Earnings Filters
Access without creator authorizationNo — OAuth per campaign owner requiredYes — reads Patreon's public, logged-out pages
Keyword / creator discoveryNot documentedBuilt-in — walks Patreon's own search per keyword
Numeric qualification thresholdsNone5 native thresholds plus NSFW and hidden-number handling
Setup requirementOAuth app + creator's explicit authorizationAn Apify account only
Earnings visibility handlingCreator's own dashboardearnings_hidden reported explicitly, never estimated
OutputJSON:API, one authorized campaign at a timeStructured 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

ParameterRequiredTypeDescriptionExample Value
startUrlsYesarrayOne 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"]
maxDataNointegerHow 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
minPaidMembersNointegerKeep only campaigns with at least this many paying members (paid_member_count). 0 = not evaluated.500
minPatronCountNointegerKeep only campaigns with at least this many total members, free and paid (patron_count). 0 = not evaluated.0
minEarningsPerMonthNonumberKeep only campaigns publishing at least this much per month, in the campaign's own currency. 0 = not evaluated.0
minPostCountNointegerKeep only campaigns with at least this many published posts. 0 = not evaluated.50
minCheapestTierPriceNonumberKeep only campaigns whose cheapest paid tier costs at least this much, in that tier's own currency. 0 = not evaluated.3
excludeNsfwNobooleanDrop campaigns Patreon flags as adult content. Default true.true
keepCreatorsHidingNumbersNobooleanWhen 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
includeRejectedCampaignsNobooleanAlso write rejected campaigns to the dataset, with passed_creator_filter: false and filter_reasons. Not charged. Default false.false
proxyConfigurationNoobjectApify 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 NameWhat it extracts
../../Skool-Group-Community-Infos-Scrape/skool-group-community-infos-scrape-top-members-and-whos-onlineSkool community membership, top members, and who's-online activity
../../Reddit-Scraper/reddit-scraper-user-profiles-and-subreddit-activityReddit user profiles and subreddit activity
../../Udemy-Course-Reviews-Scraper/udemy-course-reviews-scraper-instructor-course-catalogInstructor course catalogs and student reviews
../../Instagram-Post-Details-Scraper/instagram-post-details-scraper-with-engagement-dataInstagram 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 ApifyClient
client = 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.

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.