Substack Scraper — Newsletter Posts, Likes, Comments & Text avatar

Substack Scraper — Newsletter Posts, Likes, Comments & Text

Pricing

from $0.64 / 1,000 posts

Go to Apify Store
Substack Scraper — Newsletter Posts, Likes, Comments & Text

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

Northbell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

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

FieldWhat it is
publication, title, subtitle, url, postedAtthe post
authorsthe byline names shown on the post
likes, comments, restacksengagement as Substack shows it
wordcount, postTypelength, and newsletter / podcast / thread / video
audience, isPaideveryone, only_paid or founding
section, tags, language, coverImage, description, excerptcontext
podcastDurationSecondsfor podcast episodes
content, contentIsPreviewwith Include the post text: plain text; for paid posts the free preview everyone can see
publicationName, foundInCategory, categoryRankwhen you used categories: the newsletter, the category it came from, and its place in Substack's list
isNewSinceLastRuntrue 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.

**Something broke or looks wrong?** Open an issue on this Actor's Issues tab and I'll look at it. **Found it useful?** A short review on the Store page helps other people find it.