Substack Scraper: Posts, Newsletters & Archive
Pricing
from $1.00 / 1,000 posts
Substack Scraper: Posts, Newsletters & Archive
Scrape any Substack publication, including custom domains: post titles, dates, free or paid status, word counts, likes, comments and public bylines, plus the text of free posts. Up to 20 publications per run. Export JSON, CSV or Excel. $1 per 1,000 posts.
Pricing
from $1.00 / 1,000 posts
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Features
Share
Substack Publication Scraper
Export posts from Substack publications, including publications on their own domains: titles, publication dates, free or paid status, word counts, likes and comment counts, public bylines and, if you want, the text of free posts.
Price: $0.005 per run start plus $0.001 per delivered post. The Console example (20 posts from one publication) costs about $0.025; the same run with 50 posts costs about $0.055. Post text is included in the per-post price.
No login, no subscription and no API key needed.
Who it is for
- Newsletter writers and media teams comparing engagement across publications: which posts get likes, comments and replies.
- Researchers and analysts tracking what a set of newsletters publishes, by date and word count.
- Content and SEO teams building a calendar of a niche's output, or checking how often competitors post.
- Anyone who wants a clean spreadsheet of a publication's archive instead of scrolling a website.
How to use it
- Paste one or more publication URLs, such as
https://www.oneusefulthing.orgorhttps://name.substack.com. Custom domains work. - Choose newest first or top posts.
- Set maximum posts per publication (default 50) and turn on free-post text if you need the words.
- Run it and export the dataset as JSON, CSV or Excel.
An empty form is safe: it collects a small example (10 posts from one publication) and says so in the run summary.
Input
- Publication URLs: up to 20 publication home or archive URLs, such as
https://name.substack.comor a custom domain likehttps://www.oneusefulthing.org. - Post order: newest first (default) or top posts.
- Maximum posts per publication: 1 to 5,000, default 50.
- Include free-post text: off by default. Turn it on to add the text of free posts.
{"publicationUrls": ["https://www.oneusefulthing.org"],"sort": "new","maxItems": 50,"includeContent": false}
Several publications in one run:
{"publicationUrls": ["https://www.oneusefulthing.org", "https://www.platformer.news"],"sort": "new","maxItems": 100,"includeContent": false}
Output
One row per post:
| Field | Meaning |
|---|---|
postId | Substack post ID |
publication | Publication name |
title, subtitle | Post title and subtitle |
slug, url | Post slug and link |
postedAt | Publication date and time (UTC) |
audience | free or paid |
wordcount | Word count |
reactionCount, commentCount | Likes and comments |
authorDisplayName | Public byline shown on the post |
bodyText | Post text (free posts, when text is turned on) |
Output example
{"postId": "12345","publication": "Example Newsletter","title": "A practical guide to evaluating new ideas","subtitle": null,"slug": "a-practical-guide","url": "https://example.substack.com/p/a-practical-guide","postedAt": "2026-10-20T15:00:00Z","audience": "free","wordcount": 1200,"reactionCount": 42,"commentCount": 3,"authorDisplayName": "Example Editorial Team","bodyText": null}
Download results as JSON, CSV or Excel.
Cost examples
| Run | Posts | Approximate cost |
|---|---|---|
| Empty input (10-post example) | 10 | $0.015 |
| Console example, one publication | 20 | $0.025 |
| One publication, 50 posts | 50 | $0.055 |
| Five publications, 100 posts each | 500 | $0.505 |
| One publication, full archive of 1,000 posts with text | 1,000 | $1.005 |
You pay per delivered post, not per page or per request, so a smaller maximum posts per publication costs less.
What can be empty, and why
- Paid posts never include text. You still get their title, date and counts.
- Some free posts have no text. Text is left empty when Substack shows only part of a post (the rest is locked or must be unlocked). A free post that simply mentions subscribing or upgrading still includes its text. Text that is returned is the post as published, links, names and contact details included.
publicationcan be empty on guest posts whose author does not belong to the publication.- Any other value the publication does not show is empty.
Limits
- Works with Substack publications and custom-domain Substack sites. Profile links such as
https://substack.com/@nameare not supported yet; use the publication's own URL. A profile link is skipped and does not fail the run. - Single post links, keyword search and date filters are not supported.
- Up to 5,000 posts per publication. A run with the default settings comfortably covers a few thousand posts without text; with text turned on, plan for up to about 1,000 posts per run, because text is collected post by post and is slower.
- A publication that cannot be reached or has no posts is noted in the run summary; posts from the other publications are still delivered.
FAQ
How is it charged? $0.005 to start and $0.001 per delivered post, including the post text when you turn it on. A publication with no posts costs only the start charge.
Can I get the full text of paid posts? No. Only publicly free post text is collected; paid and truncated posts keep their metadata.
Why did I get fewer posts than I asked for? The publication either has fewer posts than your limit or shows only part of its archive. The run summary lists each publication with the number of posts it delivered.
Can I track only new posts over time? Save the input and schedule the task (daily or weekly). Each run is independent, so compare postId values with the previous run or keep your own baseline.
Do you support notes, comments or subscriber counts? Not in this Actor. It returns posts, their counts and the public byline.
Is the byline personal data? authorDisplayName is the public byline shown on the post, as published, and free-post text may contain names, emails, links or addresses supplied by the author.
Privacy
The actor returns only public post information and the public byline shown on each post. It does not collect commenter, subscriber or profile data. Titles, subtitles, bylines, publication names and free-post text are delivered as published.
Pricing
See the Pricing tab. The start charge is counted per GB of memory; the default 512 MB run is one start event.