Patreon APIpatreon.com ↗
Search Patreon creators and retrieve membership tier pricing, patron counts, campaign metadata, and social connections via two structured endpoints.
What is the Patreon API?
The Patreon API exposes two endpoints — search_creators and get_creator_details — covering creator profiles, membership tier pricing in cents, patron counts, and campaign metadata. A single search query returns up to paginated results with campaign IDs you can feed directly into get_creator_details to pull tier structures, billing currency, NSFW flags, and the creator's linked social accounts.
curl -X GET 'https://api.parse.bot/scraper/5f02ca75-a840-4fa8-bd24-66c37c69ec87/search_creators?page=1&limit=5&query=podcast' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace patreon-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Patreon Creator Search API — discover creators and inspect tiers."""
from parse_apis.patreon_creator_search_api import Patreon, CampaignNotFound
client = Patreon()
# Search for creators by keyword, capped at 5 results.
for summary in client.creatorsummaries.search(query="podcast", limit=5):
print(summary.name, "—", summary.patron_count, "patrons")
# Drill into the first result's full details (tiers, billing, etc.)
top = client.creatorsummaries.search(query="technology", limit=1).first()
if top:
detail = top.details()
print(detail.name, detail.patron_count, "patrons,", detail.paid_member_count, "paid")
for tier in detail.tiers:
print(" ", tier.title, tier.amount_cents, "cents", tier.currency)
# Fetch a creator directly by campaign_id.
try:
creator = client.creators.get(campaign_id="1055672")
print(creator.name, creator.currency, creator.is_monthly)
except CampaignNotFound as exc:
print(f"Campaign not found: {exc.campaign_id}")
print("exercised: creatorsummaries.search / summary.details / creators.get")
Full-text search over Patreon creators by keyword. Returns campaign summaries including patron counts, post counts, and campaign IDs. Each result carries a campaign_id usable with get_creator_details for full tier/pricing data. Paginated server-side; results are ordered by relevance.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed) |
| limit | integer | Maximum number of results to return |
| queryrequired | string | Search keyword to find creators |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search keyword used",
"results": "array of creator objects with campaign_id, name, creator_name, creation_name, patron_count, total_posts, is_nsfw, url, avatar_url",
"total_pages": "integer, total number of pages available",
"total_results": "integer, total number of matching creators"
},
"sample": {
"data": {
"page": 1,
"query": "podcast",
"results": [
{
"url": "https://www.patreon.com/MSsecretpod",
"name": "Matt and Shane's Secret Podcast",
"is_nsfw": false,
"avatar_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/1055672/f8d420f61e014aecb059ad74a4d33eb2/eyJ3IjoyNDB9/1.png",
"campaign_id": "1055672",
"total_posts": 974,
"creator_name": "Matt and Shane's Secret Podcast",
"patron_count": 237545,
"creation_name": "Creating Hot Casts"
}
],
"total_pages": 9,
"total_results": 174
},
"status": "success"
}
}About the Patreon API
Search and Discovery
search_creators accepts a query string along with optional page and limit parameters. Each result object includes campaign_id, name, creator_name, creation_name, patron_count, total_posts, is_nsfw, url, and avatar_url. The response also surfaces total_results and total_pages, so you can paginate through all matching creators systematically.
Campaign and Tier Details
get_creator_details takes a campaign_id (obtained from search_creators results) and returns the full campaign record. The tiers array contains objects with id, title, amount_cents, amount, currency, description, patron_count, is_free_tier, published, and remaining fields — giving you both human-readable and machine-readable pricing per membership level. The creator object includes user_id, full_name, vanity, image_url, url, and social_connections for linked external accounts.
Campaign Metadata
Beyond tiers, get_creator_details returns summary (the campaign description), created_at (ISO 8601 timestamp), is_monthly (billing cadence), currency (the payment currency code), and is_nsfw. The url field gives the canonical Patreon campaign address. All monetary amounts are returned in both amount_cents (integer) and amount (formatted string), which simplifies display without additional conversion logic.
The Patreon API is a managed, monitored endpoint for patreon.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when patreon.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official patreon.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track patron count changes over time across a set of Patreon campaign IDs
- Compare membership tier pricing and structure across creators in the same niche
- Build a directory of Patreon creators filtered by NSFW flag or patron count threshold
- Extract social connection data from creator profiles to cross-reference accounts on other platforms
- Aggregate tier descriptions and prices for creator economy research or benchmarking
- Monitor when new tiers are published or existing tiers change price on a given campaign
- Identify free-tier offerings (is_free_tier) across a search result set for audience-building analysis
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Patreon have an official developer API?+
What does get_creator_details return for membership tiers?+
tiers array where each object includes id, title, amount_cents, amount, currency, description, patron_count, is_free_tier, published, and remaining. The amount_cents field is an integer (e.g. 500 for $5.00) and amount is a pre-formatted string. Only published tiers visible on the public campaign page are included.Does the API return individual patron identities or pledge histories?+
How does pagination work in search_creators?+
page parameter is 1-indexed. The response includes total_pages and total_results so you can iterate through all results. The limit parameter controls how many results are returned per page. If total_pages is greater than 1, increment page until you have collected all matching campaigns.Can I retrieve posts or content from a creator's campaign feed?+
total_posts summary field, and comments are not returned. You can fork this API on Parse and revise it to add an endpoint that retrieves individual post data for a given campaign.