Substack Scraper — posts, likes, restacks, full text
Pricing
from $2.50 / 1,000 results
Substack Scraper — posts, likes, restacks, full text
Export any Substack archive (custom domains too): title, date, authors, per-emoji reactions, restacks, comments, paywall status, podcast/video flags, tags, optional full text — plus publication name, description and subscriber count. Incremental runs via sinceDate. No login.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Ezden Notghi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Substack Scraper
Export any Substack newsletter's archive — on *.substack.com or a custom domain — as clean JSON / CSV / Excel. No login, no browser, no proxies: the Actor reads Substack's public archive feed, so counts are exact and runs finish in seconds.
Per post: title, subtitle, description, URL, date, type (newsletter / podcast / video / thread), authors with Substack handles, per-emoji reactions and total likes, restacks, comment and reply counts, word count, paywall status, tags, section, cover image, podcast URL and duration, video / voiceover flags, pinned flag, restack source, public preview text, and optionally the full body as HTML and plain text.
Per publication: name, author, description, subscriber count (exact when Substack displays a number, otherwise the tier such as "hundreds of thousands of subscribers"), custom domain, paid and podcast flags, podcast feed URL, language, logo, cover photo, creation date.
Example post
{"type": "post","publicationName": "Noahpinion","title": "Why you won’t get a flying car","subtitle": "A review of “Where is My Flying Car?”, by J. Storrs Hall…","url": "https://www.noahpinion.blog/p/why-you-wont-get-a-flying-car","date": "2026-09-03T09:55:22.593Z","postType": "newsletter","paywalled": false,"authors": [{ "name": "Noah Smith", "handle": "noahpinion", "url": "https://substack.com/@noahpinion" }],"likes": 314, "reactions": { "❤": 314 }, "restacks": 35, "comments": 75, "childComments": 36,"wordcount": 4205,"coverImage": "https://substackcdn.com/image/fetch/…jpeg","bodyText": "…full article text when includeBody is on…"}
Input
| Field | Default | Notes |
|---|---|---|
publications | — | lenny, noahpinion.substack.com, https://www.platformer.news — one per line |
maxPostsPerPublication | 50 | newest first; 0 = whole archive |
lastNDays / sinceDate / untilDate | — | date window; use sinceDate on a schedule to fetch only new posts |
sort | new | top returns Substack's most-liked order |
postTypes | all | newsletter, podcast, video, thread |
audience | all | free or paid posts only |
includeBody | off | adds bodyHtml + bodyText; paywalled posts return the public preview with bodyTruncated: true |
includePublicationInfo | on | one publication item per newsletter |
Uses
- Newsletter research / competitor tracking — likes, restacks and comments per post, sorted by
top. - Content archives —
maxPostsPerPublication: 0+includeBodyfor a full-text corpus (free posts in full, paid posts as previews). - Monitoring — schedule daily with
lastNDays: 2; only new posts are billed. - Discovery lists — feed hundreds of subdomains, keep the
publicationitems for author, description and subscriber tier.
Honest limits
- Paywalled bodies are only the public preview — Substack does not expose paid text without a subscription, and this Actor never logs in.
- Substack shows exact subscriber numbers only for some publications; others get the tier text, returned verbatim in
subscribersText. - Bare names map to
<name>.substack.com. A few big newsletters have an unrelated subdomain squatter, so paste the full URL for custom-domain publications. - Notes (Substack's short-form feed) and comment threads are not included in this version.
Pricing
Pay per result: one post or one publication record = one result. The free trial covers a first run.
Support
Open an Issue on the Actor page; Substack markup changes are fixed quickly.