Substack Scraper: Posts, Likes, Comments & Free Post Text
Pricing
Pay per event
Substack Scraper: Posts, Likes, Comments & Free Post Text
Scrape any Substack newsletter: every post with date, authors, likes, comments, restacks, word count, paywall flag, plus free-post text. Fast JSON, no login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Almandine Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape any Substack newsletter: every post with date, authors, likes, comments, restacks, word count, paywall flag, plus free-post text. Fast JSON, no login.
What it does
Reads each publication's public archive and returns posts newest-first with engagement metrics. Optional plain text of free posts.
Input
- Publications (
publications): Substack subdomains (e.g. 'astralcodexten'), *.substack.com URLs or custom-domain Substack URLs. - Max posts per publication (
maxPostsPerPublication): Newest posts first. You are charged per post returned. - Published after (YYYY-MM-DD) (
publishedAfter): Optional. Stop at posts older than this date. - Include free post text (
includeContent): Adds the plain-text body of free posts (higher per-post price). Paywalled bodies are never returned. - Only new posts (
onlyNew): On scheduled runs, return only posts not seen in earlier runs.
Output
One dataset row per result. Table view columns: coverImage, publicationUrl, title, postDate, authors, likes, comments, restacks, wordcount, isPaywalled, url. Full JSON in the dataset.
Pricing
Pay per result:
| Event | What | Price |
|---|---|---|
post-result | Post scraped | $0.002 ($2.00 / 1,000) |
post-with-content | Post scraped with text | $0.003 ($3.00 / 1,000) |
Data and compliance
Free content only: paywalled post bodies are never returned. No subscriber data. Requests are rate-limited and go through Apify Proxy. Errors per input are stored in the run's ERRORS record and are not charged.
Example input
{"publications": ["astralcodexten"],"maxPostsPerPublication": 20}