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
3 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.