Substack Scraper — Newsletter Posts, Likes & Full Text avatar

Substack Scraper — Newsletter Posts, Likes & Full Text

Pricing

from $2.10 / 1,000 post delivereds

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

Substack Scraper — Newsletter Posts, Likes & Full Text

Scrape posts from any Substack newsletter (substack.com or custom domain): title, date, author, likes, comments, restacks, word count, paid/free flag and the full text of free posts. Date filter and multiple publications per run.

Pricing

from $2.10 / 1,000 post delivereds

Rating

0.0

(0)

Developer

Jefferson Valandro

Jefferson Valandro

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Scrape the posts of any Substack newsletter, on substack.com or on its own custom domain: title, subtitle, date, authors, likes, comments and restacks, word count, whether it's paid or free, and the full text of free posts (public preview for paid ones).

Use it to research what performs in a niche, track competitors' newsletters, build reading datasets or feed newsletter content to AI tools.

Why this one

  • Custom domains work (lennysnewsletter.com), not only *.substack.com.
  • Engagement numbers for every post: likes (reactions), comments, restacks.
  • Clean text of free posts, ready for analysis; optional raw HTML.
  • Paid vs free flag and post type (newsletter, podcast, thread).
  • Date filter and many publications in one run.
  • Pay per post delivered. Publications that aren't on Substack are reported, free.

Input

{
"publications": ["lennysnewsletter.com", "astralcodexten", "https://www.thefp.com"],
"maxPostsPerPublication": 100,
"sinceDate": "2026-01-01",
"includeContent": true
}

Output (one item per post)

FieldDescription
publicationUrl, postId, title, subtitle, url, slugidentity
date, postType, audience, isPaidwhen, what and for whom
authors[{name, handle}]
reactions, comments, restacks, wordCountengagement and length
description, coverImage, languagemetadata
text, contentIsFull, preview, htmlcontent (contentIsFull is false for paid posts)

Example output

One real item from a test run (long texts and lists shortened):

{
"type": "post",
"publicationUrl": "https://lennysnewsletter.com",
"postId": 215694124,
"title": "All of the Lenny & Friends Summit talks are now online!",
"subtitle": "Plus, some reflections and takeaways from the day",
"url": "https://www.lennysnewsletter.com/p/all-of-the-lenny-and-friends-summit",
"slug": "all-of-the-lenny-and-friends-summit",
"date": "2026-09-29T13:15:57.512Z",
"postType": "newsletter",
"audience": "everyone",
"isPaid": false,
"authors": [
{
"name": "Lenny Rachitsky",
"handle": "lenny"
}
],
"reactions": 279,
"comments": 6,
"restacks": 4,
"wordCount": 1276,
"description": "Plus, some reflections and takeaways from the day",
"coverImage": "https://substack-post-media.s3.amazonaws.com/public/images/9fed347c-0e02-4190-a590-1236719b99de_9213x6142.jpeg",
"language": "en",
"preview": "👋 Hey there, I’m Lenny. Each week, I share deeply researched product, growth, and career advice. For more: Lenny’s Jobs | Lennybot | Become an AI-Native Buil...",
"text": "👋 Hey there, I’m Lenny. Each week, I share deeply researched product, growth, and career advice. For more: Lenny’s Jobs | Lennybot | Become an AI-Native Buil...",
"contentIsFull": true
}

How much does it cost?

You pay only for results delivered, at a fixed price per item. Apify platform usage is included in that price, so there are no compute costs on top. Errors and items that couldn't be found are free.

What you getPriceExample
Post delivered$0.003 each1,000 post delivereds = $3.00

The Apify Free plan includes $5 of monthly credit, enough for about 1,666 post delivereds per month at no cost. You can also set a maximum spend per run.

On paid Apify plans it gets cheaper automatically: 10% off on Starter, 20% on Scale and 30% on Business.