Substack Scraper — Newsletter Posts, Likes, Comments & Text
Pricing
from $0.64 / 1,000 posts
Substack Scraper — Newsletter Posts, Likes, Comments & Text
Scrape posts from any Substack newsletter, custom domains included, or find the top newsletters in a category: title, date, likes, comments, restacks, word count, free or paid, tags, and optionally the text. Only new posts since your last run. No login.
Pricing
from $0.64 / 1,000 posts
Rating
0.0
(0)
Developer
Northbell
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Get every post from any Substack newsletter — including the ones on their own domain, like www.lennysnewsletter.com — as clean JSON: title, subtitle, date, likes, comments, restacks, word count, free or paid, tags, cover image, and optionally the text. Schedule it with Only new posts and each run returns just what was published since the last one.
Don't know which newsletters to watch? Pick a category (Technology, Finance, Food & Drink, …) and it takes the top newsletters from Substack's own category ranking, then their posts. Finding them is free.
What you get
| Field | What it is |
|---|---|
publication, title, subtitle, url, postedAt | the post |
authors | the byline names shown on the post |
likes, comments, restacks | engagement as Substack shows it |
wordcount, postType | length, and newsletter / podcast / thread / video |
audience, isPaid | everyone, only_paid or founding |
section, tags, language, coverImage, description, excerpt | context |
podcastDurationSeconds | for podcast episodes |
content, contentIsPreview | with Include the post text: plain text; for paid posts the free preview everyone can see |
publicationName, foundInCategory, categoryRank | when you used categories: the newsletter, the category it came from, and its place in Substack's list |
isNewSinceLastRun | true when the post was published after the newest post of your previous run |
Reader comments are not collected.
Fixed 22 Oct 2026: a post counted as new when the previous run had simply not reached it (it stopped at max posts), so with Only new posts a second run could return older posts as new and charge for them. New now means published after the newest post the previous run saw.
Use it for
- Newsletter research — what a competitor or a whole niche publishes, how often, and what gets the most likes and comments
- Content monitoring — a daily feed of new posts from a list of newsletters into a sheet, Slack or your own database
- AI and RAG — clean post text for summaries, search or training your own assistant on newsletters you follow
Input
{ "publications": ["https://www.oneusefulthing.org", "platformer"], "maxPostsPerPublication": 20, "postedWithinDays": 30 }
Or by category:
{ "categories": ["Technology", "Finance"], "maxPublicationsPerCategory": 5, "maxPostsPerPublication": 3 }
Measured on October 7, 2026: three newsletters, 45 posts each, in 25 seconds; 10 posts with text in 6 seconds. On October 24: two categories, 5 newsletters each, 3 posts each (30 posts) in 14 seconds.
Pricing
$0.80 per 1,000 posts, or $1.50 per 1,000 posts with text, plus $0.01 per run. Error rows and posts left out by your filters are free. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing.
For AI agents
{"publications": ["platformer"], "maxPostsPerPublication": 10} returns the 10 newest posts with likes and comments. Rows have type: post or error. {"categories": ["Science"], "maxPublicationsPerCategory": 10, "maxPostsPerPublication": 1} gives the latest post of the top 10 science newsletters.