Substack Post Scraper
Pricing
from $30.00 / 1,000 post scrapeds
Substack Post Scraper
Substack Post Scraper extracts full post content and comments from any Substack newsletter. Give it a newsletter subdomain and it returns complete article HTML, metadata, and reader comments — no login required for free posts
Pricing
from $30.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Romy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Share
What does Substack Post Scraper do?
Substack Post Scraper extracts full post content and comments from any Substack newsletter. Give it a newsletter subdomain and it returns complete article HTML, metadata, and reader comments — no login required for free posts. Runs on the Apify platform with scheduling, proxy rotation, and API access built in.
Why use Substack Post Scraper?
- Content intelligence: Read full article text to analyze topics, tone, and writing style
- NLP & AI pipelines: Feed article HTML into summarizers, classifiers, or embedding models
- Competitive research: Monitor what top newsletters are publishing and how readers respond
- Comment analysis: Scrape reader feedback and sentiment for market research
- Content archiving: Build a searchable archive of newsletter content over time
How to use Substack Post Scraper
- Open the actor on Apify and click Try for free
- Enter the Newsletter Subdomain (e.g.
howtogrowanewsletterfromhowtogrowanewsletter.substack.com) - Set Max Posts and choose Audience Filter (free posts only, or all posts)
- Toggle Include Comments on or off
- Click Start — results appear in the Output tab within seconds
Input
{"subdomain": "howtogrowanewsletter","maxPosts": 20,"audienceFilter": "everyone","includeComments": true}
Also accepts full URLs:
{"subdomain": "https://howtogrowanewsletter.substack.com","maxPosts": 50}
Output
Each item in the dataset is one post with full content and comments:
{"id": 208676609,"title": "Substack Just Launched AI Detection. Here's What It Means For You.","subtitle": "A new feature lets readers scan any post to see how much was written by a human.","slug": "substack-just-launched-ai-detection","canonical_url": "https://howtogrowanewsletter.substack.com/p/substack-just-launched-ai-detection","post_date": "2026-07-27T13:08:45.764Z","audience": "everyone","wordcount": 542,"reaction_count": 2,"reactions": {"❤": 2},"comment_count": 2,"restacks": 1,"cover_image": "https://substack-post-media.s3.amazonaws.com/...","body_html": "<p>This is the first issue of a new free series...</p>...","publishedBylines": [{"name": "How to Grow a Newsletter","handle": "howtogrowanewsletter","bio": "I run four Substack newsletters pulling in nearly $250K/year"}],"postTags": [],"comments": [{"id": 302090035,"name": "Phaetrix","body": "AI detection may give readers additional information...","date": "2026-07-27T16:44:04.418Z","reactions": {"❤": 2},"reaction_count": 2,"children": []}]}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Description |
|---|---|
title | Post title |
subtitle | Post subtitle / description |
canonical_url | Full URL to the post |
post_date | Publication date (ISO 8601) |
audience | everyone = free, only_paid = paywalled |
wordcount | Approximate word count |
reaction_count | Total reactions (likes/hearts) |
restacks | Number of restacks (reposts) |
body_html | Full article HTML (free posts only) |
cover_image | Cover image URL |
publishedBylines | Author info: name, handle, bio, photo |
postTags | Post tags/topics |
comments[].body | Comment text |
comments[].name | Commenter name |
comments[].reactions | Comment reactions |
comments[].children | Nested replies |
Audience filter
| Value | Behavior |
|---|---|
everyone | Free posts only — body_html contains the full article |
all | All posts including paid — paywalled posts have empty body_html |
Pricing
- $0.05 per run start
- $0.03 per post scraped
Scraping 100 free posts costs approximately $3.05. The free Apify tier gives you enough credits to test before subscribing.
Tips
- Set
audienceFilter: "everyone"to only get posts with full content — saves credits by skipping paywalled posts - Set
includeComments: falseif you only need article text — faster and cheaper - Newsletters with custom domains (e.g.
citrini→citriniresearch.com) are supported automatically - Combine with Substack Newsletter Scraper to first discover newsletters, then scrape their posts
FAQ & Disclaimers
Is scraping Substack legal? This actor only accesses publicly available content through Substack's official mobile API — the same data visible to anyone without logging in. Paywalled content is never accessed.
Why is body_html empty for some posts? Posts with audience: "only_paid" are behind a paywall — Substack does not serve the article body without authentication.
Supports custom domains? Yes — newsletters that have migrated to a custom domain are followed automatically.
Support: Open an issue in the Issues tab on this actor's page. Custom solutions available on request.