Home › Guides › Substack Newsletter Scraper
Substack newsletter posts as data: engagement, free-vs-paid and the authors behind each one
The Substack Newsletter Scraper returns any newsletter's posts straight from its public API — one clean row per post with title, URL, publish date, free or paid, word count, reactions, comments, restacks, tags and authors, plus optional full body text. No API key, no login, no browser.
Who it's for
- Content and competitive researchers studying what a rival newsletter publishes and how it performs.
- Creator lead-gen teams collecting the authors behind newsletters in their niche.
- Monetisation analysts measuring how much a newsletter gates behind paid.
- Topic and trend researchers pulling posts with tags and full text.
What you get
| Group | Fields |
|---|---|
| Post | Newsletter host, title, subtitle, slug, URL, type (newsletter/podcast/thread), publish & update times, word count |
| Monetisation | audience (everyone / only_paid) and an isPaid flag |
| Engagement | Reaction count, comment count, child-comment count, restacks |
| Attribution | Authors, author handles, tags; cover image, description, teaser; full bodyText with includeBody |
A real row (trimmed):
{
"newsletter": "www.lennysnewsletter.com",
"title": "All of the Lenny & Friends Summit talks",
"type": "newsletter",
"audience": "everyone",
"isPaid": false,
"postDate": "2026-09-29T...",
"wordcount": 1276,
"reactionCount": 287,
"commentCount": 7,
"restacks": 5,
"authors": ["Lenny Rachitsky"]
}
Input
| Input | What it does |
|---|---|
newsletters | One per line: a handle (bariweiss), a .substack.com URL, or a custom domain (the exact host that serves it) |
maxPostsPerNewsletter · maxResults | Posts per newsletter, newest first (default 100) · total posts across all (0 = no cap) |
postedAfter · includeBody | Keep only posts on/after a date · add the post's full body as plain text |
{ "newsletters": ["bariweiss", "https://www.lennysnewsletter.com"], "maxPostsPerNewsletter": 20 }
Honest limits
- No subscriber counts — those are behind Substack's login; the Actor returns posts, engagement, audience and authors, never a fabricated number.
- A custom-domain host that doesn't serve the public API returns a clear, free error row — use the exact Substack host (often
www.or{handle}.substack.com). - Paid posts may be truncated behind the paywall in
bodyText; emptytagsmeans the post wasn't tagged (returned only when present). - A value Substack didn't give is
null, never 0.
Pricing
Pay per result: one post event per delivered row. An unreachable newsletter returns a free error row and is not charged. Current prices are on the actor's Pricing tab on Apify.
Turn a newsletter into data: posts with engagement, free-vs-paid and the authors behind each one. Exportable to JSON, CSV or Excel.
Open the Substack Newsletter Scraper →Related
On other creator sources, the Bluesky Scraper gives creator reach and engagement, the X Profile Scraper account activity and growth, and the YouTube Channel Finder a niche's channels.
Frequently asked questions
Do I need a Substack account or API key?
No. It reads each newsletter's own public post API — the same endpoint the site itself calls — with no key, no login and no browser.
Can I get subscriber counts?
No — those are behind Substack's login. This Actor returns posts, engagement, audience and authors, never a fabricated subscriber number.
How do I enter a custom-domain newsletter?
Use the exact host that serves it, often www. or the {handle}.substack.com subdomain. If a host doesn't serve the public API you get a clear, free error row.
Can I get the full article text?
Yes — turn on includeBody for the post's full body as plain text (HTML stripped). Paid posts may be truncated behind the paywall.
What does free vs paid look like?
Each post carries an audience value (everyone or only_paid) and an isPaid flag, so you can see how much a newsletter gates behind a subscription.
Using the data lawfully
It reads each newsletter's own public post API — the same endpoint the site calls. Posts carry author names published publicly; personal data is protected by the GDPR and similar laws, so only process it with a legitimate basis. Not affiliated with Substack Inc.
Substack Newsletter Scraper — posts, engagement, free-vs-paid and authors. Pay per post, no API key.
Get Substack data on Apify →