Patreon Creator Posts Scraper
Pricing
from $1.00 / 1,000 results
Patreon Creator Posts Scraper
Collect Patreon creator posts with public content, locked-post previews, dates, media and available engagement counts.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Collect a Patreon creator’s public-facing post feed and save every post as a separate dataset row. Patreon Creator Posts Scraper returns titles, dates, formats, visible engagement, accessible text or teasers and available media references.
Build a source-linked content catalog from a known creator. Open posts and public cards for locked posts use the same schema, with content availability kept explicit.
| At a glance | Details |
|---|---|
| 📥 Input | Enter creator names, @names, creator/Posts URLs or numeric campaign IDs. |
| 📤 Output | One post per success row with the input source retained |
| 📄 Pagination | Result pages per input; page sizes and availability are controlled by Patreon |
| 🔐 Login required | No |
| ⚡ Processing | Up to 5 HTTP requests concurrently; up to 5 attempts for temporary failures |
| 💾 Delivery | One Apify dataset view with individual records and complete nested JSON |
What the Patreon creator posts scraper collects 📝
The Actor paginates the public website feed for each supplied creator. It preserves post identity, source creator and optional media information without trying to unlock subscriber-only content.
Data can include:
- Post IDs, canonical URLs, titles and publication dates
- Post types and accessible text or public teaser content
- Visible like, comment and reshare counters when supplied
- Public images, audio references, embeds and poll metadata when returned
- Author, source creator, tags and content-access context
How to collect creator posts from Patreon 🚀
- Enter one or more supported inputs.
- Set the page budget and any collection option you need.
- Start the Actor.
- Open the Posts dataset view and review success or failed rows.
- Export the dataset or retrieve records from your application.
{"inputList": ["jackdanreact"],"pagesPerCreator": 1}
The page setting counts feed result pages separately for each creator. Returned page sizes and the availability of posts are controlled by Patreon.
Patreon creator posts output fields 📦
| Field | Type | Meaning |
|---|---|---|
input | string | Original submitted input. |
status | string | success for a collected entity; failed for an invalid, unavailable or exhausted input. |
id | string or null | Id when supplied by Patreon. |
type | string or null | Type when supplied by Patreon. |
url | string or null | Url when supplied by Patreon. |
title | string or null | Title when supplied by Patreon. |
post_type | string or null | Post type when supplied by Patreon. |
created_at | string or null | Created at when supplied by Patreon. |
published_at | string or null | Published at when supplied by Patreon. |
edited_at | string or null | Edited at when supplied by Patreon. |
is_accessible | boolean or null | Whether the anonymous website response permits viewing the post content. |
is_locked | boolean or null | True when the anonymous website response does not permit viewing the full post. |
is_paid | boolean or null | Raw Patreon is_paid flag. This does not determine whether a post is accessible. |
is_preview_blurred | boolean or null | Is preview blurred when supplied by Patreon. |
content_json | string or null | Original public post document as a JSON string; null when unavailable. |
content_text | string or null | Readable public post text; null for unavailable full content. |
teaser_text | string or null | Publicly visible post teaser, when supplied. |
comment_count | integer or null | Comment count when supplied by Patreon. |
commenter_count | integer or null | Commenter count when supplied by Patreon. |
like_count | integer or null | Like count when supplied by Patreon. |
reshare_count | integer or null | Reshare count when supplied by Patreon. |
view_count | integer or null | View count when supplied by Patreon. |
min_amount_cents | integer or null | Min amount cents when supplied by Patreon. |
image_url | string or null | Image url when supplied by Patreon. |
thumbnail_url | string or null | Thumbnail url when supplied by Patreon. |
image_width | integer or null | Image width when supplied by Patreon. |
image_height | integer or null | Image height when supplied by Patreon. |
thumbnail_versions | array or null | Thumbnail versions when supplied by Patreon. |
file_url | string or null | File url when supplied by Patreon. |
duration_seconds | number or null | Duration seconds when supplied by Patreon. |
embed | object or null | Embed when supplied by Patreon. |
audio | object or null | Audio when supplied by Patreon. |
video | object or null | Video when supplied by Patreon. |
audio_preview | object or null | Audio preview when supplied by Patreon. |
images | array or null | Images when supplied by Patreon. |
attachments | array or null | Attachments when supplied by Patreon. |
media | array or null | Media when supplied by Patreon. |
poll | object or null | Poll when supplied by Patreon. |
creator | object or null | Creator when supplied by Patreon. |
author | object or null | Author when supplied by Patreon. |
authors | array or null | Authors when supplied by Patreon. |
tags | array or null | Tags when supplied by Patreon. |
access_rules | array or null | Access rules when supplied by Patreon. |
collection_id | string or null | Source or linked collection ID, when applicable. |
collection_title | string or null | Collection title when supplied by Patreon. |
collection_url | string or null | Collection url when supplied by Patreon. |
page | integer or null | One-based main result page. Null for an individual detail lookup. |
Nested field structure:
thumbnail_versions[]:name,url.embed:url,provider,title,description,html.audio:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.audio.image_versions[]:name,url.video:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.video.image_versions[]:name,url.audio_preview:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.audio_preview.image_versions[]:name,url.images[]:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.images[].image_versions[]:name,url.attachments[]:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.attachments[].image_versions[]:name,url.media[]:id,media_type,file_name,mime_type,size_bytes,state,url,download_url,width,height,duration_seconds,thumbnail_url,image_versions.media[].image_versions[]:name,url.poll:id,question,question_type,created_at,closes_at,response_count,choices.poll.choices[]:id,text,type,position,response_count.creator:id,name,url,avatar_url,currency.author:id,name,url,image_url.authors[]:id,name,url,image_url.tags[]:id,value,type.access_rules[]:id,type,amount_cents,currency,tier_id.
The examples below use normalized public response data. Values are snapshots and may change; every top-level output field is included. Different media variants and nested objects remain inside the same row.
Complete representative success result:
{"input": "jackdanreact","status": "success","id": "169181068","type": "post","url": "https://www.patreon.com/jackdanreact/posts/throwback-2009-169181068","title": "⏮️ Throwback Thursday ⏮️ | The Proposal (2009) | Full length reaction","post_type": "video_external_file","created_at": "2026-09-10T20:06:24.000+00:00","published_at": "2026-09-10T21:01:40.000+00:00","edited_at": "2026-09-10T21:01:40.000+00:00","is_accessible": false,"is_locked": true,"is_paid": false,"is_preview_blurred": false,"content_json": null,"content_text": null,"teaser_text": "Sorry this one is a bit late! I was actually out at a tiramisu making class 😂 of all the excuses 😅","comment_count": 4,"commenter_count": 4,"like_count": 41,"reshare_count": 0,"view_count": null,"min_amount_cents": null,"image_url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3Ijo2MjB9/1.jpg?token-hash=vyk5nKAcoa5D1rqw9oiEwlw_ge6s1_1PsPclQENf7Ts%3D&token-time=1790380800","thumbnail_url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3Ijo2MjB9/1.jpg?token-hash=vyk5nKAcoa5D1rqw9oiEwlw_ge6s1_1PsPclQENf7Ts%3D&token-time=1790380800","image_width": 1920,"image_height": 1080,"thumbnail_versions": [{"name": "original","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJwIjoxfQ%3D%3D/1.jpg?token-hash=59-7AQHiS7upmXpIRyKz3OMJE5obTO93ETJ9Vrfvj7U%3D&token-time=1790380800"},{"name": "default","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3Ijo2MjB9/1.jpg?token-hash=vyk5nKAcoa5D1rqw9oiEwlw_ge6s1_1PsPclQENf7Ts%3D&token-time=1790380800"},{"name": "default_blurred","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3Ijo2MjB9/1.jpg?token-hash=vyk5nKAcoa5D1rqw9oiEwlw_ge6s1_1PsPclQENf7Ts%3D&token-time=1790380800"},{"name": "default_small","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3IjozNjB9/1.jpg?token-hash=8T-WKCN044n5NkLvj6ZQKQ-sCz0TtHjTLzsPETS9yUA%3D&token-time=1790380800"},{"name": "default_large","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3IjoxMDgwfQ%3D%3D/1.jpg?token-hash=S1KEm_j5aI_8R1crEZSSnwuPhgEUu5zgJvUSKRRJy8c%3D&token-time=1790380800"},{"name": "default_blurred_small","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3IjozNjB9/1.jpg?token-hash=8T-WKCN044n5NkLvj6ZQKQ-sCz0TtHjTLzsPETS9yUA%3D&token-time=1790380800"},{"name": "thumbnail","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJoIjozNjAsInciOjM2MH0%3D/1.jpg?token-hash=lHmLIcegcFI6OTiIXZITIn4P8Jv093PsDx3CIzMpqHc%3D&token-time=1790380800"},{"name": "thumbnail_large","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJoIjoxMDgwLCJ3IjoxMDgwfQ%3D%3D/1.jpg?token-hash=zQ8uevzQkM9H5SpF8H9BQOY2qZMS1QX0khMK04BPbyE%3D&token-time=1790380800"},{"name": "thumbnail_small","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJoIjoxMDAsInciOjEwMH0%3D/1.jpg?token-hash=eCwTFwveto4OpLygbG6wCrKAbVbrILUbVhO1gM2Y2Oo%3D&token-time=1790380800"},{"name": "url","url": "https://c10.patreonusercontent.com/4/patreon-media/p/post/169181068/16ab065251df410aa41f50a9613b4358/eyJ3Ijo2MjB9/1.jpg?token-hash=vyk5nKAcoa5D1rqw9oiEwlw_ge6s1_1PsPclQENf7Ts%3D&token-time=1790380800"}],"file_url": null,"duration_seconds": null,"embed": null,"audio": null,"video": null,"audio_preview": null,"images": [],"attachments": null,"media": null,"poll": null,"creator": {"id": "12196794","name": "Jack & Dan React","url": "https://www.patreon.com/jackdanreact","avatar_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/12196794/87167751361244528b77acb448a1f96b/eyJ3Ijo2MjB9/4.jpg?token-hash=N_WR4am7dp0rgRwy31Mpl9OGzmPfaXJBfl80G08WXXw%3D","currency": "USD"},"author": {"id": "128634315","name": "Jack & Dan React","url": "https://www.patreon.com/jackdanreact","image_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/12196794/87167751361244528b77acb448a1f96b/eyJ3IjoyMDB9/4.jpg?token-hash=sweJvUOJAqpGJqE9dOtjj-vw2n-OrYJD6AaTzfXVapM%3D"},"authors": [{"id": "c12196794-context_cids:12196794-product_surface:collab_post_byline","name": "Jack & Dan React","url": "https://www.patreon.com/jackdanreact","image_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/12196794/87167751361244528b77acb448a1f96b/eyJ3IjoxMjB9/4.jpg?token-hash=t6kbfOXNargTRJBUC2caM_prxeiyx7vhejyqni-0B80%3D&token-time=1790380800"}],"tags": [],"access_rules": [{"id": "47055408","type": "tier","amount_cents": null,"currency": "USD","tier_id": "23031720"},{"id": "52453342","type": "tier","amount_cents": null,"currency": "USD","tier_id": "25094539"},{"id": "53720245","type": "tier","amount_cents": null,"currency": "USD","tier_id": "25513938"}],"collection_id": null,"collection_title": null,"collection_url": null,"page": 1}
Complete failed dataset item:
{"input": "jackdanreact","status": "failed","id": null,"type": null,"url": null,"title": null,"post_type": null,"created_at": null,"published_at": null,"edited_at": null,"is_accessible": null,"is_locked": null,"is_paid": null,"is_preview_blurred": null,"content_json": null,"content_text": null,"teaser_text": null,"comment_count": null,"commenter_count": null,"like_count": null,"reshare_count": null,"view_count": null,"min_amount_cents": null,"image_url": null,"thumbnail_url": null,"image_width": null,"image_height": null,"thumbnail_versions": null,"file_url": null,"duration_seconds": null,"embed": null,"audio": null,"video": null,"audio_preview": null,"images": null,"attachments": null,"media": null,"poll": null,"creator": null,"author": null,"authors": null,"tags": null,"access_rules": null,"collection_id": null,"collection_title": null,"collection_url": null,"page": null}
A failed row preserves input, sets status to failed, and sets every other top-level field to null. The reason is written to the run log. Optional successful values remain null or empty when Patreon omits them. The single dataset view exposes object fields as useful columns; arrays are kept in their parent row rather than expanded into additional rows or views.
Input and pagination settings ⚙️
| Parameter | Type | Required | Default | Rules |
|---|---|---|---|---|
inputList | array of strings | Yes | None | Enter creator names, @names, creator/Posts URLs or numeric campaign IDs. |
pagesPerCreator | integer | No | 1 | Maximum result pages per input. Preparation requests do not count. A short page can still have a continuation. Minimum 1. |
Enter supported creator usernames or creator URLs, then choose the feed-page budget. Use Post Scraper for known post URLs rather than scanning a whole feed.
Use supported Patreon paths on www.patreon.com or patreon.com. HTTPS is required for full URLs; those two hosts can also be entered without the scheme. URLs with credentials, custom ports or unsupported paths are not accepted. A leading @ is accepted for plain creator names; names are normalized. Canonical creator URLs and supported /c/ or /cw/ creator paths are accepted. A positive numeric campaign ID is also accepted as a creator input.
Duplicate normalized inputs are processed once. A returned identifier is deduplicated within the pagination of one source input; the same object found under different source inputs retains each source relationship.
The first result request counts as page 1. Source validation and preparation requests do not consume result pages. A short or filtered page can continue if it supplies a usable cursor. Collection stops at the page budget or the end of pagination; a repeated cursor does not trigger an endless loop.
Patreon creator posts use cases 🎯
Creator content catalogs
Collect titles, dates, post types and canonical links from selected creator feeds. Keep locked-content cards identifiable in the resulting inventory.
Publishing and engagement research
Compare publication dates, formats and visible counters in your own analysis. Missing counters remain missing rather than being treated as zero.
Accessible content indexing
Index returned public text or teasers with source links. Retain the access distinction when sending records to search or summarization workflows.
Pricing and saved-result behavior 💰
Check the Actor’s Pricing tab for the active charging model and current rate. Store settings may change, so this README does not state an unverified fixed price or runtime.
Under dataset-item pricing:
- Each unique success result represents one post for its source input.
- An invalid or unavailable input, an input with no accessible results, or a request that exhausts retries can produce a
failedrow. - Retry attempts and supporting metadata requests do not create extra dataset rows by themselves.
- Nested media, tiers, poll choices and source fields stay inside their parent result when relevant.
- A normal empty continuation after earlier successes creates no additional result row.
- Saved failed rows are not assumed to be free. Check the active pricing configuration for their treatment.
Larger page budgets and more inputs can produce more saved rows. Start with a small run and check actual usage before increasing the workload.
Patreon creator posts API 🔌
Replace $ACTOR_ID with the identifier shown in this Actor’s API tab and $APIFY_TOKEN with your Apify token.
curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"inputList":["jackdanreact"],"pagesPerCreator":1}'
Download JSON, CSV, Excel, XML or other formats available in the Console, or retrieve the dataset through the Apify API. Schedules, webhooks and Apify integrations can connect results to Google Sheets, Make, Zapier, n8n, cloud storage or your own backend. These are connection options rather than integrations already configured by the Actor.
Reliability, retries, and public-data limits ⚠️
Collection uses pure HTTP with up to five concurrent requests. Invalid syntax and confirmed missing, removed or inaccessible targets stop without unnecessary retries. Temporary network or proxy failures, timeouts, blocking responses, malformed data, throttling and server errors are retried up to five total attempts per request.
Earlier successful pages remain saved when a later request fails. A normal end after previously saved results is not retried. An input that produces no accessible results can receive a failed row; this does not by itself prove the underlying account or collection does not exist. A later exhausted request can append a failed row while keeping earlier output.
Patreon controls public availability, ranking, fields and pagination. Private, deleted, restricted or otherwise unavailable data can be omitted. Counts can change during collection, and media links can expire. Successful HTTP research confirms the supported request paths and pagination on tested sources, rather than future availability or exhaustive coverage.
A locked post can still return a public title, date, teaser and counters. Full paid content and protected media remain unavailable. is_paid is not an access flag: even a locked post can have is_paid=false. Media references are returned when exposed, not downloaded or guaranteed to remain available.
An invalid string within a valid input list does not stop other inputs. A configuration that fails validation, such as a non-string list item or an invalid page-count type, exits before requests start. Infrastructure errors such as startup failure, unavailable dataset storage or an unrecoverable result-save error can stop the whole run. A failed dataset save is not retried as a new scraping request.
Frequently asked questions ❓
Does it include locked posts?
It can include their public-facing cards, such as title, date, teaser and visible counters. Subscriber-only text and protected files are not collected.
Does is_paid=false mean the content is public?
No. Access must be read from the availability fields and the content actually returned to a guest. The source can mark a locked post is_paid=false.
Can it collect text, image, audio and video posts?
These formats use one schema. Text, media references, embeds and poll data appear only when Patreon exposes them in the public response.
Does it require Patreon login or personal cookies?
No. The Actor uses HTTP requests from the public website. It does not require a Patreon account, password or personal session cookie, and does not launch a browser.
What happens to invalid or unavailable inputs?
Invalid individual inputs are saved as failed rows without a source request. Confirmed unavailable targets stop without unnecessary retries. Temporary failures allow up to five total attempts; other inputs and previously saved results remain available.
Can I export results or schedule runs?
Yes. Download the default dataset in supported formats or retrieve it through the Apify API. Apify schedules and completion webhooks can connect repeated runs to your own workflow.
Support, responsible use, and related actors 🛟
For a reproducible issue, use the Actor’s Issues tab and provide the run ID, approximate time, safe public input, expected behavior and actual result. Include the selected mode or page count when applicable. Do not share access tokens, cookies or proxy credentials.
Use public data responsibly and follow applicable privacy, copyright, contractual and platform requirements before storing, analyzing or redistributing collected information.